
/* 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_att_operand(char *operand_string)

{
  uint *puVar1;
  i386_operand_type types_00;
  i386_operand_type types_01;
  int iVar2;
  uint uVar3;
  char cVar4;
  byte bVar5;
  char *op_string;
  expressionS *peVar6;
  char *pcVar7;
  segT paVar8;
  size_t sVar9;
  i386_operand_type *piVar10;
  i386_operand_type *piVar11;
  int iVar12;
  char *pcVar13;
  char *pcVar14;
  insn_template *piVar15;
  char *pcVar16;
  undefined4 extraout_ECX;
  i386_operand_type *piVar17;
  i386_operand_type *reg_string;
  bool bVar18;
  offsetT oVar19;
  bfd_reloc_code_real *in_stack_ffffffb4;
  char **ppcVar20;
  uint uVar21;
  byte *pbVar22;
  char *end_op;
  i386_operand_type types;
  undefined4 uStack_14;
  
  uStack_14 = 0x4691d;
  cVar4 = *operand_string;
  reg_string = (i386_operand_type *)operand_string;
  if (cVar4 == ' ') {
    cVar4 = operand_string[1];
    reg_string = (i386_operand_type *)(operand_string + 1);
  }
  if (cVar4 == '*') {
    if (*(byte *)((int)reg_string + 1) == 0x20) {
      reg_string = (i386_operand_type *)((int)reg_string + 2);
    }
    else {
      reg_string = (i386_operand_type *)((int)reg_string + 1);
    }
    pbVar22 = (byte *)((int)i.types + this_operand * 8 + 3);
    *pbVar22 = *pbVar22 | 2;
  }
  ppcVar20 = &end_op;
  peVar6 = (expressionS *)parse_register((char *)reg_string->array,ppcVar20);
  uVar3 = i.imm_operands;
  if (peVar6 == (expressionS *)0x0) {
    bVar5 = *(byte *)reg_string;
    if (bVar5 == 0x25) {
      pcVar13 = "bad register name `%s\'";
LAB_00046f4c:
      pcVar13 = (char *)dcgettext(0,pcVar13,5);
      as_bad(pcVar13,reg_string);
      return 0;
    }
    if (bVar5 == 0x24) {
      if ((*(byte *)((int)i.types + this_operand * 8 + 3) & 2) != 0) {
        pcVar13 = (char *)dcgettext(0,"immediate operand illegal with absolute jump",5);
        as_bad(pcVar13);
        return 0;
      }
      types.array[1] = 0xffffffff;
      types.array[0] = 0xffffffff;
      if (i.imm_operands != 2) {
        peVar6 = im_expressions + i.imm_operands;
        i.imm_operands = i.imm_operands + 1;
        i.op[this_operand].disps = peVar6;
        pcVar13 = input_line_pointer;
        piVar10 = (i386_operand_type *)((int)reg_string + 2);
        if (*(byte *)((int)reg_string + 1) != 0x20) {
          piVar10 = (i386_operand_type *)((int)reg_string + 1);
        }
        ppcVar20 = &input_line_pointer;
        input_line_pointer = (char *)piVar10;
        pcVar7 = lex_got(in_stack_ffffffb4,(int *)&input_line_pointer,piVar10);
        if (pcVar7 != (char *)0x0) {
          input_line_pointer = pcVar7;
        }
        paVar8 = expr(0,peVar6,expr_normal);
        pcVar16 = *ppcVar20;
        cVar4 = *pcVar16;
        pcVar14 = pcVar16;
        if (cVar4 == ' ') {
          pcVar14 = pcVar16 + 1;
          *ppcVar20 = pcVar14;
          cVar4 = pcVar16[1];
        }
        if (cVar4 == '{') {
          pcVar14 = check_VecOperations(pcVar14,(char *)0x0);
          *ppcVar20 = pcVar14;
          if (pcVar14 == (char *)0x0) {
            return 0;
          }
          cVar4 = *pcVar14;
        }
        if (cVar4 != '\0') {
          pcVar16 = (char *)dcgettext(0,"junk `%s\' after expression",5);
          as_bad(pcVar16,pcVar14);
        }
        *ppcVar20 = pcVar13;
        if (pcVar7 != (char *)0x0) {
          free(pcVar7);
          if ((im_expressions[uVar3].field_0x10 == '\x02') ||
             (im_expressions[uVar3].field_0x10 == '\x05')) {
            im_expressions[uVar3].field_0x10 = 0;
          }
        }
        types_00.array[1] = types.array[1];
        types_00.array[0] = types.array[0];
        iVar12 = i386_finalize_immediate(paVar8,peVar6,types_00,(char *)piVar10->array);
        return (uint)(iVar12 != 0);
      }
      pcVar13 = "at most %d immediate operands are allowed";
      goto LAB_00047443;
    }
    if (*operand_string == '{') {
      iVar12 = RC_SAE_immediate(operand_string);
      if (iVar12 != 0) {
        return 1;
      }
      bVar5 = *(byte *)reg_string;
    }
    iVar12 = this_operand;
    if (((digit_chars[bVar5] == '\0') && (bVar5 != 0x28 && bVar5 != 0x22)) &&
       (identifier_chars[bVar5] == '\0')) {
      pcVar13 = output_invalid((int)(char)bVar5);
      pcVar7 = (char *)dcgettext(0,"invalid char %s beginning operand %d `%s\'",5);
      as_bad(pcVar7,pcVar13,iVar12 + 1,reg_string);
      return 0;
    }
    goto LAB_00046c60;
  }
  cVar4 = *end_op;
  pcVar13 = end_op;
  if (cVar4 == ' ') {
    cVar4 = end_op[1];
    pcVar13 = end_op + 1;
  }
  if (cVar4 != ':') {
    if (cVar4 == '{') {
      pcVar13 = check_VecOperations(pcVar13,(char *)0x0);
      if (pcVar13 == (char *)0x0) {
        return 0;
      }
      cVar4 = *pcVar13;
    }
    iVar12 = this_operand;
    if (cVar4 == '\0') {
      oVar19 = peVar6->X_add_number;
      iVar2 = this_operand * 8;
      i.types[this_operand].array[0] =
           i.types[this_operand].array[0] | (uint)peVar6->X_op_symbol & 0xffbfffff;
      puVar1 = (uint *)((int)i.types + iVar2 + 4);
      *puVar1 = *puVar1 | (uint)oVar19;
      pbVar22 = (byte *)((int)i.types + iVar12 * 8 + 4);
      *pbVar22 = *pbVar22 & 0xbf;
      i.reg_operands = i.reg_operands + 1;
      i.op[iVar12].disps = peVar6;
      return 1;
    }
LAB_00046ad0:
    pcVar7 = (char *)dcgettext(0,"junk `%s\' after register",5);
    as_bad(pcVar7,pcVar13);
    return 0;
  }
  if (((uint)peVar6->X_op_symbol & 0x180) == 0) goto LAB_00046ad0;
  switch(*(undefined1 *)((int)&peVar6->X_add_number + 5)) {
  case 0:
    i.seg[i.mem_operands] = (seg_entry *)PTR_es_0007fff8;
    break;
  case 1:
    i.seg[i.mem_operands] = (seg_entry *)PTR_cs_0007ffc8;
    break;
  case 2:
    i.seg[i.mem_operands] = (seg_entry *)PTR_ss_0007ffcc;
    break;
  case 3:
    i.seg[i.mem_operands] = (seg_entry *)PTR_ds_0007ff80;
    break;
  case 4:
    i.seg[i.mem_operands] = (seg_entry *)PTR_fs_0007ffac;
    break;
  case 5:
    i.seg[i.mem_operands] = (seg_entry *)PTR_gs_0007ff68;
  }
  bVar5 = pcVar13[1];
  reg_string = (i386_operand_type *)(pcVar13 + 1);
  if (bVar5 == 0x20) {
    bVar5 = pcVar13[2];
    reg_string = (i386_operand_type *)(pcVar13 + 2);
  }
  if ((digit_chars[bVar5] == '\0') && (identifier_chars[bVar5] == '\0')) {
    if (bVar5 != 0x28) {
      if (bVar5 != 0x2a) {
        pcVar13 = "bad memory operand `%s\'";
        goto LAB_00046f4c;
      }
LAB_00046c3c:
      if (*(byte *)((int)reg_string + 1) == 0x20) {
        reg_string = (i386_operand_type *)((int)reg_string + 2);
      }
      else {
        reg_string = (i386_operand_type *)((int)reg_string + 1);
      }
      pbVar22 = (byte *)((int)i.types + this_operand * 8 + 3);
      *pbVar22 = *pbVar22 | 2;
    }
  }
  else if (bVar5 == 0x2a) goto LAB_00046c3c;
LAB_00046c60:
  if (i.mem_operands == 1) {
    iVar12 = maybe_adjust_templates();
    if (iVar12 == 0) {
      return 0;
    }
    if (i.mem_operands != 1) goto LAB_00046c6f;
    piVar15 = current_templates->start;
    if (((piVar15->opcode_modifier).field_0x3 & 1) == 0) goto LAB_0004729e;
  }
  else {
LAB_00046c6f:
    if (i.mem_operands == 2) {
      piVar15 = current_templates->start;
LAB_0004729e:
      pcVar13 = piVar15->name;
      pcVar7 = (char *)dcgettext(0,"too many memory references for `%s\'",5);
      as_bad(pcVar7,pcVar13);
      return 0;
    }
  }
  sVar9 = strlen((char *)reg_string->array);
  piVar10 = (i386_operand_type *)(sVar9 + (int)reg_string);
  piVar11 = (i386_operand_type *)strchr((char *)reg_string->array,0x7b);
  if (((piVar11 != (i386_operand_type *)0x0) && (piVar11 < piVar10)) &&
     (pcVar13 = check_VecOperations((char *)piVar11->array,(char *)piVar10->array),
     piVar10 = piVar11, pcVar13 == (char *)0x0)) {
    return 0;
  }
  piVar11 = (i386_operand_type *)((int)piVar10 + -1);
  if (*(byte *)((int)piVar10 + -1) == 0x20) {
    piVar11 = (i386_operand_type *)((int)piVar10 + -2);
    piVar10 = (i386_operand_type *)((int)piVar10 + -1);
  }
  piVar17 = piVar10;
  if (*(byte *)piVar11 == 0x29) {
    bVar5 = *(byte *)((int)piVar11 + -1);
    iVar12 = 1;
    piVar17 = (i386_operand_type *)((int)piVar11 + -1);
    if (bVar5 == 0x29) goto LAB_000471f8;
LAB_000471e0:
    if (bVar5 != 0x28) goto LAB_000471eb;
    iVar12 = iVar12 + -1;
    do {
      if (iVar12 == 0) {
        bVar5 = *(byte *)((int)piVar17 + 1);
        if (bVar5 == 0x20) {
          bVar5 = *(byte *)((int)piVar11 + 1);
          piVar11 = (i386_operand_type *)((int)piVar17 + 2);
        }
        if (bVar5 == 0x2c) {
          pbVar22 = (byte *)((int)i.types + this_operand * 8 + 2);
          *pbVar22 = *pbVar22 | 0x40;
          if (i.base_reg != (reg_entry *)0x0) goto LAB_00047347;
          bVar5 = *(byte *)piVar11;
        }
        else {
          i.base_reg = parse_register((char *)piVar11->array,ppcVar20);
          if (i.base_reg == (reg_entry *)0x0) {
            if (*(byte *)piVar11 == 0x25) {
              end_op = strchr((char *)piVar11->array,0x2c);
              if (end_op != (char *)0x0) {
                *end_op = '\0';
              }
              pcVar13 = (char *)dcgettext(0,"bad register name `%s\'",5);
              as_bad(pcVar13,piVar11);
              return 0;
            }
            if (reg_string != piVar10) goto LAB_00046cd4;
            goto LAB_00046ea4;
          }
          pbVar22 = (byte *)((int)i.types + this_operand * 8 + 2);
          *pbVar22 = *pbVar22 | 0x40;
LAB_00047347:
          bVar5 = *end_op;
          piVar11 = (i386_operand_type *)end_op;
          if (bVar5 == 0x20) {
            bVar5 = end_op[1];
            piVar11 = (i386_operand_type *)(end_op + 1);
          }
        }
        if (bVar5 != 0x2c) {
          if (bVar5 != 0x29) {
            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";
            goto LAB_00047255;
          }
          break;
        }
        pbVar22 = (byte *)((int)piVar11 + 2);
        if (*(byte *)((int)piVar11 + 1) != 0x20) {
          pbVar22 = (byte *)((int)piVar11 + 1);
        }
        i.index_reg = parse_register((char *)pbVar22,ppcVar20);
        pcVar13 = input_line_pointer;
        if (i.index_reg == (reg_entry *)0x0) {
          if (*pbVar22 == 0x25) {
            end_op = strchr((char *)pbVar22,0x2c);
            if (end_op != (char *)0x0) {
              *end_op = '\0';
            }
            pcVar13 = (char *)dcgettext(0,"bad register name `%s\'",5,extraout_ECX);
            as_bad(pcVar13,pbVar22);
            return 0;
          }
          if (*pbVar22 == 0x29) {
            pcVar13 = (char *)dcgettext(0,
                                        "expecting index register or scale factor after `,\'; got \'%c\'"
                                        ,5,operand_string);
            as_bad(pcVar13,0x29);
            return 0;
          }
        }
        else {
          cVar4 = *end_op;
          if (cVar4 == ' ') {
            cVar4 = end_op[1];
            end_op = end_op + 1;
          }
          if (cVar4 != ',') {
            if (cVar4 != ')') {
              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";
              goto LAB_00047255;
            }
            break;
          }
          cVar4 = end_op[1];
          pbVar22 = (byte *)(end_op + 1);
          if (cVar4 == ' ') {
            pbVar22 = (byte *)(end_op + 2);
            cVar4 = end_op[2];
          }
          if (cVar4 == ')') break;
        }
        ppcVar20 = &input_line_pointer;
        input_line_pointer = (char *)pbVar22;
        oVar19 = get_absolute_expression();
        if (oVar19 == 2) {
          i.log2_scale_factor = 1;
          bVar5 = 1;
LAB_0004751e:
          if (i.index_reg == (reg_entry *)0x0) {
            pcVar7 = (char *)dcgettext(0,"scale factor of %d without an index register",5,bVar5);
            as_warn(pcVar7,1 << (bVar5 & 0x1f));
            i.log2_scale_factor = 0;
          }
        }
        else {
          if (-(int)((ulonglong)oVar19 >> 0x20) < (int)(uint)(2 < (uint)oVar19)) {
            if (oVar19 == 4) {
              i.log2_scale_factor = 2;
              bVar5 = 2;
            }
            else {
              if (oVar19 != 8) goto LAB_0004760c;
              i.log2_scale_factor = 3;
              bVar5 = 3;
            }
            goto LAB_0004751e;
          }
          if (oVar19 != 1) {
LAB_0004760c:
            cVar4 = **ppcVar20;
            **ppcVar20 = '\0';
            pcVar7 = (char *)dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);
            as_bad(pcVar7,pbVar22);
            **ppcVar20 = cVar4;
            *ppcVar20 = pcVar13;
            return 0;
          }
          i.log2_scale_factor = 0;
        }
        pcVar7 = *ppcVar20;
        *ppcVar20 = pcVar13;
        if (pcVar7 == (char *)0x0) {
          return 0;
        }
        cVar4 = *pcVar7;
        if (cVar4 == ' ') {
          cVar4 = pcVar7[1];
        }
        if (cVar4 != ')') {
          pcVar13 = "expecting `)\' after scale factor in `%s\'";
LAB_00047255:
          pcVar13 = (char *)dcgettext(0,pcVar13,5);
          as_bad(pcVar13,operand_string);
          return 0;
        }
        break;
      }
LAB_000471eb:
      piVar11 = piVar17;
      bVar5 = *(byte *)((int)piVar11 + -1);
      piVar17 = (i386_operand_type *)((int)piVar11 + -1);
      if (bVar5 != 0x29) goto LAB_000471e0;
LAB_000471f8:
      iVar12 = iVar12 + 1;
    } while( true );
  }
  piVar10 = piVar17;
  if (reg_string == piVar17) goto LAB_00046e80;
LAB_00046cd4:
  uVar3 = i.disp_operands;
  iVar12 = this_operand;
  types.array[1] = 0;
  types.array[0] = 0x1f0000;
  if (i.disp_operands == 2) {
    pcVar13 = "at most %d displacement operands are allowed";
LAB_00047443:
    pcVar13 = (char *)dcgettext(0,pcVar13,5);
    as_bad(pcVar13,2);
    return 0;
  }
  if (((*(byte *)((int)i.types + this_operand * 8 + 3) & 2) == 0) &&
     ((undefined1  [12])
      ((undefined1  [12])current_templates->start->opcode_modifier & (undefined1  [12])0x60) !=
      (undefined1  [12])0x0)) {
    if (flag_code == CODE_64BIT) {
      if ((i.prefix[3] != '\0') || (uVar21 = 0xc0000, i.suffix == 'w')) goto LAB_00046d4f;
    }
    else {
      bVar18 = true;
      if (i.prefix[3] == '\0') {
        cVar4 = 'l';
        if (flag_code != CODE_16BIT) {
          cVar4 = 'w';
        }
        bVar18 = i.suffix == cVar4;
      }
      uVar21 = 0x40000;
      if ((flag_code == CODE_16BIT) != bVar18) {
LAB_00046d4f:
        uVar21 = 0x20000;
      }
    }
  }
  else if (flag_code == CODE_64BIT) {
    uVar21 = 0x1c0000;
    if (i.prefix[2] != '\0') {
      uVar21 = 0x40000;
    }
  }
  else {
    uVar21 = 0x40000;
    if ((i.prefix[2] != '\0') != (flag_code == CODE_16BIT)) goto LAB_00046d4f;
  }
  i.types[this_operand].array[0] = i.types[this_operand].array[0] | uVar21;
  paVar8 = (segT)(disp_expressions + i.disp_operands);
  i.op[iVar12].disps = (expressionS *)paVar8;
  pcVar13 = input_line_pointer;
  i.disp_operands = i.disp_operands + 1;
  ppcVar20 = &input_line_pointer;
  pcVar7 = save_stack_p + 1;
  input_line_pointer = (char *)reg_string;
  *save_stack_p = *(char *)piVar10;
  save_stack_p = pcVar7;
  *(undefined1 *)piVar10 = 0;
  pcVar7 = lex_got(in_stack_ffffffb4,(int *)&input_line_pointer,piVar10);
  if (pcVar7 != (char *)0x0) {
    *ppcVar20 = pcVar7;
  }
  expr(0,(expressionS *)paVar8,expr_normal);
  pcVar16 = *ppcVar20;
  cVar4 = *pcVar16;
  pcVar14 = pcVar16;
  if (cVar4 == ' ') {
    pcVar14 = pcVar16 + 1;
    *ppcVar20 = pcVar14;
    cVar4 = pcVar16[1];
  }
  if (cVar4 != '\0') {
    pcVar16 = (char *)dcgettext(0,"junk `%s\' after expression",5);
    as_bad(pcVar16,pcVar14);
  }
  *ppcVar20 = pcVar13;
  if (pcVar7 != (char *)0x0) {
    free(pcVar7);
    if ((disp_expressions[uVar3].field_0x10 == '\x02') ||
       (disp_expressions[uVar3].field_0x10 == '\x05')) {
      disp_expressions[uVar3].field_0x10 = 0;
    }
  }
  types_01.array[1] = (uint)ppcVar20;
  types_01.array[0] = (uint)in_stack_ffffffb4;
  iVar12 = i386_finalize_displacement
                     (paVar8,(expressionS *)types.array[0],types_01,(char *)reg_string->array);
  pcVar13 = save_stack_p + -1;
  save_stack_p = save_stack_p + -1;
  *(char *)piVar10 = *pcVar13;
  if (iVar12 == 0) {
    return 0;
  }
LAB_00046e80:
  iVar12 = this_operand;
  if (((((i.base_reg != (reg_entry *)0x0) &&
        (((i.base_reg)->reg_type).array[1] == reg16_inoutportreg.array[1])) &&
       (((i.base_reg)->reg_type).array[0] == reg16_inoutportreg.array[0])) &&
      ((i.index_reg == (reg_entry *)0x0 && (i.log2_scale_factor == 0)))) &&
     ((i.seg[i.mem_operands] == (seg_entry *)0x0 &&
      ((*(byte *)((int)i.types + this_operand * 8 + 2) & 0x1f) == 0)))) {
    i.types[this_operand].array[0] = 0;
    *(undefined4 *)((int)i.types + iVar12 * 8 + 4) = 0;
    pbVar22 = (byte *)((int)i.types + iVar12 * 8 + 2);
    *pbVar22 = *pbVar22 | 0x80;
    return 1;
  }
LAB_00046ea4:
  iVar12 = i386_index_check(operand_string);
  if (iVar12 == 0) {
    return 0;
  }
  pbVar22 = (byte *)((int)i.types + this_operand * 8 + 3);
  *pbVar22 = *pbVar22 | 0x10;
  if (i.mem_operands == 0) {
    i.memop1_string = (char *)xstrdup(operand_string);
  }
  i.mem_operands = i.mem_operands + 1;
  return 1;
}



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

bool __regparm3 FUN_00046910(byte *param_1)

{
  int iVar1;
  byte *pbVar2;
  uint uVar3;
  byte bVar4;
  char cVar5;
  int iVar6;
  undefined4 uVar7;
  size_t sVar8;
  int iVar9;
  byte *pbVar10;
  undefined4 *puVar11;
  undefined4 uVar12;
  char *pcVar13;
  sbyte sVar14;
  undefined4 extraout_ECX;
  byte *pbVar15;
  byte *pbVar16;
  bool bVar17;
  longlong lVar18;
  uint local_48;
  byte *local_44;
  byte *local_28;
  
  bVar4 = *param_1;
  pbVar16 = param_1;
  if (bVar4 == 0x20) {
    bVar4 = param_1[1];
    pbVar16 = param_1 + 1;
  }
  if (bVar4 == 0x2a) {
    if (pbVar16[1] == 0x20) {
      pbVar16 = pbVar16 + 2;
    }
    else {
      pbVar16 = pbVar16 + 1;
    }
    pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);
    *pbVar10 = *pbVar10 | 2;
  }
  iVar6 = FUN_00044f30();
  iVar9 = DAT_0008900c;
  if (iVar6 == 0) {
    bVar4 = *pbVar16;
    if (bVar4 == 0x25) {
      pcVar13 = "bad register name `%s\'";
LAB_00046f4c:
      uVar7 = dcgettext(0,pcVar13,5);
      FUN_0002bd60(uVar7,pbVar16);
      return false;
    }
    if (bVar4 == 0x24) {
      if ((*(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3) & 2) != 0) {
        uVar7 = dcgettext(0,"immediate operand illegal with absolute jump",5);
        FUN_0002bd60(uVar7);
        return false;
      }
      if (DAT_0008900c != 2) {
        iVar6 = DAT_0008900c * 5;
        DAT_0008900c = DAT_0008900c + 1;
        (&DAT_00089038)[DAT_00080558] = &DAT_00088f20 + iVar6;
        uVar7 = DAT_00089978;
        local_44 = pbVar16 + 2;
        if (pbVar16[1] != 0x20) {
          local_44 = pbVar16 + 1;
        }
        DAT_00089978 = local_44;
        pbVar16 = (byte *)FUN_000453b0();
        if (pbVar16 != (byte *)0x0) {
          DAT_00089978 = pbVar16;
        }
        FUN_000221d0(0,&DAT_00088f20 + iVar6,1);
        bVar4 = *DAT_00089978;
        if (bVar4 == 0x20) {
          bVar4 = DAT_00089978[1];
          DAT_00089978 = DAT_00089978 + 1;
        }
        if (bVar4 == 0x7b) {
          DAT_00089978 = (byte *)FUN_00045070();
          if (DAT_00089978 == (byte *)0x0) {
            return false;
          }
          bVar4 = *DAT_00089978;
        }
        pbVar10 = DAT_00089978;
        if (bVar4 != 0) {
          uVar12 = dcgettext(0,"junk `%s\' after expression",5);
          FUN_0002bd60(uVar12,pbVar10);
        }
        DAT_00089978 = (byte *)uVar7;
        if (pbVar16 != (byte *)0x0) {
          free(pbVar16);
          if (((&DAT_00088f30)[iVar9 * 0x14] == '\x02') || ((&DAT_00088f30)[iVar9 * 0x14] == '\x05')
             ) {
            (&DAT_00088f30)[iVar9 * 0x14] = 0;
          }
        }
        iVar9 = FUN_00041f60(0xffffffff,0xffffffff,local_44);
        return iVar9 != 0;
      }
      pcVar13 = "at most %d immediate operands are allowed";
      goto LAB_00047443;
    }
    if (*param_1 == 0x7b) {
      iVar9 = FUN_000464f0();
      if (iVar9 != 0) {
        return true;
      }
      bVar4 = *pbVar16;
    }
    iVar9 = DAT_00080558;
    if ((((&DAT_00089120)[bVar4] == '\0') && (bVar4 != 0x28 && bVar4 != 0x22)) &&
       ((&DAT_00089220)[bVar4] == '\0')) {
      uVar7 = FUN_00046660();
      uVar12 = dcgettext(0,"invalid char %s beginning operand %d `%s\'",5);
      FUN_0002bd60(uVar12,uVar7,iVar9 + 1,pbVar16);
      return false;
    }
    goto LAB_00046c60;
  }
  bVar4 = *local_28;
  pbVar10 = local_28;
  if (bVar4 == 0x20) {
    bVar4 = local_28[1];
    pbVar10 = local_28 + 1;
  }
  if (bVar4 != 0x3a) {
    if (bVar4 == 0x7b) {
      pbVar10 = (byte *)FUN_00045070();
      if (pbVar10 == (byte *)0x0) {
        return false;
      }
      bVar4 = *pbVar10;
    }
    iVar9 = DAT_00080558;
    if (bVar4 == 0) {
      uVar3 = *(uint *)(iVar6 + 8);
      iVar1 = DAT_00080558 + 0xe;
      (&DAT_00088fa0)[iVar1 * 2] = (&DAT_00088fa0)[iVar1 * 2] | *(uint *)(iVar6 + 4) & 0xffbfffff;
      *(uint *)(&DAT_00088fa4 + iVar1 * 8) = *(uint *)(&DAT_00088fa4 + iVar1 * 8) | uVar3;
      (&DAT_00088fa4)[iVar1 * 8] = (&DAT_00088fa4)[iVar1 * 8] & 0xbf;
      DAT_00089000 = DAT_00089000 + 1;
      (&DAT_00089038)[iVar9] = iVar6;
      return true;
    }
LAB_00046ad0:
    uVar7 = dcgettext(0,"junk `%s\' after register",5);
    FUN_0002bd60(uVar7,pbVar10);
    return false;
  }
  if ((*(ushort *)(iVar6 + 4) & 0x180) == 0) goto LAB_00046ad0;
  switch(*(undefined1 *)(iVar6 + 0xd)) {
  case 0:
    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_es_0007fff8;
    break;
  case 1:
    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_cs_0007ffc8;
    break;
  case 2:
    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ss_0007ffcc;
    break;
  case 3:
    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ds_0007ff80;
    break;
  case 4:
    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_fs_0007ffac;
    break;
  case 5:
    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_gs_0007ff68;
  }
  bVar4 = pbVar10[1];
  pbVar16 = pbVar10 + 1;
  if (bVar4 == 0x20) {
    bVar4 = pbVar10[2];
    pbVar16 = pbVar10 + 2;
  }
  if (((&DAT_00089120)[bVar4] == '\0') && ((&DAT_00089220)[bVar4] == '\0')) {
    if (bVar4 != 0x28) {
      if (bVar4 != 0x2a) {
        pcVar13 = "bad memory operand `%s\'";
        goto LAB_00046f4c;
      }
LAB_00046c3c:
      if (pbVar16[1] == 0x20) {
        pbVar16 = pbVar16 + 2;
      }
      else {
        pbVar16 = pbVar16 + 1;
      }
      pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);
      *pbVar10 = *pbVar10 | 2;
    }
  }
  else if (bVar4 == 0x2a) goto LAB_00046c3c;
LAB_00046c60:
  if (DAT_00089008 == 1) {
    iVar9 = FUN_00046270();
    if (iVar9 == 0) {
      return false;
    }
    if (DAT_00089008 != 1) goto LAB_00046c6f;
    puVar11 = (undefined4 *)*DAT_00088f88;
    if ((*(byte *)((int)puVar11 + 0x27) & 1) == 0) goto LAB_0004729e;
  }
  else {
LAB_00046c6f:
    if (DAT_00089008 == 2) {
      puVar11 = (undefined4 *)*DAT_00088f88;
LAB_0004729e:
      uVar7 = *puVar11;
      uVar12 = dcgettext(0,"too many memory references for `%s\'",5);
      FUN_0002bd60(uVar12,uVar7);
      return false;
    }
  }
  sVar8 = strlen((char *)pbVar16);
  local_44 = pbVar16 + sVar8;
  pbVar10 = (byte *)strchr((char *)pbVar16,0x7b);
  if (((pbVar10 != (byte *)0x0) && (pbVar10 < local_44)) &&
     (iVar9 = FUN_00045070(), local_44 = pbVar10, iVar9 == 0)) {
    return false;
  }
  pbVar10 = local_44 + -1;
  if (local_44[-1] == 0x20) {
    pbVar10 = local_44 + -2;
    local_44 = local_44 + -1;
  }
  pbVar15 = local_44;
  if (*pbVar10 == 0x29) {
    bVar4 = pbVar10[-1];
    iVar9 = 1;
    pbVar15 = pbVar10 + -1;
    if (bVar4 == 0x29) goto LAB_000471f8;
LAB_000471e0:
    if (bVar4 != 0x28) goto LAB_000471eb;
    iVar9 = iVar9 + -1;
    do {
      if (iVar9 == 0) {
        bVar4 = pbVar15[1];
        if (bVar4 == 0x20) {
          bVar4 = pbVar10[1];
          pbVar10 = pbVar15 + 2;
        }
        if (bVar4 == 0x2c) {
          pbVar2 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);
          *pbVar2 = *pbVar2 | 0x40;
          if (DAT_00089074 != 0) goto LAB_00047347;
          bVar4 = *pbVar10;
        }
        else {
          DAT_00089074 = FUN_00044f30();
          if (DAT_00089074 == 0) {
            if (*pbVar10 == 0x25) {
              pcVar13 = strchr((char *)pbVar10,0x2c);
              if (pcVar13 != (char *)0x0) {
                *pcVar13 = '\0';
              }
              uVar7 = dcgettext(0,"bad register name `%s\'",5);
              FUN_0002bd60(uVar7,pbVar10);
              return false;
            }
            if (pbVar16 != local_44) goto LAB_00046cd4;
            goto LAB_00046ea4;
          }
          pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);
          *pbVar10 = *pbVar10 | 0x40;
LAB_00047347:
          bVar4 = *local_28;
          pbVar10 = local_28;
          if (bVar4 == 0x20) {
            bVar4 = local_28[1];
            pbVar10 = local_28 + 1;
          }
        }
        if (bVar4 != 0x2c) {
          if (bVar4 != 0x29) {
            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";
            goto LAB_00047255;
          }
          break;
        }
        local_44 = pbVar10 + 2;
        if (pbVar10[1] != 0x20) {
          local_44 = pbVar10 + 1;
        }
        DAT_00089078 = FUN_00044f30();
        uVar7 = DAT_00089978;
        if (DAT_00089078 == 0) {
          if (*local_44 == 0x25) {
            pcVar13 = strchr((char *)local_44,0x2c);
            if (pcVar13 != (char *)0x0) {
              *pcVar13 = '\0';
            }
            uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX);
            FUN_0002bd60(uVar7,local_44);
            return false;
          }
          if (*local_44 == 0x29) {
            uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,
                              param_1);
            FUN_0002bd60(uVar7,0x29);
            return false;
          }
        }
        else {
          bVar4 = *local_28;
          if (bVar4 == 0x20) {
            bVar4 = local_28[1];
            local_28 = local_28 + 1;
          }
          if (bVar4 != 0x2c) {
            DAT_00089978 = (byte *)uVar7;
            if (bVar4 != 0x29) {
              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";
              goto LAB_00047255;
            }
            break;
          }
          bVar4 = local_28[1];
          local_44 = local_28 + 1;
          if (bVar4 == 0x20) {
            local_44 = local_28 + 2;
            bVar4 = local_28[2];
          }
          DAT_00089978 = (byte *)uVar7;
          if (bVar4 == 0x29) break;
        }
        DAT_00089978 = local_44;
        lVar18 = FUN_0002d860();
        if (lVar18 == 2) {
          DAT_0008907c = 1;
          sVar14 = 1;
LAB_0004751e:
          if (DAT_00089078 == 0) {
            uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);
            FUN_0002bc80(uVar12,1 << sVar14);
            DAT_0008907c = 0;
          }
        }
        else {
          if (-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18)) {
            if (lVar18 == 4) {
              DAT_0008907c = 2;
              sVar14 = 2;
            }
            else {
              if (lVar18 != 8) goto LAB_0004760c;
              DAT_0008907c = 3;
              sVar14 = 3;
            }
            goto LAB_0004751e;
          }
          if (lVar18 != 1) {
LAB_0004760c:
            bVar4 = *DAT_00089978;
            *DAT_00089978 = 0;
            uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);
            FUN_0002bd60(uVar12,local_44);
            *DAT_00089978 = bVar4;
            DAT_00089978 = (byte *)uVar7;
            return false;
          }
          DAT_0008907c = 0;
        }
        if (DAT_00089978 == (byte *)0x0) {
          DAT_00089978 = (byte *)uVar7;
          return false;
        }
        bVar4 = *DAT_00089978;
        if (bVar4 == 0x20) {
          bVar4 = DAT_00089978[1];
        }
        DAT_00089978 = (byte *)uVar7;
        if (bVar4 != 0x29) {
          pcVar13 = "expecting `)\' after scale factor in `%s\'";
LAB_00047255:
          uVar7 = dcgettext(0,pcVar13,5);
          FUN_0002bd60(uVar7,param_1);
          return false;
        }
        break;
      }
LAB_000471eb:
      pbVar10 = pbVar15;
      bVar4 = pbVar10[-1];
      pbVar15 = pbVar10 + -1;
      if (bVar4 != 0x29) goto LAB_000471e0;
LAB_000471f8:
      iVar9 = iVar9 + 1;
    } while( true );
  }
  local_44 = pbVar15;
  if (pbVar16 == local_44) goto LAB_00046e80;
LAB_00046cd4:
  iVar6 = DAT_00089004;
  iVar9 = DAT_00080558;
  if (DAT_00089004 == 2) {
    pcVar13 = "at most %d displacement operands are allowed";
LAB_00047443:
    uVar7 = dcgettext(0,pcVar13,5);
    FUN_0002bd60(uVar7,2);
    return false;
  }
  if (((*(byte *)((int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8 + 3) & 2) == 0) &&
     ((*(byte *)(*DAT_00088f88 + 0x24) & 0x60) != 0)) {
    if (DAT_00088f0c == 2) {
      if ((DAT_00089093 != '\0') || (local_48 = 0xc0000, DAT_00088ff8 == 'w')) goto LAB_00046d4f;
    }
    else {
      bVar17 = true;
      if (DAT_00089093 == '\0') {
        cVar5 = 'l';
        if (DAT_00088f0c != 1) {
          cVar5 = 'w';
        }
        bVar17 = DAT_00088ff8 == cVar5;
      }
      local_48 = 0x40000;
      if ((DAT_00088f0c == 1) != bVar17) {
LAB_00046d4f:
        local_48 = 0x20000;
      }
    }
  }
  else {
    local_48 = 0x40000;
    if (DAT_00088f0c == 2) {
      local_48 = 0x1c0000;
      if (DAT_00089092 != '\0') {
        local_48 = 0x40000;
      }
    }
    else if ((DAT_00089092 != '\0') != (DAT_00088f0c == 1)) goto LAB_00046d4f;
  }
  (&DAT_00088fa0)[(DAT_00080558 + 0xe) * 2] = (&DAT_00088fa0)[(DAT_00080558 + 0xe) * 2] | local_48;
  iVar1 = DAT_00089004 * 0x14;
  (&DAT_00089038)[iVar9] = &DAT_00088f60 + iVar1;
  uVar7 = DAT_00089978;
  DAT_00089004 = DAT_00089004 + 1;
  pbVar10 = DAT_000890fc + 1;
  DAT_00089978 = pbVar16;
  *DAT_000890fc = *local_44;
  DAT_000890fc = pbVar10;
  *local_44 = 0;
  pbVar16 = (byte *)FUN_000453b0();
  if (pbVar16 != (byte *)0x0) {
    DAT_00089978 = pbVar16;
  }
  FUN_000221d0(0,&DAT_00088f60 + iVar1,1);
  bVar4 = *DAT_00089978;
  if (bVar4 == 0x20) {
    bVar4 = DAT_00089978[1];
    DAT_00089978 = DAT_00089978 + 1;
  }
  pbVar10 = DAT_00089978;
  if (bVar4 != 0) {
    uVar12 = dcgettext(0,"junk `%s\' after expression",5);
    FUN_0002bd60(uVar12,pbVar10);
  }
  DAT_00089978 = (byte *)uVar7;
  if (pbVar16 != (byte *)0x0) {
    free(pbVar16);
    if (((&DAT_00088f70)[iVar6 * 0x14] == '\x02') || ((&DAT_00088f70)[iVar6 * 0x14] == '\x05')) {
      (&DAT_00088f70)[iVar6 * 0x14] = 0;
    }
  }
  iVar9 = FUN_000466b0();
  pbVar16 = DAT_000890fc + -1;
  DAT_000890fc = DAT_000890fc + -1;
  *local_44 = *pbVar16;
  if (iVar9 == 0) {
    return false;
  }
LAB_00046e80:
  if (((((DAT_00089074 != 0) && (*(int *)(DAT_00089074 + 8) == DAT_000654e4)) &&
       (*(int *)(DAT_00089074 + 4) == DAT_000654e0)) && ((DAT_00089078 == 0 && (DAT_0008907c == 0)))
      ) && ((*(int *)(&DAT_00089080 + DAT_00089008 * 4) == 0 &&
            (iVar9 = DAT_00080558 + 0xe, (*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f) == 0
            )))) {
    (&DAT_00088fa0)[iVar9 * 2] = 0;
    *(undefined4 *)(&DAT_00088fa4 + iVar9 * 8) = 0;
    pbVar16 = (byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2);
    *pbVar16 = *pbVar16 | 0x80;
    return true;
  }
LAB_00046ea4:
  iVar9 = FUN_00045de0();
  if (iVar9 == 0) {
    return false;
  }
  pbVar16 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);
  *pbVar16 = *pbVar16 | 0x10;
  if (DAT_00089008 == 0) {
    DAT_00089088 = xstrdup(param_1);
  }
  DAT_00089008 = DAT_00089008 + 1;
  return true;
}


PUSH EBP
PUSH EDI
MOV EDI,EAX
PUSH ESI
MOV ESI,EDI
PUSH EBX
CALL 0x00016000
ADD EBX,0x396e3
SUB ESP,0x3c
MOVZX EAX,byte ptr [EAX]
CMP AL,0x20
JNZ 0x00046934
MOVZX EAX,byte ptr [EDI + 0x1]
LEA ESI,[EDI + 0x1]
CMP AL,0x2a
JZ 0x00046a00
LEA EAX,[ESP + 0x24]
MOV dword ptr [ESP + 0x4],EAX
MOV EDX,EAX
MOV EAX,ESI
CALL 0x00044f30
MOV ECX,EAX
TEST EAX,EAX
JZ 0x00046a20
MOV EBP,dword ptr [ESP + 0x24]
MOVZX EAX,byte ptr [EBP]
CMP AL,0x20
JZ 0x000469e8
CMP AL,0x3a
JZ 0x000469c0
CMP AL,0x7b
JZ 0x00046f70
TEST AL,AL
JNZ 0x00046ad0
MOV EDI,dword ptr [EBX + 0x558]
MOV ESI,dword ptr [ECX + 0x4]
MOV EBP,dword ptr [ECX + 0x8]
LEA EDX,[EDI + 0xe]
AND ESI,0xffbfffff
LEA EAX,[EBX + EDX*0x8 + 0x8fa0]
OR dword ptr [EAX],ESI
OR dword ptr [EAX + 0x4],EBP
MOV EAX,0x1
AND byte ptr [EBX + EDX*0x8 + 0x8fa4],0xbf
ADD dword ptr [EBX + 0x9000],0x1
MOV dword ptr [EBX + EDI*0x4 + 0x9038],ECX
ADD ESP,0x3c
POP EBX
POP ESI
POP EDI
POP EBP
RET
TEST word ptr [ECX + 0x4],0x180
JZ 0x00046ad0
CMP byte ptr [ECX + 0xd],0x5
JA 0x00046f00
MOVZX EAX,byte ptr [ECX + 0xd]
MOV EDX,dword ptr [EBX + EAX*0x4 + 0xfffe4a9c]
ADD EDX,EBX
JMP EDX
MOVZX EAX,byte ptr [EBP + 0x1]
ADD EBP,0x1
CMP AL,0x3a
JNZ 0x0004696b
JMP 0x000469c0
CMP byte ptr [ESI + 0x1],0x20
JZ 0x00046f98
ADD ESI,0x1
MOV EAX,dword ptr [EBX + 0x558]
OR byte ptr [EBX + EAX*0x8 + 0x9013],0x2
JMP 0x0004693c
MOVZX EAX,byte ptr [ESI]
CMP AL,0x25
JZ 0x000472e0
CMP AL,0x24
JZ 0x00046af8
CMP byte ptr [EDI],0x7b
JNZ 0x00046a51
MOV EAX,EDI
CALL 0x000464f0
MOV EDX,EAX
MOV EAX,0x1
TEST EDX,EDX
JNZ 0x000469b7
MOVZX EAX,byte ptr [ESI]
MOVZX EDX,AL
CMP byte ptr [EBX + EDX*0x1 + 0x9120],0x0
MOV dword ptr [ESP + 0x8],EDX
JNZ 0x00046c60
CMP AL,0x28
SETZ CL
CMP AL,0x22
MOV EBP,ECX
SETZ CL
MOV EDX,EBP
OR DL,CL
JNZ 0x00046c60
MOV EDX,dword ptr [ESP + 0x8]
CMP byte ptr [EBX + EDX*0x1 + 0x9220],0x0
JNZ 0x00046c60
MOVSX EAX,AL
MOV EDI,dword ptr [EBX + 0x558]
CALL 0x00046660
SUB ESP,0x4
MOV EBP,EAX
LEA EAX,[EBX + 0xfffe2688]
PUSH 0x5
ADD EDI,0x1
PUSH EAX
PUSH 0x0
CALL 0x000141a0
PUSH ESI
PUSH EDI
PUSH EBP
PUSH EAX
CALL 0x0002bd60
ADD ESP,0x20
XOR EAX,EAX
ADD ESP,0x3c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe3cc1]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
POP EDX
POP ECX
PUSH EBP
PUSH EAX
CALL 0x0002bd60
ADD ESP,0x10
XOR EAX,EAX
JMP 0x00046ac2
MOV EAX,dword ptr [EBX + 0x558]
TEST byte ptr [EBX + EAX*0x8 + 0x9013],0x2
JNZ 0x000472f0
MOV EDI,dword ptr [EBX + 0x900c]
MOV dword ptr [ESP + 0x2c],0xffffffff
MOV dword ptr [ESP + 0x28],0xffffffff
CMP EDI,0x2
JZ 0x0004745f
LEA EDX,[EDI + 0x1]
LEA ECX,[EBX + 0x8f20]
MOV dword ptr [EBX + 0x900c],EDX
LEA EDX,[EDI + EDI*0x4]
LEA EDX,[ECX + EDX*0x4]
MOV dword ptr [ESP + 0x18],ECX
MOV dword ptr [EBX + EAX*0x4 + 0x9038],EDX
CMP byte ptr [ESI + 0x1],0x20
MOV dword ptr [ESP + 0xc],EDX
LEA EDX,[ESI + 0x2]
MOV dword ptr [ESP + 0x8],EDX
JZ 0x00046b63
LEA EDX,[ESI + 0x1]
MOV dword ptr [ESP + 0x8],EDX
LEA ESI,[EBX + 0x9978]
LEA ECX,[ESP + 0x28]
LEA EAX,[EBX + EAX*0x4 + 0x9060]
MOV EDX,dword ptr [ESI]
MOV dword ptr [ESP + 0x4],ESI
MOV dword ptr [ESP + 0x10],EDX
MOV EDX,dword ptr [ESP + 0x8]
MOV dword ptr [ESI],EDX
XOR EDX,EDX
CALL 0x000453b0
MOV EBP,EAX
TEST EAX,EAX
JZ 0x00046b93
MOV dword ptr [ESI],EAX
SUB ESP,0x4
PUSH 0x1
PUSH dword ptr [ESP + 0x14]
PUSH 0x0
CALL 0x000221d0
MOV dword ptr [ESP + 0x24],EAX
MOV EAX,dword ptr [ESP + 0x14]
ADD ESP,0x10
MOV ESI,dword ptr [EAX]
MOVZX EAX,byte ptr [ESI]
CMP AL,0x20
JZ 0x000470d0
CMP AL,0x7b
JZ 0x000471a8
TEST AL,AL
JNZ 0x00047180
MOV EAX,dword ptr [ESP + 0x4]
MOV EDX,dword ptr [ESP + 0x10]
MOV dword ptr [EAX],EDX
TEST EBP,EBP
JZ 0x00046c05
SUB ESP,0xc
PUSH EBP
CALL 0x00014780
MOV EDX,dword ptr [ESP + 0x28]
LEA EAX,[EDI + EDI*0x4]
ADD ESP,0x10
MOVZX EAX,byte ptr [EDX + EAX*0x4 + 0x10]
CMP AL,0x2
JZ 0x00046bf9
CMP AL,0x5
JNZ 0x00046c05
LEA EAX,[EDI + EDI*0x4]
MOV EDI,dword ptr [ESP + 0x18]
MOV byte ptr [EDI + EAX*0x4 + 0x10],0x0
SUB ESP,0x4
PUSH dword ptr [ESP + 0xc]
PUSH dword ptr [ESP + 0x34]
PUSH dword ptr [ESP + 0x34]
MOV EDX,dword ptr [ESP + 0x1c]
MOV EAX,dword ptr [ESP + 0x24]
CALL 0x00041f60
ADD ESP,0x10
TEST EAX,EAX
SETNZ AL
MOVZX EAX,AL
JMP 0x000469b7
CMP AL,0x2a
JNZ 0x00046c60
CMP byte ptr [ESI + 0x1],0x20
JZ 0x00047430
ADD ESI,0x1
MOV EAX,dword ptr [EBX + 0x558]
OR byte ptr [EBX + EAX*0x8 + 0x9013],0x2
LEA ESI,[ESI]
NOP
MOV EAX,dword ptr [EBX + 0x9008]
CMP EAX,0x1
JZ 0x00047270
CMP EAX,0x2
JZ 0x000472d0
SUB ESP,0xc
PUSH ESI
CALL 0x00014430
POP EDX
POP ECX
ADD EAX,ESI
MOV dword ptr [ESP + 0x10],EAX
PUSH 0x7b
PUSH ESI
CALL 0x00014420
ADD ESP,0x10
MOV EBP,EAX
TEST EAX,EAX
JZ 0x00046ca6
MOV EAX,dword ptr [ESP + 0x8]
CMP EAX,EBP
JA 0x00046fa0
MOV EAX,dword ptr [ESP + 0x8]
CMP byte ptr [EAX + -0x1],0x20
LEA ECX,[EAX + -0x1]
JNZ 0x00046cc1
MOV EAX,dword ptr [ESP + 0x8]
LEA ECX,[EAX + -0x2]
SUB EAX,0x1
MOV dword ptr [ESP + 0x8],EAX
CMP byte ptr [ECX],0x29
JZ 0x000471d0
CMP ESI,dword ptr [ESP + 0x8]
JZ 0x00046e80
MOV EAX,dword ptr [EBX + 0x9004]
MOV dword ptr [ESP + 0x28],0x0
MOV dword ptr [ESP + 0x2c],0x0
MOV byte ptr [ESP + 0x2a],0x1f
MOV dword ptr [ESP + 0x10],EAX
CMP EAX,0x2
JZ 0x00047438
MOV EBP,dword ptr [EBX + 0x558]
MOV EAX,dword ptr [EBX + 0x8f0c]
LEA ECX,[EBP + 0xe]
MOV dword ptr [ESP + 0xc],EAX
TEST byte ptr [EBX + ECX*0x8 + 0x8fa3],0x2
JZ 0x00046fc0
CMP dword ptr [ESP + 0xc],0x2
MOV dword ptr [ESP + 0x4],0x40000
MOVZX EAX,byte ptr [EBX + 0x9092]
JZ 0x000473b0
TEST AL,AL
SETNZ byte ptr [ESP + 0x14]
CMP dword ptr [ESP + 0xc],0x1
MOVZX EAX,byte ptr [ESP + 0x14]
SETZ DL
CMP AL,DL
JZ 0x00046d57
MOV dword ptr [ESP + 0x4],0x20000
LEA EAX,[EBX + 0x8fa0]
MOV EDX,dword ptr [ESP + 0x4]
OR dword ptr [EAX + ECX*0x8],EDX
MOV ECX,dword ptr [ESP + 0x10]
LEA EDX,[EBX + 0x8f60]
MOV dword ptr [ESP + 0x18],EAX
LEA EAX,[ECX + ECX*0x4]
MOV dword ptr [ESP + 0x1c],EDX
LEA EAX,[EDX + EAX*0x4]
MOV dword ptr [EBX + EBP*0x4 + 0x9038],EAX
MOV dword ptr [ESP + 0xc],EAX
LEA EAX,[ECX + 0x1]
MOV dword ptr [EBX + 0x9004],EAX
LEA EAX,[EBX + 0x9978]
MOV EDX,dword ptr [EAX]
MOV dword ptr [ESP + 0x4],EAX
MOV dword ptr [EAX],ESI
MOV EAX,dword ptr [EBX + 0x90fc]
MOV dword ptr [ESP + 0x14],EDX
MOV EDX,dword ptr [ESP + 0x8]
LEA ECX,[EAX + 0x1]
MOV dword ptr [EBX + 0x90fc],ECX
MOVZX ECX,byte ptr [EDX]
MOV byte ptr [EAX],CL
MOV EAX,dword ptr [ESP + 0x18]
LEA ECX,[ESP + 0x28]
MOV byte ptr [EDX],0x0
XOR EDX,EDX
LEA EAX,[EAX + EBP*0x4 + 0xc0]
CALL 0x000453b0
MOV EBP,EAX
TEST EAX,EAX
JZ 0x00046ddf
MOV EAX,dword ptr [ESP + 0x4]
MOV dword ptr [EAX],EBP
SUB ESP,0x4
PUSH 0x1
PUSH dword ptr [ESP + 0x14]
PUSH 0x0
CALL 0x000221d0
MOV EAX,dword ptr [ESP + 0x14]
ADD ESP,0x10
MOV ECX,dword ptr [EAX]
MOVZX EAX,byte ptr [ECX]
CMP AL,0x20
JNZ 0x00046e0e
MOV EAX,dword ptr [ESP + 0x4]
LEA EDX,[ECX + 0x1]
MOV dword ptr [EAX],EDX
MOVZX EAX,byte ptr [ECX + 0x1]
MOV ECX,EDX
TEST AL,AL
JNZ 0x00047368
MOV EAX,dword ptr [ESP + 0x4]
MOV EDX,dword ptr [ESP + 0x14]
MOV dword ptr [EAX],EDX
TEST EBP,EBP
JZ 0x00046e50
SUB ESP,0xc
PUSH EBP
CALL 0x00014780
MOV EAX,dword ptr [ESP + 0x20]
MOV EDX,dword ptr [ESP + 0x2c]
ADD ESP,0x10
LEA EAX,[EAX + EAX*0x4]
MOVZX EAX,byte ptr [EDX + EAX*0x4 + 0x10]
CMP AL,0x2
JZ 0x00047398
CMP AL,0x5
JZ 0x00047398
MOV EDX,dword ptr [ESP + 0x28]
MOV EAX,dword ptr [ESP + 0xc]
MOV ECX,ESI
CALL 0x000466b0
MOV EDX,dword ptr [EBX + 0x90fc]
MOV ESI,dword ptr [ESP + 0x8]
LEA ECX,[EDX + -0x1]
MOVZX EDX,byte ptr [EDX + -0x1]
MOV dword ptr [EBX + 0x90fc],ECX
MOV byte ptr [ESI],DL
TEST EAX,EAX
JZ 0x00046ac0
MOV EAX,dword ptr [EBX + 0x9074]
TEST EAX,EAX
JZ 0x00046ea4
MOV EDX,dword ptr [EBX + 0xfffe54e4]
CMP dword ptr [EAX + 0x8],EDX
JNZ 0x00046ea4
MOV EDX,dword ptr [EBX + 0xfffe54e0]
CMP dword ptr [EAX + 0x4],EDX
JZ 0x00047060
MOV EAX,EDI
CALL 0x00045de0
TEST EAX,EAX
JZ 0x00046ac0
MOV EAX,dword ptr [EBX + 0x558]
OR byte ptr [EBX + EAX*0x8 + 0x9013],0x10
MOV EAX,dword ptr [EBX + 0x9008]
TEST EAX,EAX
JZ 0x00047040
ADD EAX,0x1
MOV dword ptr [EBX + 0x9008],EAX
MOV EAX,0x1
JMP 0x000469b7
MOVZX EAX,byte ptr [EBP + 0x1]
LEA ESI,[EBP + 0x1]
CMP AL,0x20
JNZ 0x00046f12
MOVZX EAX,byte ptr [EBP + 0x2]
LEA ESI,[EBP + 0x2]
MOVZX EDX,AL
CMP byte ptr [EBX + EDX*0x1 + 0x9120],0x0
JNZ 0x00046c38
CMP byte ptr [EBX + EDX*0x1 + 0x9220],0x0
JNZ 0x00046c38
CMP AL,0x28
JZ 0x00046c60
CMP AL,0x2a
JZ 0x00046c3c
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe3ca9]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
POP EDI
POP EBP
PUSH ESI
PUSH EAX
CALL 0x0002bd60
ADD ESP,0x10
XOR EAX,EAX
JMP 0x00046ac2
MOV EAX,EBP
XOR EDX,EDX
MOV dword ptr [ESP + 0x4],ECX
CALL 0x00045070
MOV EBP,EAX
TEST EAX,EAX
JZ 0x00046ac0
MOVZX EAX,byte ptr [EAX]
MOV ECX,dword ptr [ESP + 0x4]
JMP 0x00046973
ADD ESI,0x2
JMP 0x00046a0d
MOV EDX,EAX
MOV EAX,EBP
CALL 0x00045070
TEST EAX,EAX
JZ 0x00046ac0
MOV dword ptr [ESP + 0x8],EBP
JMP 0x00046ca6
MOV EAX,dword ptr [EBX + 0x8f88]
MOV EAX,dword ptr [EAX]
TEST byte ptr [EAX + 0x24],0x60
JZ 0x00046d1d
CMP dword ptr [ESP + 0xc],0x2
MOVZX EAX,byte ptr [EBX + 0x9093]
JZ 0x00047484
MOV dword ptr [ESP + 0x14],0x1
TEST AL,AL
JNZ 0x0004701b
MOVSX EAX,byte ptr [EBX + 0x8ff8]
CMP dword ptr [ESP + 0xc],0x1
MOV EDX,0x77
MOV dword ptr [ESP + 0x4],EAX
MOV EAX,0x6c
CMOVNZ EAX,EDX
CMP dword ptr [ESP + 0x4],EAX
SETZ AL
MOVZX EAX,AL
MOV dword ptr [ESP + 0x14],EAX
XOR EDX,EDX
CMP dword ptr [ESP + 0xc],0x1
MOV dword ptr [ESP + 0x4],0x40000
SETZ DL
CMP EDX,dword ptr [ESP + 0x14]
JNZ 0x00046d4f
JMP 0x00046d57
SUB ESP,0xc
PUSH EDI
CALL 0x000142f0
ADD ESP,0x10
MOV dword ptr [EBX + 0x9088],EAX
MOV EAX,dword ptr [EBX + 0x9008]
JMP 0x00046ecf
MOV ESI,dword ptr [EBX + 0x9078]
TEST ESI,ESI
JNZ 0x00046ea4
MOV ECX,dword ptr [EBX + 0x907c]
TEST ECX,ECX
JNZ 0x00046ea4
MOV EDX,dword ptr [EBX + 0x9008]
LEA EAX,[EBX + 0x8fa0]
MOV EDX,dword ptr [EBX + EDX*0x4 + 0x9080]
TEST EDX,EDX
JNZ 0x00046ea4
MOV EDX,dword ptr [EBX + 0x558]
ADD EDX,0xe
TEST byte ptr [EBX + EDX*0x8 + 0x8fa2],0x1f
JNZ 0x00046ea4
MOV dword ptr [EAX + EDX*0x8],0x0
MOV dword ptr [EAX + EDX*0x8 + 0x4],0x0
MOV EAX,0x1
OR byte ptr [EBX + EDX*0x8 + 0x8fa2],0x80
JMP 0x000469b7
MOV EAX,dword ptr [ESP + 0x4]
LEA EDX,[ESI + 0x1]
MOV dword ptr [EAX],EDX
MOVZX EAX,byte ptr [ESI + 0x1]
MOV ESI,EDX
JMP 0x00046bbb
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe3cf1]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
POP EDX
POP ECX
PUSH ESI
PUSH EAX
CALL 0x0002bd60
ADD ESP,0x10
JMP 0x00046bcb
MOV EAX,ESI
XOR EDX,EDX
CALL 0x00045070
MOV ESI,EAX
MOV EAX,dword ptr [ESP + 0x4]
MOV dword ptr [EAX],ESI
TEST ESI,ESI
JZ 0x00046ac0
MOVZX EAX,byte ptr [ESI]
JMP 0x00046bc3
MOVZX EAX,byte ptr [ECX + -0x1]
MOV EDX,0x1
LEA EBP,[ECX + -0x1]
CMP AL,0x29
JZ 0x000471f8
CMP AL,0x28
JNZ 0x000471eb
SUB EDX,0x1
TEST EDX,EDX
JZ 0x00047200
MOV ECX,EBP
MOVZX EAX,byte ptr [ECX + -0x1]
LEA EBP,[ECX + -0x1]
CMP AL,0x29
JNZ 0x000471e0
ADD EDX,0x1
JMP 0x000471e7
MOVZX EAX,byte ptr [EBP + 0x1]
CMP AL,0x20
JNZ 0x0004720f
MOVZX EAX,byte ptr [ECX + 0x1]
LEA ECX,[EBP + 0x2]
CMP AL,0x2c
JNZ 0x00047318
MOV EAX,dword ptr [EBX + 0x558]
OR byte ptr [EBX + EAX*0x8 + 0x9012],0x40
MOV EAX,dword ptr [EBX + 0x9074]
TEST EAX,EAX
JNZ 0x00047347
MOVZX EAX,byte ptr [ECX]
CMP AL,0x2c
JZ 0x000473c8
MOV dword ptr [ESP + 0x8],EBP
CMP AL,0x29
JZ 0x00046cca
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe2624]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
POP ECX
POP ESI
PUSH EDI
PUSH EAX
CALL 0x0002bd60
ADD ESP,0x10
XOR EAX,EAX
JMP 0x00046ac2
CALL 0x00046270
TEST EAX,EAX
JZ 0x00046ac0
MOV EAX,dword ptr [EBX + 0x9008]
CMP EAX,0x1
JNZ 0x00046c6f
MOV EAX,dword ptr [EBX + 0x8f88]
MOV EAX,dword ptr [EAX]
TEST byte ptr [EAX + 0x27],0x1
JNZ 0x00046c78
SUB ESP,0x4
MOV ESI,dword ptr [EAX]
LEA EAX,[EBX + 0xfffe24fc]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
POP EDI
POP EBP
PUSH ESI
PUSH EAX
CALL 0x0002bd60
ADD ESP,0x10
XOR EAX,EAX
JMP 0x000469b7
MOV EAX,dword ptr [EBX + 0x8f88]
MOV EAX,dword ptr [EAX]
JMP 0x0004729e
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe3cda]
PUSH 0x5
JMP 0x00046f4c
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe24a0]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
MOV dword ptr [ESP],EAX
CALL 0x0002bd60
ADD ESP,0x10
XOR EAX,EAX
JMP 0x000469b7
MOV EDX,dword ptr [ESP + 0x4]
MOV EAX,ECX
MOV dword ptr [ESP + 0xc],ECX
CALL 0x00044f30
MOV ECX,dword ptr [ESP + 0xc]
TEST EAX,EAX
MOV dword ptr [EBX + 0x9074],EAX
JZ 0x0004746c
MOV EAX,dword ptr [EBX + 0x558]
OR byte ptr [EBX + EAX*0x8 + 0x9012],0x40
MOV ECX,dword ptr [ESP + 0x24]
MOVZX EAX,byte ptr [ECX]
CMP AL,0x20
JNZ 0x00047236
MOVZX EAX,byte ptr [ECX + 0x1]
ADD ECX,0x1
JMP 0x00047236
MOV dword ptr [ESP + 0x18],ECX
LEA EAX,[EBX + 0xfffe3cf1]
SUB ESP,0x4
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
POP EDX
POP ECX
MOV ECX,dword ptr [ESP + 0x20]
PUSH ECX
PUSH EAX
CALL 0x0002bd60
ADD ESP,0x10
JMP 0x00046e16
MOV EAX,dword ptr [ESP + 0x10]
MOV EDX,dword ptr [ESP + 0x1c]
LEA EAX,[EAX + EAX*0x4]
MOV byte ptr [EDX + EAX*0x4 + 0x10],0x0
JMP 0x00046e50
TEST AL,AL
MOV EDX,0x1c0000
CMOVNZ EDX,dword ptr [ESP + 0x4]
MOV dword ptr [ESP + 0x4],EDX
JMP 0x00046d57
LEA EAX,[ECX + 0x2]
CMP byte ptr [ECX + 0x1],0x20
MOV dword ptr [ESP + 0x8],EAX
JZ 0x000473dc
LEA EAX,[ECX + 0x1]
MOV dword ptr [ESP + 0x8],EAX
MOV EDX,dword ptr [ESP + 0x4]
MOV EAX,dword ptr [ESP + 0x8]
CALL 0x00044f30
MOV dword ptr [EBX + 0x9078],EAX
TEST EAX,EAX
JZ 0x000474a6
MOV EDX,dword ptr [ESP + 0x24]
MOVZX EAX,byte ptr [EDX]
CMP AL,0x20
JNZ 0x00047409
MOVZX EAX,byte ptr [EDX + 0x1]
ADD EDX,0x1
CMP AL,0x2c
JZ 0x0004757e
MOV dword ptr [ESP + 0x8],EBP
CMP AL,0x29
JZ 0x00046cca
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe2520]
PUSH 0x5
JMP 0x00047255
ADD ESI,0x2
JMP 0x00046c49
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe2658]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
POP ESI
POP EDI
PUSH 0x2
PUSH EAX
CALL 0x0002bd60
ADD ESP,0x10
XOR EAX,EAX
JMP 0x000469b7
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe24d0]
PUSH 0x5
JMP 0x00047443
CMP byte ptr [ECX],0x25
JZ 0x000475a9
CMP ESI,dword ptr [ESP + 0x8]
JNZ 0x00046cd4
JMP 0x00046ea4
TEST AL,AL
JNZ 0x00046d4f
CMP byte ptr [EBX + 0x8ff8],0x77
MOV dword ptr [ESP + 0x4],0xc0000
JNZ 0x00046d57
JMP 0x00046d4f
MOV EAX,dword ptr [ESP + 0x8]
MOVZX EAX,byte ptr [EAX]
CMP AL,0x25
JZ 0x00047661
CMP AL,0x29
JZ 0x000476a3
LEA EAX,[EBX + 0x9978]
MOV EDX,dword ptr [EAX]
MOV dword ptr [ESP + 0x4],EAX
MOV dword ptr [ESP + 0xc],EDX
MOV EDX,dword ptr [ESP + 0x8]
MOV dword ptr [EAX],EDX
CALL 0x0002d860
MOV ECX,EDX
MOV EDX,EAX
XOR EDX,0x2
OR EDX,ECX
JZ 0x000475f8
MOV EDX,0x2
CMP EDX,EAX
MOV EDX,0x0
SBB EDX,ECX
JGE 0x00047567
MOV EDX,EAX
XOR EDX,0x4
OR EDX,ECX
JZ 0x0004764d
XOR EAX,0x8
OR ECX,EAX
JNZ 0x0004760c
MOV dword ptr [EBX + 0x907c],0x3
MOV ECX,0x3
MOV EAX,dword ptr [EBX + 0x9078]
TEST EAX,EAX
JZ 0x000476c8
MOV EAX,dword ptr [ESP + 0x4]
MOV ECX,dword ptr [ESP + 0xc]
MOV EDX,dword ptr [EAX]
MOV dword ptr [EAX],ECX
TEST EDX,EDX
JZ 0x00046ac0
MOVZX EAX,byte ptr [EDX]
CMP AL,0x20
JNZ 0x0004754b
MOVZX EAX,byte ptr [EDX + 0x1]
MOV dword ptr [ESP + 0x8],EBP
CMP AL,0x29
JZ 0x00046cca
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe25b8]
PUSH 0x5
JMP 0x00047255
XOR EAX,0x1
OR ECX,EAX
JNZ 0x0004760c
MOV dword ptr [EBX + 0x907c],0x0
JMP 0x0004752c
MOVZX EAX,byte ptr [EDX + 0x1]
LEA ECX,[EDX + 0x1]
MOV dword ptr [ESP + 0x8],ECX
CMP AL,0x20
JNZ 0x00047598
LEA EAX,[EDX + 0x2]
MOV dword ptr [ESP + 0x8],EAX
MOVZX EAX,byte ptr [EDX + 0x2]
CMP AL,0x29
JNZ 0x000474bd
MOV dword ptr [ESP + 0x8],EBP
JMP 0x00046cca
SUB ESP,0x8
PUSH 0x2c
PUSH ECX
MOV dword ptr [ESP + 0x14],ECX
CALL 0x00014420
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x4]
TEST EAX,EAX
MOV dword ptr [ESP + 0x24],EAX
JZ 0x000475ca
MOV byte ptr [EAX],0x0
MOV dword ptr [ESP + 0x4],ECX
LEA EAX,[EBX + 0xfffe3cda]
SUB ESP,0x4
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
POP EBP
POP EDX
MOV ECX,dword ptr [ESP + 0xc]
PUSH ECX
PUSH EAX
CALL 0x0002bd60
ADD ESP,0x10
XOR EAX,EAX
JMP 0x000469b7
MOV dword ptr [EBX + 0x907c],0x1
MOV ECX,0x1
JMP 0x0004751e
MOV EDI,dword ptr [ESP + 0x4]
SUB ESP,0x4
MOV EAX,dword ptr [EDI]
MOVZX ESI,byte ptr [EAX]
MOV byte ptr [EAX],0x0
LEA EAX,[EBX + 0xfffe2554]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
POP EBP
POP EDX
PUSH dword ptr [ESP + 0x10]
PUSH EAX
CALL 0x0002bd60
MOV EAX,dword ptr [EDI]
MOV EDX,ESI
MOV byte ptr [EAX],DL
MOV EAX,dword ptr [ESP + 0x1c]
ADD ESP,0x10
MOV dword ptr [EDI],EAX
XOR EAX,EAX
JMP 0x000469b7
MOV dword ptr [EBX + 0x907c],0x2
MOV ECX,0x2
JMP 0x0004751e
PUSH EBP
PUSH EBP
PUSH 0x2c
PUSH dword ptr [ESP + 0x14]
CALL 0x00014420
ADD ESP,0x10
MOV dword ptr [ESP + 0x24],EAX
TEST EAX,EAX
JZ 0x0004767c
MOV byte ptr [EAX],0x0
LEA EAX,[EBX + 0xfffe3cda]
PUSH ECX
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
POP ESI
POP EDI
PUSH dword ptr [ESP + 0x10]
PUSH EAX
CALL 0x0002bd60
ADD ESP,0x10
XOR EAX,EAX
JMP 0x000469b7
LEA EAX,[EBX + 0xfffe25e4]
PUSH EDI
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
POP EBP
POP EDX
PUSH 0x29
PUSH EAX
CALL 0x0002bd60
ADD ESP,0x10
XOR EAX,EAX
JMP 0x000469b7
LEA EAX,[EBX + 0xfffe2588]
MOV dword ptr [ESP + 0x8],ECX
PUSH ECX
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
MOV EDX,EAX
POP EAX
POP ECX
MOV EAX,0x1
MOV ECX,dword ptr [ESP + 0x10]
SHL EAX,CL
PUSH EAX
PUSH EDX
CALL 0x0002bc80
ADD ESP,0x10
MOV dword ptr [EBX + 0x907c],0x0
JMP 0x0004752c
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nbool __regparm3 FUN_00046910(byte *param_1)\n\n{\n  int iVar1;\n  byte *pbVar2;\n  uint uVar3;\n  byte bVar4;\n  char cVar5;\n  int iVar6;\n  undefined4 uVar7;\n  size_t sVar8;\n  int iVar9;\n  byte *pbVar10;\n  undefined4 *puVar11;\n  undefined4 uVar12;\n  char *pcVar13;\n  sbyte sVar14;\n  undefined4 extraout_ECX;\n  byte *pbVar15;\n  byte *pbVar16;\n  bool bVar17;\n  longlong lVar18;\n  uint local_48;\n  byte *local_44;\n  byte *local_28;\n  \n  bVar4 = *param_1;\n  pbVar16 = param_1;\n  if (bVar4 == 0x20) {\n    bVar4 = param_1[1];\n    pbVar16 = param_1 + 1;\n  }\n  if (bVar4 == 0x2a) {\n    if (pbVar16[1] == 0x20) {\n      pbVar16 = pbVar16 + 2;\n    }\n    else {\n      pbVar16 = pbVar16 + 1;\n    }\n    pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);\n    *pbVar10 = *pbVar10 | 2;\n  }\n  iVar6 = FUN_00044f30();\n  iVar9 = DAT_0008900c;\n  if (iVar6 == 0) {\n    bVar4 = *pbVar16;\n    if (bVar4 == 0x25) {\n      pcVar13 = "bad register name `%s\'";\nLAB_00046f4c:\n      uVar7 = dcgettext(0,pcVar13,5);\n      FUN_0002bd60(uVar7,pbVar16);\n      return false;\n    }\n    if (bVar4 == 0x24) {\n      if ((*(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3) & 2) != 0) {\n        uVar7 = dcgettext(0,"immediate operand illegal with absolute jump",5);\n        FUN_0002bd60(uVar7);\n        return false;\n      }\n      if (DAT_0008900c != 2) {\n        iVar6 = DAT_0008900c * 5;\n        DAT_0008900c = DAT_0008900c + 1;\n        (&DAT_00089038)[DAT_00080558] = &DAT_00088f20 + iVar6;\n        uVar7 = DAT_00089978;\n        local_44 = pbVar16 + 2;\n        if (pbVar16[1] != 0x20) {\n          local_44 = pbVar16 + 1;\n        }\n        DAT_00089978 = local_44;\n        pbVar16 = (byte *)FUN_000453b0();\n        if (pbVar16 != (byte *)0x0) {\n          DAT_00089978 = pbVar16;\n        }\n        FUN_000221d0(0,&DAT_00088f20 + iVar6,1);\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n          DAT_00089978 = DAT_00089978 + 1;\n        }\n        if (bVar4 == 0x7b) {\n          DAT_00089978 = (byte *)FUN_00045070();\n          if (DAT_00089978 == (byte *)0x0) {\n            return false;\n          }\n          bVar4 = *DAT_00089978;\n        }\n        pbVar10 = DAT_00089978;\n        if (bVar4 != 0) {\n          uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n          FUN_0002bd60(uVar12,pbVar10);\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (pbVar16 != (byte *)0x0) {\n          free(pbVar16);\n          if (((&DAT_00088f30)[iVar9 * 0x14] == '\x02') || ((&DAT_00088f30)[iVar9 * 0x14] == '\x05')\n             ) {\n            (&DAT_00088f30)[iVar9 * 0x14] = 0;\n          }\n        }\n        iVar9 = FUN_00041f60(0xffffffff,0xffffffff,local_44);\n        return iVar9 != 0;\n      }\n      pcVar13 = "at most %d immediate operands are allowed";\n      goto LAB_00047443;\n    }\n    if (*param_1 == 0x7b) {\n      iVar9 = FUN_000464f0();\n      if (iVar9 != 0) {\n        return true;\n      }\n      bVar4 = *pbVar16;\n    }\n    iVar9 = DAT_00080558;\n    if ((((&DAT_00089120)[bVar4] == '\0') && (bVar4 != 0x28 && bVar4 != 0x22)) &&\n       ((&DAT_00089220)[bVar4] == '\0')) {\n      uVar7 = FUN_00046660();\n      uVar12 = dcgettext(0,"invalid char %s beginning operand %d `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7,iVar9 + 1,pbVar16);\n      return false;\n    }\n    goto LAB_00046c60;\n  }\n  bVar4 = *local_28;\n  pbVar10 = local_28;\n  if (bVar4 == 0x20) {\n    bVar4 = local_28[1];\n    pbVar10 = local_28 + 1;\n  }\n  if (bVar4 != 0x3a) {\n    if (bVar4 == 0x7b) {\n      pbVar10 = (byte *)FUN_00045070();\n      if (pbVar10 == (byte *)0x0) {\n        return false;\n      }\n      bVar4 = *pbVar10;\n    }\n    iVar9 = DAT_00080558;\n    if (bVar4 == 0) {\n      uVar3 = *(uint *)(iVar6 + 8);\n      iVar1 = DAT_00080558 + 0xe;\n      (&DAT_00088fa0)[iVar1 * 2] = (&DAT_00088fa0)[iVar1 * 2] | *(uint *)(iVar6 + 4) & 0xffbfffff;\n      *(uint *)(&DAT_00088fa4 + iVar1 * 8) = *(uint *)(&DAT_00088fa4 + iVar1 * 8) | uVar3;\n      (&DAT_00088fa4)[iVar1 * 8] = (&DAT_00088fa4)[iVar1 * 8] & 0xbf;\n      DAT_00089000 = DAT_00089000 + 1;\n      (&DAT_00089038)[iVar9] = iVar6;\n      return true;\n    }\nLAB_00046ad0:\n    uVar7 = dcgettext(0,"junk `%s\' after register",5);\n    FUN_0002bd60(uVar7,pbVar10);\n    return false;\n  }\n  if ((*(ushort *)(iVar6 + 4) & 0x180) == 0) goto LAB_00046ad0;\n  switch(*(undefined1 *)(iVar6 + 0xd)) {\n  case 0:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_es_0007fff8;\n    break;\n  case 1:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_cs_0007ffc8;\n    break;\n  case 2:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ss_0007ffcc;\n    break;\n  case 3:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ds_0007ff80;\n    break;\n  case 4:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_fs_0007ffac;\n    break;\n  case 5:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_gs_0007ff68;\n  }\n  bVar4 = pbVar10[1];\n  pbVar16 = pbVar10 + 1;\n  if (bVar4 == 0x20) {\n    bVar4 = pbVar10[2];\n    pbVar16 = pbVar10 + 2;\n  }\n  if (((&DAT_00089120)[bVar4] == '\0') && ((&DAT_00089220)[bVar4] == '\0')) {\n    if (bVar4 != 0x28) {\n      if (bVar4 != 0x2a) {\n        pcVar13 = "bad memory operand `%s\'";\n        goto LAB_00046f4c;\n      }\nLAB_00046c3c:\n      if (pbVar16[1] == 0x20) {\n        pbVar16 = pbVar16 + 2;\n      }\n      else {\n        pbVar16 = pbVar16 + 1;\n      }\n      pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);\n      *pbVar10 = *pbVar10 | 2;\n    }\n  }\n  else if (bVar4 == 0x2a) goto LAB_00046c3c;\nLAB_00046c60:\n  if (DAT_00089008 == 1) {\n    iVar9 = FUN_00046270();\n    if (iVar9 == 0) {\n      return false;\n    }\n    if (DAT_00089008 != 1) goto LAB_00046c6f;\n    puVar11 = (undefined4 *)*DAT_00088f88;\n    if ((*(byte *)((int)puVar11 + 0x27) & 1) == 0) goto LAB_0004729e;\n  }\n  else {\nLAB_00046c6f:\n    if (DAT_00089008 == 2) {\n      puVar11 = (undefined4 *)*DAT_00088f88;\nLAB_0004729e:\n      uVar7 = *puVar11;\n      uVar12 = dcgettext(0,"too many memory references for `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7);\n      return false;\n    }\n  }\n  sVar8 = strlen((char *)pbVar16);\n  local_44 = pbVar16 + sVar8;\n  pbVar10 = (byte *)strchr((char *)pbVar16,0x7b);\n  if (((pbVar10 != (byte *)0x0) && (pbVar10 < local_44)) &&\n     (iVar9 = FUN_00045070(), local_44 = pbVar10, iVar9 == 0)) {\n    return false;\n  }\n  pbVar10 = local_44 + -1;\n  if (local_44[-1] == 0x20) {\n    pbVar10 = local_44 + -2;\n    local_44 = local_44 + -1;\n  }\n  pbVar15 = local_44;\n  if (*pbVar10 == 0x29) {\n    bVar4 = pbVar10[-1];\n    iVar9 = 1;\n    pbVar15 = pbVar10 + -1;\n    if (bVar4 == 0x29) goto LAB_000471f8;\nLAB_000471e0:\n    if (bVar4 != 0x28) goto LAB_000471eb;\n    iVar9 = iVar9 + -1;\n    do {\n      if (iVar9 == 0) {\n        bVar4 = pbVar15[1];\n        if (bVar4 == 0x20) {\n          bVar4 = pbVar10[1];\n          pbVar10 = pbVar15 + 2;\n        }\n        if (bVar4 == 0x2c) {\n          pbVar2 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar2 = *pbVar2 | 0x40;\n          if (DAT_00089074 != 0) goto LAB_00047347;\n          bVar4 = *pbVar10;\n        }\n        else {\n          DAT_00089074 = FUN_00044f30();\n          if (DAT_00089074 == 0) {\n            if (*pbVar10 == 0x25) {\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }\n            if (pbVar16 != local_44) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar10 = *pbVar10 | 0x40;\nLAB_00047347:\n          bVar4 = *local_28;\n          pbVar10 = local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            pbVar10 = local_28 + 1;\n          }\n        }\n        if (bVar4 != 0x2c) {\n          if (bVar4 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }\n          break;\n        }\n        local_44 = pbVar10 + 2;\n        if (pbVar10[1] != 0x20) {\n          local_44 = pbVar10 + 1;\n        }\n        DAT_00089078 = FUN_00044f30();\n        uVar7 = DAT_00089978;\n        if (DAT_00089078 == 0) {\n          if (*local_44 == 0x25) {\n            pcVar13 = strchr((char *)local_44,0x2c);\n            if (pcVar13 != (char *)0x0) {\n              *pcVar13 = '\0';\n            }\n            uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            FUN_0002bd60(uVar7,local_44);\n            return false;\n          }\n          if (*local_44 == 0x29) {\n            uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1);\n            FUN_0002bd60(uVar7,0x29);\n            return false;\n          }\n        }\n        else {\n          bVar4 = *local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            local_28 = local_28 + 1;\n          }\n          if (bVar4 != 0x2c) {\n            DAT_00089978 = (byte *)uVar7;\n            if (bVar4 != 0x29) {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          bVar4 = local_28[1];\n          local_44 = local_28 + 1;\n          if (bVar4 == 0x20) {\n            local_44 = local_28 + 2;\n            bVar4 = local_28[2];\n          }\n          DAT_00089978 = (byte *)uVar7;\n          if (bVar4 == 0x29) break;\n        }\n        DAT_00089978 = local_44;\n        lVar18 = FUN_0002d860();\n        if (lVar18 == 2) {\n          DAT_0008907c = 1;\n          sVar14 = 1;\nLAB_0004751e:\n          if (DAT_00089078 == 0) {\n            uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);\n            FUN_0002bc80(uVar12,1 << sVar14);\n            DAT_0008907c = 0;\n          }\n        }\n        else {\n          if (-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18)) {\n            if (lVar18 == 4) {\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }\n            else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (lVar18 != 1) {\nLAB_0004760c:\n            bVar4 = *DAT_00089978;\n            *DAT_00089978 = 0;\n            uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            FUN_0002bd60(uVar12,local_44);\n            *DAT_00089978 = bVar4;\n            DAT_00089978 = (byte *)uVar7;\n            return false;\n          }\n          DAT_0008907c = 0;\n        }\n        if (DAT_00089978 == (byte *)0x0) {\n          DAT_00089978 = (byte *)uVar7;\n          return false;\n        }\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (bVar4 != 0x29) {\n          pcVar13 = "expecting `)\' after scale factor in `%s\'";\nLAB_00047255:\n          uVar7 = dcgettext(0,pcVar13,5);\n          FUN_0002bd60(uVar7,param_1);\n          return false;\n        }\n        break;\n      }\nLAB_000471eb:\n      pbVar10 = pbVar15;\n      bVar4 = pbVar10[-1];\n      pbVar15 = pbVar10 + -1;\n      if (bVar4 != 0x29) goto LAB_000471e0;\nLAB_000471f8:\n      iVar9 = iVar9 + 1;\n    } while( true );\n  }\n  local_44 = pbVar15;\n  if (pbVar16 == local_44) goto LAB_00046e80;\nLAB_00046cd4:\n  iVar6 = DAT_00089004;\n  iVar9 = DAT_00080558;\n  if (DAT_00089004 == 2) {\n    pcVar13 = "at most %d displacement operands are allowed";\nLAB_00047443:\n    uVar7 = dcgettext(0,pcVar13,5);\n    FUN_0002bd60(uVar7,2);\n    return false;\n  }\n  if (((*(byte *)((int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8 + 3) & 2) == 0) &&\n     ((*(byte *)(*DAT_00088f88 + 0x24) & 0x60) != 0)) {\n    if (DAT_00088f0c == 2) {\n      if ((DAT_00089093 != '\0') || (local_48 = 0xc0000, DAT_00088ff8 == 'w')) goto LAB_00046d4f;\n    }\n    else {\n      bVar17 = true;\n      if (DAT_00089093 == '\0') {\n        cVar5 = 'l';\n        if (DAT_00088f0c != 1) {\n          cVar5 = 'w';\n        }\n        bVar17 = DAT_00088ff8 == cVar5;\n      }\n      local_48 = 0x40000;\n      if ((DAT_00088f0c == 1) != bVar17) {\nLAB_00046d4f:\n        local_48 = 0x20000;\n      }\n    }\n  }\n  else {\n    local_48 = 0x40000;\n    if (DAT_00088f0c == 2) {\n      local_48 = 0x1c0000;\n      if (DAT_00089092 != '\0') {\n        local_48 = 0x40000;\n      }\n    }\n    else if ((DAT_00089092 != '\0') != (DAT_00088f0c == 1)) goto LAB_00046d4f;\n  }\n  (&DAT_00088fa0)[(DAT_00080558 + 0xe) * 2] = (&DAT_00088fa0)[(DAT_00080558 + 0xe) * 2] | local_48;\n  iVar1 = DAT_00089004 * 0x14;\n  (&DAT_00089038)[iVar9] = &DAT_00088f60 + iVar1;\n  uVar7 = DAT_00089978;\n  DAT_00089004 = DAT_00089004 + 1;\n  pbVar10 = DAT_000890fc + 1;\n  DAT_00089978 = pbVar16;\n  *DAT_000890fc = *local_44;\n  DAT_000890fc = pbVar10;\n  *local_44 = 0;\n  pbVar16 = (byte *)FUN_000453b0();\n  if (pbVar16 != (byte *)0x0) {\n    DAT_00089978 = pbVar16;\n  }\n  FUN_000221d0(0,&DAT_00088f60 + iVar1,1);\n  bVar4 = *DAT_00089978;\n  if (bVar4 == 0x20) {\n    bVar4 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }\n  pbVar10 = DAT_00089978;\n  if (bVar4 != 0) {\n    uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n    FUN_0002bd60(uVar12,pbVar10);\n  }\n  DAT_00089978 = (byte *)uVar7;\n  if (pbVar16 != (byte *)0x0) {\n    free(pbVar16);\n    if (((&DAT_00088f70)[iVar6 * 0x14] == '\x02') || ((&DAT_00088f70)[iVar6 * 0x14] == '\x05')) {\n      (&DAT_00088f70)[iVar6 * 0x14] = 0;\n    }\n  }\n  iVar9 = FUN_000466b0();\n  pbVar16 = DAT_000890fc + -1;\n  DAT_000890fc = DAT_000890fc + -1;\n  *local_44 = *pbVar16;\n  if (iVar9 == 0) {\n    return false;\n  }\nLAB_00046e80:\n  if (((((DAT_00089074 != 0) && (*(int *)(DAT_00089074 + 8) == DAT_000654e4)) &&\n       (*(int *)(DAT_00089074 + 4) == DAT_000654e0)) && ((DAT_00089078 == 0 && (DAT_0008907c == 0)))\n      ) && ((*(int *)(&DAT_00089080 + DAT_00089008 * 4) == 0 &&\n            (iVar9 = DAT_00080558 + 0xe, (*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f) == 0\n            )))) {\n    (&DAT_00088fa0)[iVar9 * 2] = 0;\n    *(undefined4 *)(&DAT_00088fa4 + iVar9 * 8) = 0;\n    pbVar16 = (byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2);\n    *pbVar16 = *pbVar16 | 0x80;\n    return true;\n  }\nLAB_00046ea4:\n  iVar9 = FUN_00045de0();\n  if (iVar9 == 0) {\n    return false;\n  }\n  pbVar16 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);\n  *pbVar16 = *pbVar16 | 0x10;\n  if (DAT_00089008 == 0) {\n    DAT_00089088 = xstrdup(param_1);\n  }\n  DAT_00089008 = DAT_00089008 + 1;\n  return true;\n}\n\n" comment (function_definition "bool __regparm3 FUN_00046910(byte *param_1)\n\n{\n  int iVar1;\n  byte *pbVar2;\n  uint uVar3;\n  byte bVar4;\n  char cVar5;\n  int iVar6;\n  undefined4 uVar7;\n  size_t sVar8;\n  int iVar9;\n  byte *pbVar10;\n  undefined4 *puVar11;\n  undefined4 uVar12;\n  char *pcVar13;\n  sbyte sVar14;\n  undefined4 extraout_ECX;\n  byte *pbVar15;\n  byte *pbVar16;\n  bool bVar17;\n  longlong lVar18;\n  uint local_48;\n  byte *local_44;\n  byte *local_28;\n  \n  bVar4 = *param_1;\n  pbVar16 = param_1;\n  if (bVar4 == 0x20) {\n    bVar4 = param_1[1];\n    pbVar16 = param_1 + 1;\n  }\n  if (bVar4 == 0x2a) {\n    if (pbVar16[1] == 0x20) {\n      pbVar16 = pbVar16 + 2;\n    }\n    else {\n      pbVar16 = pbVar16 + 1;\n    }\n    pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);\n    *pbVar10 = *pbVar10 | 2;\n  }\n  iVar6 = FUN_00044f30();\n  iVar9 = DAT_0008900c;\n  if (iVar6 == 0) {\n    bVar4 = *pbVar16;\n    if (bVar4 == 0x25) {\n      pcVar13 = "bad register name `%s\'";\nLAB_00046f4c:\n      uVar7 = dcgettext(0,pcVar13,5);\n      FUN_0002bd60(uVar7,pbVar16);\n      return false;\n    }\n    if (bVar4 == 0x24) {\n      if ((*(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3) & 2) != 0) {\n        uVar7 = dcgettext(0,"immediate operand illegal with absolute jump",5);\n        FUN_0002bd60(uVar7);\n        return false;\n      }\n      if (DAT_0008900c != 2) {\n        iVar6 = DAT_0008900c * 5;\n        DAT_0008900c = DAT_0008900c + 1;\n        (&DAT_00089038)[DAT_00080558] = &DAT_00088f20 + iVar6;\n        uVar7 = DAT_00089978;\n        local_44 = pbVar16 + 2;\n        if (pbVar16[1] != 0x20) {\n          local_44 = pbVar16 + 1;\n        }\n        DAT_00089978 = local_44;\n        pbVar16 = (byte *)FUN_000453b0();\n        if (pbVar16 != (byte *)0x0) {\n          DAT_00089978 = pbVar16;\n        }\n        FUN_000221d0(0,&DAT_00088f20 + iVar6,1);\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n          DAT_00089978 = DAT_00089978 + 1;\n        }\n        if (bVar4 == 0x7b) {\n          DAT_00089978 = (byte *)FUN_00045070();\n          if (DAT_00089978 == (byte *)0x0) {\n            return false;\n          }\n          bVar4 = *DAT_00089978;\n        }\n        pbVar10 = DAT_00089978;\n        if (bVar4 != 0) {\n          uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n          FUN_0002bd60(uVar12,pbVar10);\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (pbVar16 != (byte *)0x0) {\n          free(pbVar16);\n          if (((&DAT_00088f30)[iVar9 * 0x14] == '\x02') || ((&DAT_00088f30)[iVar9 * 0x14] == '\x05')\n             ) {\n            (&DAT_00088f30)[iVar9 * 0x14] = 0;\n          }\n        }\n        iVar9 = FUN_00041f60(0xffffffff,0xffffffff,local_44);\n        return iVar9 != 0;\n      }\n      pcVar13 = "at most %d immediate operands are allowed";\n      goto LAB_00047443;\n    }\n    if (*param_1 == 0x7b) {\n      iVar9 = FUN_000464f0();\n      if (iVar9 != 0) {\n        return true;\n      }\n      bVar4 = *pbVar16;\n    }\n    iVar9 = DAT_00080558;\n    if ((((&DAT_00089120)[bVar4] == '\0') && (bVar4 != 0x28 && bVar4 != 0x22)) &&\n       ((&DAT_00089220)[bVar4] == '\0')) {\n      uVar7 = FUN_00046660();\n      uVar12 = dcgettext(0,"invalid char %s beginning operand %d `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7,iVar9 + 1,pbVar16);\n      return false;\n    }\n    goto LAB_00046c60;\n  }\n  bVar4 = *local_28;\n  pbVar10 = local_28;\n  if (bVar4 == 0x20) {\n    bVar4 = local_28[1];\n    pbVar10 = local_28 + 1;\n  }\n  if (bVar4 != 0x3a) {\n    if (bVar4 == 0x7b) {\n      pbVar10 = (byte *)FUN_00045070();\n      if (pbVar10 == (byte *)0x0) {\n        return false;\n      }\n      bVar4 = *pbVar10;\n    }\n    iVar9 = DAT_00080558;\n    if (bVar4 == 0) {\n      uVar3 = *(uint *)(iVar6 + 8);\n      iVar1 = DAT_00080558 + 0xe;\n      (&DAT_00088fa0)[iVar1 * 2] = (&DAT_00088fa0)[iVar1 * 2] | *(uint *)(iVar6 + 4) & 0xffbfffff;\n      *(uint *)(&DAT_00088fa4 + iVar1 * 8) = *(uint *)(&DAT_00088fa4 + iVar1 * 8) | uVar3;\n      (&DAT_00088fa4)[iVar1 * 8] = (&DAT_00088fa4)[iVar1 * 8] & 0xbf;\n      DAT_00089000 = DAT_00089000 + 1;\n      (&DAT_00089038)[iVar9] = iVar6;\n      return true;\n    }\nLAB_00046ad0:\n    uVar7 = dcgettext(0,"junk `%s\' after register",5);\n    FUN_0002bd60(uVar7,pbVar10);\n    return false;\n  }\n  if ((*(ushort *)(iVar6 + 4) & 0x180) == 0) goto LAB_00046ad0;\n  switch(*(undefined1 *)(iVar6 + 0xd)) {\n  case 0:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_es_0007fff8;\n    break;\n  case 1:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_cs_0007ffc8;\n    break;\n  case 2:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ss_0007ffcc;\n    break;\n  case 3:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ds_0007ff80;\n    break;\n  case 4:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_fs_0007ffac;\n    break;\n  case 5:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_gs_0007ff68;\n  }\n  bVar4 = pbVar10[1];\n  pbVar16 = pbVar10 + 1;\n  if (bVar4 == 0x20) {\n    bVar4 = pbVar10[2];\n    pbVar16 = pbVar10 + 2;\n  }\n  if (((&DAT_00089120)[bVar4] == '\0') && ((&DAT_00089220)[bVar4] == '\0')) {\n    if (bVar4 != 0x28) {\n      if (bVar4 != 0x2a) {\n        pcVar13 = "bad memory operand `%s\'";\n        goto LAB_00046f4c;\n      }\nLAB_00046c3c:\n      if (pbVar16[1] == 0x20) {\n        pbVar16 = pbVar16 + 2;\n      }\n      else {\n        pbVar16 = pbVar16 + 1;\n      }\n      pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);\n      *pbVar10 = *pbVar10 | 2;\n    }\n  }\n  else if (bVar4 == 0x2a) goto LAB_00046c3c;\nLAB_00046c60:\n  if (DAT_00089008 == 1) {\n    iVar9 = FUN_00046270();\n    if (iVar9 == 0) {\n      return false;\n    }\n    if (DAT_00089008 != 1) goto LAB_00046c6f;\n    puVar11 = (undefined4 *)*DAT_00088f88;\n    if ((*(byte *)((int)puVar11 + 0x27) & 1) == 0) goto LAB_0004729e;\n  }\n  else {\nLAB_00046c6f:\n    if (DAT_00089008 == 2) {\n      puVar11 = (undefined4 *)*DAT_00088f88;\nLAB_0004729e:\n      uVar7 = *puVar11;\n      uVar12 = dcgettext(0,"too many memory references for `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7);\n      return false;\n    }\n  }\n  sVar8 = strlen((char *)pbVar16);\n  local_44 = pbVar16 + sVar8;\n  pbVar10 = (byte *)strchr((char *)pbVar16,0x7b);\n  if (((pbVar10 != (byte *)0x0) && (pbVar10 < local_44)) &&\n     (iVar9 = FUN_00045070(), local_44 = pbVar10, iVar9 == 0)) {\n    return false;\n  }\n  pbVar10 = local_44 + -1;\n  if (local_44[-1] == 0x20) {\n    pbVar10 = local_44 + -2;\n    local_44 = local_44 + -1;\n  }\n  pbVar15 = local_44;\n  if (*pbVar10 == 0x29) {\n    bVar4 = pbVar10[-1];\n    iVar9 = 1;\n    pbVar15 = pbVar10 + -1;\n    if (bVar4 == 0x29) goto LAB_000471f8;\nLAB_000471e0:\n    if (bVar4 != 0x28) goto LAB_000471eb;\n    iVar9 = iVar9 + -1;\n    do {\n      if (iVar9 == 0) {\n        bVar4 = pbVar15[1];\n        if (bVar4 == 0x20) {\n          bVar4 = pbVar10[1];\n          pbVar10 = pbVar15 + 2;\n        }\n        if (bVar4 == 0x2c) {\n          pbVar2 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar2 = *pbVar2 | 0x40;\n          if (DAT_00089074 != 0) goto LAB_00047347;\n          bVar4 = *pbVar10;\n        }\n        else {\n          DAT_00089074 = FUN_00044f30();\n          if (DAT_00089074 == 0) {\n            if (*pbVar10 == 0x25) {\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }\n            if (pbVar16 != local_44) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar10 = *pbVar10 | 0x40;\nLAB_00047347:\n          bVar4 = *local_28;\n          pbVar10 = local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            pbVar10 = local_28 + 1;\n          }\n        }\n        if (bVar4 != 0x2c) {\n          if (bVar4 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }\n          break;\n        }\n        local_44 = pbVar10 + 2;\n        if (pbVar10[1] != 0x20) {\n          local_44 = pbVar10 + 1;\n        }\n        DAT_00089078 = FUN_00044f30();\n        uVar7 = DAT_00089978;\n        if (DAT_00089078 == 0) {\n          if (*local_44 == 0x25) {\n            pcVar13 = strchr((char *)local_44,0x2c);\n            if (pcVar13 != (char *)0x0) {\n              *pcVar13 = '\0';\n            }\n            uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            FUN_0002bd60(uVar7,local_44);\n            return false;\n          }\n          if (*local_44 == 0x29) {\n            uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1);\n            FUN_0002bd60(uVar7,0x29);\n            return false;\n          }\n        }\n        else {\n          bVar4 = *local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            local_28 = local_28 + 1;\n          }\n          if (bVar4 != 0x2c) {\n            DAT_00089978 = (byte *)uVar7;\n            if (bVar4 != 0x29) {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          bVar4 = local_28[1];\n          local_44 = local_28 + 1;\n          if (bVar4 == 0x20) {\n            local_44 = local_28 + 2;\n            bVar4 = local_28[2];\n          }\n          DAT_00089978 = (byte *)uVar7;\n          if (bVar4 == 0x29) break;\n        }\n        DAT_00089978 = local_44;\n        lVar18 = FUN_0002d860();\n        if (lVar18 == 2) {\n          DAT_0008907c = 1;\n          sVar14 = 1;\nLAB_0004751e:\n          if (DAT_00089078 == 0) {\n            uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);\n            FUN_0002bc80(uVar12,1 << sVar14);\n            DAT_0008907c = 0;\n          }\n        }\n        else {\n          if (-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18)) {\n            if (lVar18 == 4) {\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }\n            else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (lVar18 != 1) {\nLAB_0004760c:\n            bVar4 = *DAT_00089978;\n            *DAT_00089978 = 0;\n            uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            FUN_0002bd60(uVar12,local_44);\n            *DAT_00089978 = bVar4;\n            DAT_00089978 = (byte *)uVar7;\n            return false;\n          }\n          DAT_0008907c = 0;\n        }\n        if (DAT_00089978 == (byte *)0x0) {\n          DAT_00089978 = (byte *)uVar7;\n          return false;\n        }\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (bVar4 != 0x29) {\n          pcVar13 = "expecting `)\' after scale factor in `%s\'";\nLAB_00047255:\n          uVar7 = dcgettext(0,pcVar13,5);\n          FUN_0002bd60(uVar7,param_1);\n          return false;\n        }\n        break;\n      }\nLAB_000471eb:\n      pbVar10 = pbVar15;\n      bVar4 = pbVar10[-1];\n      pbVar15 = pbVar10 + -1;\n      if (bVar4 != 0x29) goto LAB_000471e0;\nLAB_000471f8:\n      iVar9 = iVar9 + 1;\n    } while( true );\n  }\n  local_44 = pbVar15;\n  if (pbVar16 == local_44) goto LAB_00046e80;\nLAB_00046cd4:\n  iVar6 = DAT_00089004;\n  iVar9 = DAT_00080558;\n  if (DAT_00089004 == 2) {\n    pcVar13 = "at most %d displacement operands are allowed";\nLAB_00047443:\n    uVar7 = dcgettext(0,pcVar13,5);\n    FUN_0002bd60(uVar7,2);\n    return false;\n  }\n  if (((*(byte *)((int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8 + 3) & 2) == 0) &&\n     ((*(byte *)(*DAT_00088f88 + 0x24) & 0x60) != 0)) {\n    if (DAT_00088f0c == 2) {\n      if ((DAT_00089093 != '\0') || (local_48 = 0xc0000, DAT_00088ff8 == 'w')) goto LAB_00046d4f;\n    }\n    else {\n      bVar17 = true;\n      if (DAT_00089093 == '\0') {\n        cVar5 = 'l';\n        if (DAT_00088f0c != 1) {\n          cVar5 = 'w';\n        }\n        bVar17 = DAT_00088ff8 == cVar5;\n      }\n      local_48 = 0x40000;\n      if ((DAT_00088f0c == 1) != bVar17) {\nLAB_00046d4f:\n        local_48 = 0x20000;\n      }\n    }\n  }\n  else {\n    local_48 = 0x40000;\n    if (DAT_00088f0c == 2) {\n      local_48 = 0x1c0000;\n      if (DAT_00089092 != '\0') {\n        local_48 = 0x40000;\n      }\n    }\n    else if ((DAT_00089092 != '\0') != (DAT_00088f0c == 1)) goto LAB_00046d4f;\n  }\n  (&DAT_00088fa0)[(DAT_00080558 + 0xe) * 2] = (&DAT_00088fa0)[(DAT_00080558 + 0xe) * 2] | local_48;\n  iVar1 = DAT_00089004 * 0x14;\n  (&DAT_00089038)[iVar9] = &DAT_00088f60 + iVar1;\n  uVar7 = DAT_00089978;\n  DAT_00089004 = DAT_00089004 + 1;\n  pbVar10 = DAT_000890fc + 1;\n  DAT_00089978 = pbVar16;\n  *DAT_000890fc = *local_44;\n  DAT_000890fc = pbVar10;\n  *local_44 = 0;\n  pbVar16 = (byte *)FUN_000453b0();\n  if (pbVar16 != (byte *)0x0) {\n    DAT_00089978 = pbVar16;\n  }\n  FUN_000221d0(0,&DAT_00088f60 + iVar1,1);\n  bVar4 = *DAT_00089978;\n  if (bVar4 == 0x20) {\n    bVar4 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }\n  pbVar10 = DAT_00089978;\n  if (bVar4 != 0) {\n    uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n    FUN_0002bd60(uVar12,pbVar10);\n  }\n  DAT_00089978 = (byte *)uVar7;\n  if (pbVar16 != (byte *)0x0) {\n    free(pbVar16);\n    if (((&DAT_00088f70)[iVar6 * 0x14] == '\x02') || ((&DAT_00088f70)[iVar6 * 0x14] == '\x05')) {\n      (&DAT_00088f70)[iVar6 * 0x14] = 0;\n    }\n  }\n  iVar9 = FUN_000466b0();\n  pbVar16 = DAT_000890fc + -1;\n  DAT_000890fc = DAT_000890fc + -1;\n  *local_44 = *pbVar16;\n  if (iVar9 == 0) {\n    return false;\n  }\nLAB_00046e80:\n  if (((((DAT_00089074 != 0) && (*(int *)(DAT_00089074 + 8) == DAT_000654e4)) &&\n       (*(int *)(DAT_00089074 + 4) == DAT_000654e0)) && ((DAT_00089078 == 0 && (DAT_0008907c == 0)))\n      ) && ((*(int *)(&DAT_00089080 + DAT_00089008 * 4) == 0 &&\n            (iVar9 = DAT_00080558 + 0xe, (*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f) == 0\n            )))) {\n    (&DAT_00088fa0)[iVar9 * 2] = 0;\n    *(undefined4 *)(&DAT_00088fa4 + iVar9 * 8) = 0;\n    pbVar16 = (byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2);\n    *pbVar16 = *pbVar16 | 0x80;\n    return true;\n  }\nLAB_00046ea4:\n  iVar9 = FUN_00045de0();\n  if (iVar9 == 0) {\n    return false;\n  }\n  pbVar16 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);\n  *pbVar16 = *pbVar16 | 0x10;\n  if (DAT_00089008 == 0) {\n    DAT_00089088 = xstrdup(param_1);\n  }\n  DAT_00089008 = DAT_00089008 + 1;\n  return true;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00046910(byte *param_1)" identifier (parameter_list "(byte *param_1)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  byte *pbVar2;\n  uint uVar3;\n  byte bVar4;\n  char cVar5;\n  int iVar6;\n  undefined4 uVar7;\n  size_t sVar8;\n  int iVar9;\n  byte *pbVar10;\n  undefined4 *puVar11;\n  undefined4 uVar12;\n  char *pcVar13;\n  sbyte sVar14;\n  undefined4 extraout_ECX;\n  byte *pbVar15;\n  byte *pbVar16;\n  bool bVar17;\n  longlong lVar18;\n  uint local_48;\n  byte *local_44;\n  byte *local_28;\n  \n  bVar4 = *param_1;\n  pbVar16 = param_1;\n  if (bVar4 == 0x20) {\n    bVar4 = param_1[1];\n    pbVar16 = param_1 + 1;\n  }\n  if (bVar4 == 0x2a) {\n    if (pbVar16[1] == 0x20) {\n      pbVar16 = pbVar16 + 2;\n    }\n    else {\n      pbVar16 = pbVar16 + 1;\n    }\n    pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);\n    *pbVar10 = *pbVar10 | 2;\n  }\n  iVar6 = FUN_00044f30();\n  iVar9 = DAT_0008900c;\n  if (iVar6 == 0) {\n    bVar4 = *pbVar16;\n    if (bVar4 == 0x25) {\n      pcVar13 = "bad register name `%s\'";\nLAB_00046f4c:\n      uVar7 = dcgettext(0,pcVar13,5);\n      FUN_0002bd60(uVar7,pbVar16);\n      return false;\n    }\n    if (bVar4 == 0x24) {\n      if ((*(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3) & 2) != 0) {\n        uVar7 = dcgettext(0,"immediate operand illegal with absolute jump",5);\n        FUN_0002bd60(uVar7);\n        return false;\n      }\n      if (DAT_0008900c != 2) {\n        iVar6 = DAT_0008900c * 5;\n        DAT_0008900c = DAT_0008900c + 1;\n        (&DAT_00089038)[DAT_00080558] = &DAT_00088f20 + iVar6;\n        uVar7 = DAT_00089978;\n        local_44 = pbVar16 + 2;\n        if (pbVar16[1] != 0x20) {\n          local_44 = pbVar16 + 1;\n        }\n        DAT_00089978 = local_44;\n        pbVar16 = (byte *)FUN_000453b0();\n        if (pbVar16 != (byte *)0x0) {\n          DAT_00089978 = pbVar16;\n        }\n        FUN_000221d0(0,&DAT_00088f20 + iVar6,1);\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n          DAT_00089978 = DAT_00089978 + 1;\n        }\n        if (bVar4 == 0x7b) {\n          DAT_00089978 = (byte *)FUN_00045070();\n          if (DAT_00089978 == (byte *)0x0) {\n            return false;\n          }\n          bVar4 = *DAT_00089978;\n        }\n        pbVar10 = DAT_00089978;\n        if (bVar4 != 0) {\n          uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n          FUN_0002bd60(uVar12,pbVar10);\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (pbVar16 != (byte *)0x0) {\n          free(pbVar16);\n          if (((&DAT_00088f30)[iVar9 * 0x14] == '\x02') || ((&DAT_00088f30)[iVar9 * 0x14] == '\x05')\n             ) {\n            (&DAT_00088f30)[iVar9 * 0x14] = 0;\n          }\n        }\n        iVar9 = FUN_00041f60(0xffffffff,0xffffffff,local_44);\n        return iVar9 != 0;\n      }\n      pcVar13 = "at most %d immediate operands are allowed";\n      goto LAB_00047443;\n    }\n    if (*param_1 == 0x7b) {\n      iVar9 = FUN_000464f0();\n      if (iVar9 != 0) {\n        return true;\n      }\n      bVar4 = *pbVar16;\n    }\n    iVar9 = DAT_00080558;\n    if ((((&DAT_00089120)[bVar4] == '\0') && (bVar4 != 0x28 && bVar4 != 0x22)) &&\n       ((&DAT_00089220)[bVar4] == '\0')) {\n      uVar7 = FUN_00046660();\n      uVar12 = dcgettext(0,"invalid char %s beginning operand %d `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7,iVar9 + 1,pbVar16);\n      return false;\n    }\n    goto LAB_00046c60;\n  }\n  bVar4 = *local_28;\n  pbVar10 = local_28;\n  if (bVar4 == 0x20) {\n    bVar4 = local_28[1];\n    pbVar10 = local_28 + 1;\n  }\n  if (bVar4 != 0x3a) {\n    if (bVar4 == 0x7b) {\n      pbVar10 = (byte *)FUN_00045070();\n      if (pbVar10 == (byte *)0x0) {\n        return false;\n      }\n      bVar4 = *pbVar10;\n    }\n    iVar9 = DAT_00080558;\n    if (bVar4 == 0) {\n      uVar3 = *(uint *)(iVar6 + 8);\n      iVar1 = DAT_00080558 + 0xe;\n      (&DAT_00088fa0)[iVar1 * 2] = (&DAT_00088fa0)[iVar1 * 2] | *(uint *)(iVar6 + 4) & 0xffbfffff;\n      *(uint *)(&DAT_00088fa4 + iVar1 * 8) = *(uint *)(&DAT_00088fa4 + iVar1 * 8) | uVar3;\n      (&DAT_00088fa4)[iVar1 * 8] = (&DAT_00088fa4)[iVar1 * 8] & 0xbf;\n      DAT_00089000 = DAT_00089000 + 1;\n      (&DAT_00089038)[iVar9] = iVar6;\n      return true;\n    }\nLAB_00046ad0:\n    uVar7 = dcgettext(0,"junk `%s\' after register",5);\n    FUN_0002bd60(uVar7,pbVar10);\n    return false;\n  }\n  if ((*(ushort *)(iVar6 + 4) & 0x180) == 0) goto LAB_00046ad0;\n  switch(*(undefined1 *)(iVar6 + 0xd)) {\n  case 0:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_es_0007fff8;\n    break;\n  case 1:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_cs_0007ffc8;\n    break;\n  case 2:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ss_0007ffcc;\n    break;\n  case 3:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ds_0007ff80;\n    break;\n  case 4:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_fs_0007ffac;\n    break;\n  case 5:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_gs_0007ff68;\n  }\n  bVar4 = pbVar10[1];\n  pbVar16 = pbVar10 + 1;\n  if (bVar4 == 0x20) {\n    bVar4 = pbVar10[2];\n    pbVar16 = pbVar10 + 2;\n  }\n  if (((&DAT_00089120)[bVar4] == '\0') && ((&DAT_00089220)[bVar4] == '\0')) {\n    if (bVar4 != 0x28) {\n      if (bVar4 != 0x2a) {\n        pcVar13 = "bad memory operand `%s\'";\n        goto LAB_00046f4c;\n      }\nLAB_00046c3c:\n      if (pbVar16[1] == 0x20) {\n        pbVar16 = pbVar16 + 2;\n      }\n      else {\n        pbVar16 = pbVar16 + 1;\n      }\n      pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);\n      *pbVar10 = *pbVar10 | 2;\n    }\n  }\n  else if (bVar4 == 0x2a) goto LAB_00046c3c;\nLAB_00046c60:\n  if (DAT_00089008 == 1) {\n    iVar9 = FUN_00046270();\n    if (iVar9 == 0) {\n      return false;\n    }\n    if (DAT_00089008 != 1) goto LAB_00046c6f;\n    puVar11 = (undefined4 *)*DAT_00088f88;\n    if ((*(byte *)((int)puVar11 + 0x27) & 1) == 0) goto LAB_0004729e;\n  }\n  else {\nLAB_00046c6f:\n    if (DAT_00089008 == 2) {\n      puVar11 = (undefined4 *)*DAT_00088f88;\nLAB_0004729e:\n      uVar7 = *puVar11;\n      uVar12 = dcgettext(0,"too many memory references for `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7);\n      return false;\n    }\n  }\n  sVar8 = strlen((char *)pbVar16);\n  local_44 = pbVar16 + sVar8;\n  pbVar10 = (byte *)strchr((char *)pbVar16,0x7b);\n  if (((pbVar10 != (byte *)0x0) && (pbVar10 < local_44)) &&\n     (iVar9 = FUN_00045070(), local_44 = pbVar10, iVar9 == 0)) {\n    return false;\n  }\n  pbVar10 = local_44 + -1;\n  if (local_44[-1] == 0x20) {\n    pbVar10 = local_44 + -2;\n    local_44 = local_44 + -1;\n  }\n  pbVar15 = local_44;\n  if (*pbVar10 == 0x29) {\n    bVar4 = pbVar10[-1];\n    iVar9 = 1;\n    pbVar15 = pbVar10 + -1;\n    if (bVar4 == 0x29) goto LAB_000471f8;\nLAB_000471e0:\n    if (bVar4 != 0x28) goto LAB_000471eb;\n    iVar9 = iVar9 + -1;\n    do {\n      if (iVar9 == 0) {\n        bVar4 = pbVar15[1];\n        if (bVar4 == 0x20) {\n          bVar4 = pbVar10[1];\n          pbVar10 = pbVar15 + 2;\n        }\n        if (bVar4 == 0x2c) {\n          pbVar2 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar2 = *pbVar2 | 0x40;\n          if (DAT_00089074 != 0) goto LAB_00047347;\n          bVar4 = *pbVar10;\n        }\n        else {\n          DAT_00089074 = FUN_00044f30();\n          if (DAT_00089074 == 0) {\n            if (*pbVar10 == 0x25) {\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }\n            if (pbVar16 != local_44) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar10 = *pbVar10 | 0x40;\nLAB_00047347:\n          bVar4 = *local_28;\n          pbVar10 = local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            pbVar10 = local_28 + 1;\n          }\n        }\n        if (bVar4 != 0x2c) {\n          if (bVar4 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }\n          break;\n        }\n        local_44 = pbVar10 + 2;\n        if (pbVar10[1] != 0x20) {\n          local_44 = pbVar10 + 1;\n        }\n        DAT_00089078 = FUN_00044f30();\n        uVar7 = DAT_00089978;\n        if (DAT_00089078 == 0) {\n          if (*local_44 == 0x25) {\n            pcVar13 = strchr((char *)local_44,0x2c);\n            if (pcVar13 != (char *)0x0) {\n              *pcVar13 = '\0';\n            }\n            uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            FUN_0002bd60(uVar7,local_44);\n            return false;\n          }\n          if (*local_44 == 0x29) {\n            uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1);\n            FUN_0002bd60(uVar7,0x29);\n            return false;\n          }\n        }\n        else {\n          bVar4 = *local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            local_28 = local_28 + 1;\n          }\n          if (bVar4 != 0x2c) {\n            DAT_00089978 = (byte *)uVar7;\n            if (bVar4 != 0x29) {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          bVar4 = local_28[1];\n          local_44 = local_28 + 1;\n          if (bVar4 == 0x20) {\n            local_44 = local_28 + 2;\n            bVar4 = local_28[2];\n          }\n          DAT_00089978 = (byte *)uVar7;\n          if (bVar4 == 0x29) break;\n        }\n        DAT_00089978 = local_44;\n        lVar18 = FUN_0002d860();\n        if (lVar18 == 2) {\n          DAT_0008907c = 1;\n          sVar14 = 1;\nLAB_0004751e:\n          if (DAT_00089078 == 0) {\n            uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);\n            FUN_0002bc80(uVar12,1 << sVar14);\n            DAT_0008907c = 0;\n          }\n        }\n        else {\n          if (-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18)) {\n            if (lVar18 == 4) {\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }\n            else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (lVar18 != 1) {\nLAB_0004760c:\n            bVar4 = *DAT_00089978;\n            *DAT_00089978 = 0;\n            uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            FUN_0002bd60(uVar12,local_44);\n            *DAT_00089978 = bVar4;\n            DAT_00089978 = (byte *)uVar7;\n            return false;\n          }\n          DAT_0008907c = 0;\n        }\n        if (DAT_00089978 == (byte *)0x0) {\n          DAT_00089978 = (byte *)uVar7;\n          return false;\n        }\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (bVar4 != 0x29) {\n          pcVar13 = "expecting `)\' after scale factor in `%s\'";\nLAB_00047255:\n          uVar7 = dcgettext(0,pcVar13,5);\n          FUN_0002bd60(uVar7,param_1);\n          return false;\n        }\n        break;\n      }\nLAB_000471eb:\n      pbVar10 = pbVar15;\n      bVar4 = pbVar10[-1];\n      pbVar15 = pbVar10 + -1;\n      if (bVar4 != 0x29) goto LAB_000471e0;\nLAB_000471f8:\n      iVar9 = iVar9 + 1;\n    } while( true );\n  }\n  local_44 = pbVar15;\n  if (pbVar16 == local_44) goto LAB_00046e80;\nLAB_00046cd4:\n  iVar6 = DAT_00089004;\n  iVar9 = DAT_00080558;\n  if (DAT_00089004 == 2) {\n    pcVar13 = "at most %d displacement operands are allowed";\nLAB_00047443:\n    uVar7 = dcgettext(0,pcVar13,5);\n    FUN_0002bd60(uVar7,2);\n    return false;\n  }\n  if (((*(byte *)((int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8 + 3) & 2) == 0) &&\n     ((*(byte *)(*DAT_00088f88 + 0x24) & 0x60) != 0)) {\n    if (DAT_00088f0c == 2) {\n      if ((DAT_00089093 != '\0') || (local_48 = 0xc0000, DAT_00088ff8 == 'w')) goto LAB_00046d4f;\n    }\n    else {\n      bVar17 = true;\n      if (DAT_00089093 == '\0') {\n        cVar5 = 'l';\n        if (DAT_00088f0c != 1) {\n          cVar5 = 'w';\n        }\n        bVar17 = DAT_00088ff8 == cVar5;\n      }\n      local_48 = 0x40000;\n      if ((DAT_00088f0c == 1) != bVar17) {\nLAB_00046d4f:\n        local_48 = 0x20000;\n      }\n    }\n  }\n  else {\n    local_48 = 0x40000;\n    if (DAT_00088f0c == 2) {\n      local_48 = 0x1c0000;\n      if (DAT_00089092 != '\0') {\n        local_48 = 0x40000;\n      }\n    }\n    else if ((DAT_00089092 != '\0') != (DAT_00088f0c == 1)) goto LAB_00046d4f;\n  }\n  (&DAT_00088fa0)[(DAT_00080558 + 0xe) * 2] = (&DAT_00088fa0)[(DAT_00080558 + 0xe) * 2] | local_48;\n  iVar1 = DAT_00089004 * 0x14;\n  (&DAT_00089038)[iVar9] = &DAT_00088f60 + iVar1;\n  uVar7 = DAT_00089978;\n  DAT_00089004 = DAT_00089004 + 1;\n  pbVar10 = DAT_000890fc + 1;\n  DAT_00089978 = pbVar16;\n  *DAT_000890fc = *local_44;\n  DAT_000890fc = pbVar10;\n  *local_44 = 0;\n  pbVar16 = (byte *)FUN_000453b0();\n  if (pbVar16 != (byte *)0x0) {\n    DAT_00089978 = pbVar16;\n  }\n  FUN_000221d0(0,&DAT_00088f60 + iVar1,1);\n  bVar4 = *DAT_00089978;\n  if (bVar4 == 0x20) {\n    bVar4 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }\n  pbVar10 = DAT_00089978;\n  if (bVar4 != 0) {\n    uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n    FUN_0002bd60(uVar12,pbVar10);\n  }\n  DAT_00089978 = (byte *)uVar7;\n  if (pbVar16 != (byte *)0x0) {\n    free(pbVar16);\n    if (((&DAT_00088f70)[iVar6 * 0x14] == '\x02') || ((&DAT_00088f70)[iVar6 * 0x14] == '\x05')) {\n      (&DAT_00088f70)[iVar6 * 0x14] = 0;\n    }\n  }\n  iVar9 = FUN_000466b0();\n  pbVar16 = DAT_000890fc + -1;\n  DAT_000890fc = DAT_000890fc + -1;\n  *local_44 = *pbVar16;\n  if (iVar9 == 0) {\n    return false;\n  }\nLAB_00046e80:\n  if (((((DAT_00089074 != 0) && (*(int *)(DAT_00089074 + 8) == DAT_000654e4)) &&\n       (*(int *)(DAT_00089074 + 4) == DAT_000654e0)) && ((DAT_00089078 == 0 && (DAT_0008907c == 0)))\n      ) && ((*(int *)(&DAT_00089080 + DAT_00089008 * 4) == 0 &&\n            (iVar9 = DAT_00080558 + 0xe, (*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f) == 0\n            )))) {\n    (&DAT_00088fa0)[iVar9 * 2] = 0;\n    *(undefined4 *)(&DAT_00088fa4 + iVar9 * 8) = 0;\n    pbVar16 = (byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2);\n    *pbVar16 = *pbVar16 | 0x80;\n    return true;\n  }\nLAB_00046ea4:\n  iVar9 = FUN_00045de0();\n  if (iVar9 == 0) {\n    return false;\n  }\n  pbVar16 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);\n  *pbVar16 = *pbVar16 | 0x10;\n  if (DAT_00089008 == 0) {\n    DAT_00089088 = xstrdup(param_1);\n  }\n  DAT_00089008 = DAT_00089008 + 1;\n  return true;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "size_t sVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "sbyte sVar14;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "bool bVar17;" primitive_type identifier ;) (declaration "longlong lVar18;" type_identifier identifier ;) (declaration "uint local_48;" type_identifier identifier ;) (declaration "byte *local_44;" type_identifier (pointer_declarator "*local_44" * identifier) ;) (declaration "byte *local_28;" type_identifier (pointer_declarator "*local_28" * identifier) ;) (expression_statement "bVar4 = *param_1;" (assignment_expression "bVar4 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "pbVar16 = param_1;" (assignment_expression "pbVar16 = param_1" identifier = identifier) ;) (if_statement "if (bVar4 == 0x20) {\n    bVar4 = param_1[1];\n    pbVar16 = param_1 + 1;\n  }" if (parenthesized_expression "(bVar4 == 0x20)" ( (binary_expression "bVar4 == 0x20" identifier == number_literal) )) (compound_statement "{\n    bVar4 = param_1[1];\n    pbVar16 = param_1 + 1;\n  }" { (expression_statement "bVar4 = param_1[1];" (assignment_expression "bVar4 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar16 = param_1 + 1;" (assignment_expression "pbVar16 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) })) (if_statement "if (bVar4 == 0x2a) {\n    if (pbVar16[1] == 0x20) {\n      pbVar16 = pbVar16 + 2;\n    }\n    else {\n      pbVar16 = pbVar16 + 1;\n    }\n    pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);\n    *pbVar10 = *pbVar10 | 2;\n  }" if (parenthesized_expression "(bVar4 == 0x2a)" ( (binary_expression "bVar4 == 0x2a" identifier == number_literal) )) (compound_statement "{\n    if (pbVar16[1] == 0x20) {\n      pbVar16 = pbVar16 + 2;\n    }\n    else {\n      pbVar16 = pbVar16 + 1;\n    }\n    pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);\n    *pbVar10 = *pbVar10 | 2;\n  }" { (if_statement "if (pbVar16[1] == 0x20) {\n      pbVar16 = pbVar16 + 2;\n    }\n    else {\n      pbVar16 = pbVar16 + 1;\n    }" if (parenthesized_expression "(pbVar16[1] == 0x20)" ( (binary_expression "pbVar16[1] == 0x20" (subscript_expression "pbVar16[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      pbVar16 = pbVar16 + 2;\n    }" { (expression_statement "pbVar16 = pbVar16 + 2;" (assignment_expression "pbVar16 = pbVar16 + 2" identifier = (binary_expression "pbVar16 + 2" identifier + number_literal)) ;) }) (else_clause "else {\n      pbVar16 = pbVar16 + 1;\n    }" else (compound_statement "{\n      pbVar16 = pbVar16 + 1;\n    }" { (expression_statement "pbVar16 = pbVar16 + 1;" (assignment_expression "pbVar16 = pbVar16 + 1" identifier = (binary_expression "pbVar16 + 1" identifier + number_literal)) ;) }))) (expression_statement "pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);" (assignment_expression "pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3)" identifier = (cast_expression "(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&DAT_00089010 + DAT_00080558 * 8 + 3)" ( (binary_expression "(int)&DAT_00089010 + DAT_00080558 * 8 + 3" (binary_expression "(int)&DAT_00089010 + DAT_00080558 * 8" (cast_expression "(int)&DAT_00089010" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&DAT_00089010" & identifier)) + (binary_expression "DAT_00080558 * 8" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "*pbVar10 = *pbVar10 | 2;" (assignment_expression "*pbVar10 = *pbVar10 | 2" (pointer_expression "*pbVar10" * identifier) = (binary_expression "*pbVar10 | 2" (pointer_expression "*pbVar10" * identifier) | number_literal)) ;) })) (expression_statement "iVar6 = FUN_00044f30();" (assignment_expression "iVar6 = FUN_00044f30()" identifier = (call_expression "FUN_00044f30()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar9 = DAT_0008900c;" (assignment_expression "iVar9 = DAT_0008900c" identifier = identifier) ;) (if_statement "if (iVar6 == 0) {\n    bVar4 = *pbVar16;\n    if (bVar4 == 0x25) {\n      pcVar13 = "bad register name `%s\'";\nLAB_00046f4c:\n      uVar7 = dcgettext(0,pcVar13,5);\n      FUN_0002bd60(uVar7,pbVar16);\n      return false;\n    }\n    if (bVar4 == 0x24) {\n      if ((*(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3) & 2) != 0) {\n        uVar7 = dcgettext(0,"immediate operand illegal with absolute jump",5);\n        FUN_0002bd60(uVar7);\n        return false;\n      }\n      if (DAT_0008900c != 2) {\n        iVar6 = DAT_0008900c * 5;\n        DAT_0008900c = DAT_0008900c + 1;\n        (&DAT_00089038)[DAT_00080558] = &DAT_00088f20 + iVar6;\n        uVar7 = DAT_00089978;\n        local_44 = pbVar16 + 2;\n        if (pbVar16[1] != 0x20) {\n          local_44 = pbVar16 + 1;\n        }\n        DAT_00089978 = local_44;\n        pbVar16 = (byte *)FUN_000453b0();\n        if (pbVar16 != (byte *)0x0) {\n          DAT_00089978 = pbVar16;\n        }\n        FUN_000221d0(0,&DAT_00088f20 + iVar6,1);\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n          DAT_00089978 = DAT_00089978 + 1;\n        }\n        if (bVar4 == 0x7b) {\n          DAT_00089978 = (byte *)FUN_00045070();\n          if (DAT_00089978 == (byte *)0x0) {\n            return false;\n          }\n          bVar4 = *DAT_00089978;\n        }\n        pbVar10 = DAT_00089978;\n        if (bVar4 != 0) {\n          uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n          FUN_0002bd60(uVar12,pbVar10);\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (pbVar16 != (byte *)0x0) {\n          free(pbVar16);\n          if (((&DAT_00088f30)[iVar9 * 0x14] == '\x02') || ((&DAT_00088f30)[iVar9 * 0x14] == '\x05')\n             ) {\n            (&DAT_00088f30)[iVar9 * 0x14] = 0;\n          }\n        }\n        iVar9 = FUN_00041f60(0xffffffff,0xffffffff,local_44);\n        return iVar9 != 0;\n      }\n      pcVar13 = "at most %d immediate operands are allowed";\n      goto LAB_00047443;\n    }\n    if (*param_1 == 0x7b) {\n      iVar9 = FUN_000464f0();\n      if (iVar9 != 0) {\n        return true;\n      }\n      bVar4 = *pbVar16;\n    }\n    iVar9 = DAT_00080558;\n    if ((((&DAT_00089120)[bVar4] == '\0') && (bVar4 != 0x28 && bVar4 != 0x22)) &&\n       ((&DAT_00089220)[bVar4] == '\0')) {\n      uVar7 = FUN_00046660();\n      uVar12 = dcgettext(0,"invalid char %s beginning operand %d `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7,iVar9 + 1,pbVar16);\n      return false;\n    }\n    goto LAB_00046c60;\n  }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n    bVar4 = *pbVar16;\n    if (bVar4 == 0x25) {\n      pcVar13 = "bad register name `%s\'";\nLAB_00046f4c:\n      uVar7 = dcgettext(0,pcVar13,5);\n      FUN_0002bd60(uVar7,pbVar16);\n      return false;\n    }\n    if (bVar4 == 0x24) {\n      if ((*(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3) & 2) != 0) {\n        uVar7 = dcgettext(0,"immediate operand illegal with absolute jump",5);\n        FUN_0002bd60(uVar7);\n        return false;\n      }\n      if (DAT_0008900c != 2) {\n        iVar6 = DAT_0008900c * 5;\n        DAT_0008900c = DAT_0008900c + 1;\n        (&DAT_00089038)[DAT_00080558] = &DAT_00088f20 + iVar6;\n        uVar7 = DAT_00089978;\n        local_44 = pbVar16 + 2;\n        if (pbVar16[1] != 0x20) {\n          local_44 = pbVar16 + 1;\n        }\n        DAT_00089978 = local_44;\n        pbVar16 = (byte *)FUN_000453b0();\n        if (pbVar16 != (byte *)0x0) {\n          DAT_00089978 = pbVar16;\n        }\n        FUN_000221d0(0,&DAT_00088f20 + iVar6,1);\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n          DAT_00089978 = DAT_00089978 + 1;\n        }\n        if (bVar4 == 0x7b) {\n          DAT_00089978 = (byte *)FUN_00045070();\n          if (DAT_00089978 == (byte *)0x0) {\n            return false;\n          }\n          bVar4 = *DAT_00089978;\n        }\n        pbVar10 = DAT_00089978;\n        if (bVar4 != 0) {\n          uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n          FUN_0002bd60(uVar12,pbVar10);\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (pbVar16 != (byte *)0x0) {\n          free(pbVar16);\n          if (((&DAT_00088f30)[iVar9 * 0x14] == '\x02') || ((&DAT_00088f30)[iVar9 * 0x14] == '\x05')\n             ) {\n            (&DAT_00088f30)[iVar9 * 0x14] = 0;\n          }\n        }\n        iVar9 = FUN_00041f60(0xffffffff,0xffffffff,local_44);\n        return iVar9 != 0;\n      }\n      pcVar13 = "at most %d immediate operands are allowed";\n      goto LAB_00047443;\n    }\n    if (*param_1 == 0x7b) {\n      iVar9 = FUN_000464f0();\n      if (iVar9 != 0) {\n        return true;\n      }\n      bVar4 = *pbVar16;\n    }\n    iVar9 = DAT_00080558;\n    if ((((&DAT_00089120)[bVar4] == '\0') && (bVar4 != 0x28 && bVar4 != 0x22)) &&\n       ((&DAT_00089220)[bVar4] == '\0')) {\n      uVar7 = FUN_00046660();\n      uVar12 = dcgettext(0,"invalid char %s beginning operand %d `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7,iVar9 + 1,pbVar16);\n      return false;\n    }\n    goto LAB_00046c60;\n  }" { (expression_statement "bVar4 = *pbVar16;" (assignment_expression "bVar4 = *pbVar16" identifier = (pointer_expression "*pbVar16" * identifier)) ;) (if_statement "if (bVar4 == 0x25) {\n      pcVar13 = "bad register name `%s\'";\nLAB_00046f4c:\n      uVar7 = dcgettext(0,pcVar13,5);\n      FUN_0002bd60(uVar7,pbVar16);\n      return false;\n    }" if (parenthesized_expression "(bVar4 == 0x25)" ( (binary_expression "bVar4 == 0x25" identifier == number_literal) )) (compound_statement "{\n      pcVar13 = "bad register name `%s\'";\nLAB_00046f4c:\n      uVar7 = dcgettext(0,pcVar13,5);\n      FUN_0002bd60(uVar7,pbVar16);\n      return false;\n    }" { (expression_statement "pcVar13 = "bad register name `%s\'";" (assignment_expression "pcVar13 = "bad register name `%s\'"" identifier = (string_literal ""bad register name `%s\'"" " string_content escape_sequence ")) ;) (labeled_statement "LAB_00046f4c:\n      uVar7 = dcgettext(0,pcVar13,5);" statement_identifier : (expression_statement "uVar7 = dcgettext(0,pcVar13,5);" (assignment_expression "uVar7 = dcgettext(0,pcVar13,5)" identifier = (call_expression "dcgettext(0,pcVar13,5)" identifier (argument_list "(0,pcVar13,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "FUN_0002bd60(uVar7,pbVar16);" (call_expression "FUN_0002bd60(uVar7,pbVar16)" identifier (argument_list "(uVar7,pbVar16)" ( identifier , identifier ))) ;) (return_statement "return false;" return false ;) })) (if_statement "if (bVar4 == 0x24) {\n      if ((*(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3) & 2) != 0) {\n        uVar7 = dcgettext(0,"immediate operand illegal with absolute jump",5);\n        FUN_0002bd60(uVar7);\n        return false;\n      }\n      if (DAT_0008900c != 2) {\n        iVar6 = DAT_0008900c * 5;\n        DAT_0008900c = DAT_0008900c + 1;\n        (&DAT_00089038)[DAT_00080558] = &DAT_00088f20 + iVar6;\n        uVar7 = DAT_00089978;\n        local_44 = pbVar16 + 2;\n        if (pbVar16[1] != 0x20) {\n          local_44 = pbVar16 + 1;\n        }\n        DAT_00089978 = local_44;\n        pbVar16 = (byte *)FUN_000453b0();\n        if (pbVar16 != (byte *)0x0) {\n          DAT_00089978 = pbVar16;\n        }\n        FUN_000221d0(0,&DAT_00088f20 + iVar6,1);\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n          DAT_00089978 = DAT_00089978 + 1;\n        }\n        if (bVar4 == 0x7b) {\n          DAT_00089978 = (byte *)FUN_00045070();\n          if (DAT_00089978 == (byte *)0x0) {\n            return false;\n          }\n          bVar4 = *DAT_00089978;\n        }\n        pbVar10 = DAT_00089978;\n        if (bVar4 != 0) {\n          uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n          FUN_0002bd60(uVar12,pbVar10);\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (pbVar16 != (byte *)0x0) {\n          free(pbVar16);\n          if (((&DAT_00088f30)[iVar9 * 0x14] == '\x02') || ((&DAT_00088f30)[iVar9 * 0x14] == '\x05')\n             ) {\n            (&DAT_00088f30)[iVar9 * 0x14] = 0;\n          }\n        }\n        iVar9 = FUN_00041f60(0xffffffff,0xffffffff,local_44);\n        return iVar9 != 0;\n      }\n      pcVar13 = "at most %d immediate operands are allowed";\n      goto LAB_00047443;\n    }" if (parenthesized_expression "(bVar4 == 0x24)" ( (binary_expression "bVar4 == 0x24" identifier == number_literal) )) (compound_statement "{\n      if ((*(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3) & 2) != 0) {\n        uVar7 = dcgettext(0,"immediate operand illegal with absolute jump",5);\n        FUN_0002bd60(uVar7);\n        return false;\n      }\n      if (DAT_0008900c != 2) {\n        iVar6 = DAT_0008900c * 5;\n        DAT_0008900c = DAT_0008900c + 1;\n        (&DAT_00089038)[DAT_00080558] = &DAT_00088f20 + iVar6;\n        uVar7 = DAT_00089978;\n        local_44 = pbVar16 + 2;\n        if (pbVar16[1] != 0x20) {\n          local_44 = pbVar16 + 1;\n        }\n        DAT_00089978 = local_44;\n        pbVar16 = (byte *)FUN_000453b0();\n        if (pbVar16 != (byte *)0x0) {\n          DAT_00089978 = pbVar16;\n        }\n        FUN_000221d0(0,&DAT_00088f20 + iVar6,1);\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n          DAT_00089978 = DAT_00089978 + 1;\n        }\n        if (bVar4 == 0x7b) {\n          DAT_00089978 = (byte *)FUN_00045070();\n          if (DAT_00089978 == (byte *)0x0) {\n            return false;\n          }\n          bVar4 = *DAT_00089978;\n        }\n        pbVar10 = DAT_00089978;\n        if (bVar4 != 0) {\n          uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n          FUN_0002bd60(uVar12,pbVar10);\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (pbVar16 != (byte *)0x0) {\n          free(pbVar16);\n          if (((&DAT_00088f30)[iVar9 * 0x14] == '\x02') || ((&DAT_00088f30)[iVar9 * 0x14] == '\x05')\n             ) {\n            (&DAT_00088f30)[iVar9 * 0x14] = 0;\n          }\n        }\n        iVar9 = FUN_00041f60(0xffffffff,0xffffffff,local_44);\n        return iVar9 != 0;\n      }\n      pcVar13 = "at most %d immediate operands are allowed";\n      goto LAB_00047443;\n    }" { (if_statement "if ((*(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3) & 2) != 0) {\n        uVar7 = dcgettext(0,"immediate operand illegal with absolute jump",5);\n        FUN_0002bd60(uVar7);\n        return false;\n      }" if (parenthesized_expression "((*(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3) & 2) != 0)" ( (binary_expression "(*(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3) & 2) != 0" (parenthesized_expression "(*(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3) & 2)" ( (binary_expression "*(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3) & 2" (pointer_expression "*(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3)" * (cast_expression "(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&DAT_00089010 + DAT_00080558 * 8 + 3)" ( (binary_expression "(int)&DAT_00089010 + DAT_00080558 * 8 + 3" (binary_expression "(int)&DAT_00089010 + DAT_00080558 * 8" (cast_expression "(int)&DAT_00089010" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&DAT_00089010" & identifier)) + (binary_expression "DAT_00080558 * 8" identifier * number_literal)) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        uVar7 = dcgettext(0,"immediate operand illegal with absolute jump",5);\n        FUN_0002bd60(uVar7);\n        return false;\n      }" { (expression_statement "uVar7 = dcgettext(0,"immediate operand illegal with absolute jump",5);" (assignment_expression "uVar7 = dcgettext(0,"immediate operand illegal with absolute jump",5)" identifier = (call_expression "dcgettext(0,"immediate operand illegal with absolute jump",5)" identifier (argument_list "(0,"immediate operand illegal with absolute jump",5)" ( number_literal , (string_literal ""immediate operand illegal with absolute jump"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002bd60(uVar7);" (call_expression "FUN_0002bd60(uVar7)" identifier (argument_list "(uVar7)" ( identifier ))) ;) (return_statement "return false;" return false ;) })) (if_statement "if (DAT_0008900c != 2) {\n        iVar6 = DAT_0008900c * 5;\n        DAT_0008900c = DAT_0008900c + 1;\n        (&DAT_00089038)[DAT_00080558] = &DAT_00088f20 + iVar6;\n        uVar7 = DAT_00089978;\n        local_44 = pbVar16 + 2;\n        if (pbVar16[1] != 0x20) {\n          local_44 = pbVar16 + 1;\n        }\n        DAT_00089978 = local_44;\n        pbVar16 = (byte *)FUN_000453b0();\n        if (pbVar16 != (byte *)0x0) {\n          DAT_00089978 = pbVar16;\n        }\n        FUN_000221d0(0,&DAT_00088f20 + iVar6,1);\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n          DAT_00089978 = DAT_00089978 + 1;\n        }\n        if (bVar4 == 0x7b) {\n          DAT_00089978 = (byte *)FUN_00045070();\n          if (DAT_00089978 == (byte *)0x0) {\n            return false;\n          }\n          bVar4 = *DAT_00089978;\n        }\n        pbVar10 = DAT_00089978;\n        if (bVar4 != 0) {\n          uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n          FUN_0002bd60(uVar12,pbVar10);\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (pbVar16 != (byte *)0x0) {\n          free(pbVar16);\n          if (((&DAT_00088f30)[iVar9 * 0x14] == '\x02') || ((&DAT_00088f30)[iVar9 * 0x14] == '\x05')\n             ) {\n            (&DAT_00088f30)[iVar9 * 0x14] = 0;\n          }\n        }\n        iVar9 = FUN_00041f60(0xffffffff,0xffffffff,local_44);\n        return iVar9 != 0;\n      }" if (parenthesized_expression "(DAT_0008900c != 2)" ( (binary_expression "DAT_0008900c != 2" identifier != number_literal) )) (compound_statement "{\n        iVar6 = DAT_0008900c * 5;\n        DAT_0008900c = DAT_0008900c + 1;\n        (&DAT_00089038)[DAT_00080558] = &DAT_00088f20 + iVar6;\n        uVar7 = DAT_00089978;\n        local_44 = pbVar16 + 2;\n        if (pbVar16[1] != 0x20) {\n          local_44 = pbVar16 + 1;\n        }\n        DAT_00089978 = local_44;\n        pbVar16 = (byte *)FUN_000453b0();\n        if (pbVar16 != (byte *)0x0) {\n          DAT_00089978 = pbVar16;\n        }\n        FUN_000221d0(0,&DAT_00088f20 + iVar6,1);\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n          DAT_00089978 = DAT_00089978 + 1;\n        }\n        if (bVar4 == 0x7b) {\n          DAT_00089978 = (byte *)FUN_00045070();\n          if (DAT_00089978 == (byte *)0x0) {\n            return false;\n          }\n          bVar4 = *DAT_00089978;\n        }\n        pbVar10 = DAT_00089978;\n        if (bVar4 != 0) {\n          uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n          FUN_0002bd60(uVar12,pbVar10);\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (pbVar16 != (byte *)0x0) {\n          free(pbVar16);\n          if (((&DAT_00088f30)[iVar9 * 0x14] == '\x02') || ((&DAT_00088f30)[iVar9 * 0x14] == '\x05')\n             ) {\n            (&DAT_00088f30)[iVar9 * 0x14] = 0;\n          }\n        }\n        iVar9 = FUN_00041f60(0xffffffff,0xffffffff,local_44);\n        return iVar9 != 0;\n      }" { (expression_statement "iVar6 = DAT_0008900c * 5;" (assignment_expression "iVar6 = DAT_0008900c * 5" identifier = (binary_expression "DAT_0008900c * 5" identifier * number_literal)) ;) (expression_statement "DAT_0008900c = DAT_0008900c + 1;" (assignment_expression "DAT_0008900c = DAT_0008900c + 1" identifier = (binary_expression "DAT_0008900c + 1" identifier + number_literal)) ;) (expression_statement "(&DAT_00089038)[DAT_00080558] = &DAT_00088f20 + iVar6;" (assignment_expression "(&DAT_00089038)[DAT_00080558] = &DAT_00088f20 + iVar6" (subscript_expression "(&DAT_00089038)[DAT_00080558]" (parenthesized_expression "(&DAT_00089038)" ( (pointer_expression "&DAT_00089038" & identifier) )) [ identifier ]) = (binary_expression "&DAT_00088f20 + iVar6" (pointer_expression "&DAT_00088f20" & identifier) + identifier)) ;) (expression_statement "uVar7 = DAT_00089978;" (assignment_expression "uVar7 = DAT_00089978" identifier = identifier) ;) (expression_statement "local_44 = pbVar16 + 2;" (assignment_expression "local_44 = pbVar16 + 2" identifier = (binary_expression "pbVar16 + 2" identifier + number_literal)) ;) (if_statement "if (pbVar16[1] != 0x20) {\n          local_44 = pbVar16 + 1;\n        }" if (parenthesized_expression "(pbVar16[1] != 0x20)" ( (binary_expression "pbVar16[1] != 0x20" (subscript_expression "pbVar16[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n          local_44 = pbVar16 + 1;\n        }" { (expression_statement "local_44 = pbVar16 + 1;" (assignment_expression "local_44 = pbVar16 + 1" identifier = (binary_expression "pbVar16 + 1" identifier + number_literal)) ;) })) (expression_statement "DAT_00089978 = local_44;" (assignment_expression "DAT_00089978 = local_44" identifier = identifier) ;) (expression_statement "pbVar16 = (byte *)FUN_000453b0();" (assignment_expression "pbVar16 = (byte *)FUN_000453b0()" identifier = (cast_expression "(byte *)FUN_000453b0()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000453b0()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (pbVar16 != (byte *)0x0) {\n          DAT_00089978 = pbVar16;\n        }" if (parenthesized_expression "(pbVar16 != (byte *)0x0)" ( (binary_expression "pbVar16 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          DAT_00089978 = pbVar16;\n        }" { (expression_statement "DAT_00089978 = pbVar16;" (assignment_expression "DAT_00089978 = pbVar16" identifier = identifier) ;) })) (expression_statement "FUN_000221d0(0,&DAT_00088f20 + iVar6,1);" (call_expression "FUN_000221d0(0,&DAT_00088f20 + iVar6,1)" identifier (argument_list "(0,&DAT_00088f20 + iVar6,1)" ( number_literal , (binary_expression "&DAT_00088f20 + iVar6" (pointer_expression "&DAT_00088f20" & identifier) + identifier) , number_literal ))) ;) (expression_statement "bVar4 = *DAT_00089978;" (assignment_expression "bVar4 = *DAT_00089978" identifier = (pointer_expression "*DAT_00089978" * identifier)) ;) (if_statement "if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n          DAT_00089978 = DAT_00089978 + 1;\n        }" if (parenthesized_expression "(bVar4 == 0x20)" ( (binary_expression "bVar4 == 0x20" identifier == number_literal) )) (compound_statement "{\n          bVar4 = DAT_00089978[1];\n          DAT_00089978 = DAT_00089978 + 1;\n        }" { (expression_statement "bVar4 = DAT_00089978[1];" (assignment_expression "bVar4 = DAT_00089978[1]" identifier = (subscript_expression "DAT_00089978[1]" identifier [ number_literal ])) ;) (expression_statement "DAT_00089978 = DAT_00089978 + 1;" (assignment_expression "DAT_00089978 = DAT_00089978 + 1" identifier = (binary_expression "DAT_00089978 + 1" identifier + number_literal)) ;) })) (if_statement "if (bVar4 == 0x7b) {\n          DAT_00089978 = (byte *)FUN_00045070();\n          if (DAT_00089978 == (byte *)0x0) {\n            return false;\n          }\n          bVar4 = *DAT_00089978;\n        }" if (parenthesized_expression "(bVar4 == 0x7b)" ( (binary_expression "bVar4 == 0x7b" identifier == number_literal) )) (compound_statement "{\n          DAT_00089978 = (byte *)FUN_00045070();\n          if (DAT_00089978 == (byte *)0x0) {\n            return false;\n          }\n          bVar4 = *DAT_00089978;\n        }" { (expression_statement "DAT_00089978 = (byte *)FUN_00045070();" (assignment_expression "DAT_00089978 = (byte *)FUN_00045070()" identifier = (cast_expression "(byte *)FUN_00045070()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00045070()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (DAT_00089978 == (byte *)0x0) {\n            return false;\n          }" if (parenthesized_expression "(DAT_00089978 == (byte *)0x0)" ( (binary_expression "DAT_00089978 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            return false;\n          }" { (return_statement "return false;" return false ;) })) (expression_statement "bVar4 = *DAT_00089978;" (assignment_expression "bVar4 = *DAT_00089978" identifier = (pointer_expression "*DAT_00089978" * identifier)) ;) })) (expression_statement "pbVar10 = DAT_00089978;" (assignment_expression "pbVar10 = DAT_00089978" identifier = identifier) ;) (if_statement "if (bVar4 != 0) {\n          uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n          FUN_0002bd60(uVar12,pbVar10);\n        }" if (parenthesized_expression "(bVar4 != 0)" ( (binary_expression "bVar4 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n          FUN_0002bd60(uVar12,pbVar10);\n        }" { (expression_statement "uVar12 = dcgettext(0,"junk `%s\' after expression",5);" (assignment_expression "uVar12 = dcgettext(0,"junk `%s\' after expression",5)" identifier = (call_expression "dcgettext(0,"junk `%s\' after expression",5)" identifier (argument_list "(0,"junk `%s\' after expression",5)" ( number_literal , (string_literal ""junk `%s\' after expression"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "FUN_0002bd60(uVar12,pbVar10);" (call_expression "FUN_0002bd60(uVar12,pbVar10)" identifier (argument_list "(uVar12,pbVar10)" ( identifier , identifier ))) ;) })) (expression_statement "DAT_00089978 = (byte *)uVar7;" (assignment_expression "DAT_00089978 = (byte *)uVar7" identifier = (cast_expression "(byte *)uVar7" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (pbVar16 != (byte *)0x0) {\n          free(pbVar16);\n          if (((&DAT_00088f30)[iVar9 * 0x14] == '\x02') || ((&DAT_00088f30)[iVar9 * 0x14] == '\x05')\n             ) {\n            (&DAT_00088f30)[iVar9 * 0x14] = 0;\n          }\n        }" if (parenthesized_expression "(pbVar16 != (byte *)0x0)" ( (binary_expression "pbVar16 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          free(pbVar16);\n          if (((&DAT_00088f30)[iVar9 * 0x14] == '\x02') || ((&DAT_00088f30)[iVar9 * 0x14] == '\x05')\n             ) {\n            (&DAT_00088f30)[iVar9 * 0x14] = 0;\n          }\n        }" { (expression_statement "free(pbVar16);" (call_expression "free(pbVar16)" identifier (argument_list "(pbVar16)" ( identifier ))) ;) (if_statement "if (((&DAT_00088f30)[iVar9 * 0x14] == '\x02') || ((&DAT_00088f30)[iVar9 * 0x14] == '\x05')\n             ) {\n            (&DAT_00088f30)[iVar9 * 0x14] = 0;\n          }" if (parenthesized_expression "(((&DAT_00088f30)[iVar9 * 0x14] == '\x02') || ((&DAT_00088f30)[iVar9 * 0x14] == '\x05')\n             )" ( (binary_expression "((&DAT_00088f30)[iVar9 * 0x14] == '\x02') || ((&DAT_00088f30)[iVar9 * 0x14] == '\x05')" (parenthesized_expression "((&DAT_00088f30)[iVar9 * 0x14] == '\x02')" ( (binary_expression "(&DAT_00088f30)[iVar9 * 0x14] == '\x02'" (subscript_expression "(&DAT_00088f30)[iVar9 * 0x14]" (parenthesized_expression "(&DAT_00088f30)" ( (pointer_expression "&DAT_00088f30" & identifier) )) [ (binary_expression "iVar9 * 0x14" identifier * number_literal) ]) == (char_literal "'\x02'" ' escape_sequence ')) )) || (parenthesized_expression "((&DAT_00088f30)[iVar9 * 0x14] == '\x05')" ( (binary_expression "(&DAT_00088f30)[iVar9 * 0x14] == '\x05'" (subscript_expression "(&DAT_00088f30)[iVar9 * 0x14]" (parenthesized_expression "(&DAT_00088f30)" ( (pointer_expression "&DAT_00088f30" & identifier) )) [ (binary_expression "iVar9 * 0x14" identifier * number_literal) ]) == (char_literal "'\x05'" ' escape_sequence ')) ))) )) (compound_statement "{\n            (&DAT_00088f30)[iVar9 * 0x14] = 0;\n          }" { (expression_statement "(&DAT_00088f30)[iVar9 * 0x14] = 0;" (assignment_expression "(&DAT_00088f30)[iVar9 * 0x14] = 0" (subscript_expression "(&DAT_00088f30)[iVar9 * 0x14]" (parenthesized_expression "(&DAT_00088f30)" ( (pointer_expression "&DAT_00088f30" & identifier) )) [ (binary_expression "iVar9 * 0x14" identifier * number_literal) ]) = number_literal) ;) })) })) (expression_statement "iVar9 = FUN_00041f60(0xffffffff,0xffffffff,local_44);" (assignment_expression "iVar9 = FUN_00041f60(0xffffffff,0xffffffff,local_44)" identifier = (call_expression "FUN_00041f60(0xffffffff,0xffffffff,local_44)" identifier (argument_list "(0xffffffff,0xffffffff,local_44)" ( number_literal , number_literal , identifier )))) ;) (return_statement "return iVar9 != 0;" return (binary_expression "iVar9 != 0" identifier != number_literal) ;) })) (expression_statement "pcVar13 = "at most %d immediate operands are allowed";" (assignment_expression "pcVar13 = "at most %d immediate operands are allowed"" identifier = (string_literal ""at most %d immediate operands are allowed"" " string_content ")) ;) (goto_statement "goto LAB_00047443;" goto statement_identifier ;) })) (if_statement "if (*param_1 == 0x7b) {\n      iVar9 = FUN_000464f0();\n      if (iVar9 != 0) {\n        return true;\n      }\n      bVar4 = *pbVar16;\n    }" if (parenthesized_expression "(*param_1 == 0x7b)" ( (binary_expression "*param_1 == 0x7b" (pointer_expression "*param_1" * identifier) == number_literal) )) (compound_statement "{\n      iVar9 = FUN_000464f0();\n      if (iVar9 != 0) {\n        return true;\n      }\n      bVar4 = *pbVar16;\n    }" { (expression_statement "iVar9 = FUN_000464f0();" (assignment_expression "iVar9 = FUN_000464f0()" identifier = (call_expression "FUN_000464f0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar9 != 0) {\n        return true;\n      }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n        return true;\n      }" { (return_statement "return true;" return true ;) })) (expression_statement "bVar4 = *pbVar16;" (assignment_expression "bVar4 = *pbVar16" identifier = (pointer_expression "*pbVar16" * identifier)) ;) })) (expression_statement "iVar9 = DAT_00080558;" (assignment_expression "iVar9 = DAT_00080558" identifier = identifier) ;) (if_statement "if ((((&DAT_00089120)[bVar4] == '\0') && (bVar4 != 0x28 && bVar4 != 0x22)) &&\n       ((&DAT_00089220)[bVar4] == '\0')) {\n      uVar7 = FUN_00046660();\n      uVar12 = dcgettext(0,"invalid char %s beginning operand %d `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7,iVar9 + 1,pbVar16);\n      return false;\n    }" if (parenthesized_expression "((((&DAT_00089120)[bVar4] == '\0') && (bVar4 != 0x28 && bVar4 != 0x22)) &&\n       ((&DAT_00089220)[bVar4] == '\0'))" ( (binary_expression "(((&DAT_00089120)[bVar4] == '\0') && (bVar4 != 0x28 && bVar4 != 0x22)) &&\n       ((&DAT_00089220)[bVar4] == '\0')" (parenthesized_expression "(((&DAT_00089120)[bVar4] == '\0') && (bVar4 != 0x28 && bVar4 != 0x22))" ( (binary_expression "((&DAT_00089120)[bVar4] == '\0') && (bVar4 != 0x28 && bVar4 != 0x22)" (parenthesized_expression "((&DAT_00089120)[bVar4] == '\0')" ( (binary_expression "(&DAT_00089120)[bVar4] == '\0'" (subscript_expression "(&DAT_00089120)[bVar4]" (parenthesized_expression "(&DAT_00089120)" ( (pointer_expression "&DAT_00089120" & identifier) )) [ identifier ]) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(bVar4 != 0x28 && bVar4 != 0x22)" ( (binary_expression "bVar4 != 0x28 && bVar4 != 0x22" (binary_expression "bVar4 != 0x28" identifier != number_literal) && (binary_expression "bVar4 != 0x22" identifier != number_literal)) ))) )) && (parenthesized_expression "((&DAT_00089220)[bVar4] == '\0')" ( (binary_expression "(&DAT_00089220)[bVar4] == '\0'" (subscript_expression "(&DAT_00089220)[bVar4]" (parenthesized_expression "(&DAT_00089220)" ( (pointer_expression "&DAT_00089220" & identifier) )) [ identifier ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      uVar7 = FUN_00046660();\n      uVar12 = dcgettext(0,"invalid char %s beginning operand %d `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7,iVar9 + 1,pbVar16);\n      return false;\n    }" { (expression_statement "uVar7 = FUN_00046660();" (assignment_expression "uVar7 = FUN_00046660()" identifier = (call_expression "FUN_00046660()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar12 = dcgettext(0,"invalid char %s beginning operand %d `%s\'",5);" (assignment_expression "uVar12 = dcgettext(0,"invalid char %s beginning operand %d `%s\'",5)" identifier = (call_expression "dcgettext(0,"invalid char %s beginning operand %d `%s\'",5)" identifier (argument_list "(0,"invalid char %s beginning operand %d `%s\'",5)" ( number_literal , (string_literal ""invalid char %s beginning operand %d `%s\'"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_0002bd60(uVar12,uVar7,iVar9 + 1,pbVar16);" (call_expression "FUN_0002bd60(uVar12,uVar7,iVar9 + 1,pbVar16)" identifier (argument_list "(uVar12,uVar7,iVar9 + 1,pbVar16)" ( identifier , identifier , (binary_expression "iVar9 + 1" identifier + number_literal) , identifier ))) ;) (return_statement "return false;" return false ;) })) (goto_statement "goto LAB_00046c60;" goto statement_identifier ;) })) (expression_statement "bVar4 = *local_28;" (assignment_expression "bVar4 = *local_28" identifier = (pointer_expression "*local_28" * identifier)) ;) (expression_statement "pbVar10 = local_28;" (assignment_expression "pbVar10 = local_28" identifier = identifier) ;) (if_statement "if (bVar4 == 0x20) {\n    bVar4 = local_28[1];\n    pbVar10 = local_28 + 1;\n  }" if (parenthesized_expression "(bVar4 == 0x20)" ( (binary_expression "bVar4 == 0x20" identifier == number_literal) )) (compound_statement "{\n    bVar4 = local_28[1];\n    pbVar10 = local_28 + 1;\n  }" { (expression_statement "bVar4 = local_28[1];" (assignment_expression "bVar4 = local_28[1]" identifier = (subscript_expression "local_28[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar10 = local_28 + 1;" (assignment_expression "pbVar10 = local_28 + 1" identifier = (binary_expression "local_28 + 1" identifier + number_literal)) ;) })) (if_statement "if (bVar4 != 0x3a) {\n    if (bVar4 == 0x7b) {\n      pbVar10 = (byte *)FUN_00045070();\n      if (pbVar10 == (byte *)0x0) {\n        return false;\n      }\n      bVar4 = *pbVar10;\n    }\n    iVar9 = DAT_00080558;\n    if (bVar4 == 0) {\n      uVar3 = *(uint *)(iVar6 + 8);\n      iVar1 = DAT_00080558 + 0xe;\n      (&DAT_00088fa0)[iVar1 * 2] = (&DAT_00088fa0)[iVar1 * 2] | *(uint *)(iVar6 + 4) & 0xffbfffff;\n      *(uint *)(&DAT_00088fa4 + iVar1 * 8) = *(uint *)(&DAT_00088fa4 + iVar1 * 8) | uVar3;\n      (&DAT_00088fa4)[iVar1 * 8] = (&DAT_00088fa4)[iVar1 * 8] & 0xbf;\n      DAT_00089000 = DAT_00089000 + 1;\n      (&DAT_00089038)[iVar9] = iVar6;\n      return true;\n    }\nLAB_00046ad0:\n    uVar7 = dcgettext(0,"junk `%s\' after register",5);\n    FUN_0002bd60(uVar7,pbVar10);\n    return false;\n  }" if (parenthesized_expression "(bVar4 != 0x3a)" ( (binary_expression "bVar4 != 0x3a" identifier != number_literal) )) (compound_statement "{\n    if (bVar4 == 0x7b) {\n      pbVar10 = (byte *)FUN_00045070();\n      if (pbVar10 == (byte *)0x0) {\n        return false;\n      }\n      bVar4 = *pbVar10;\n    }\n    iVar9 = DAT_00080558;\n    if (bVar4 == 0) {\n      uVar3 = *(uint *)(iVar6 + 8);\n      iVar1 = DAT_00080558 + 0xe;\n      (&DAT_00088fa0)[iVar1 * 2] = (&DAT_00088fa0)[iVar1 * 2] | *(uint *)(iVar6 + 4) & 0xffbfffff;\n      *(uint *)(&DAT_00088fa4 + iVar1 * 8) = *(uint *)(&DAT_00088fa4 + iVar1 * 8) | uVar3;\n      (&DAT_00088fa4)[iVar1 * 8] = (&DAT_00088fa4)[iVar1 * 8] & 0xbf;\n      DAT_00089000 = DAT_00089000 + 1;\n      (&DAT_00089038)[iVar9] = iVar6;\n      return true;\n    }\nLAB_00046ad0:\n    uVar7 = dcgettext(0,"junk `%s\' after register",5);\n    FUN_0002bd60(uVar7,pbVar10);\n    return false;\n  }" { (if_statement "if (bVar4 == 0x7b) {\n      pbVar10 = (byte *)FUN_00045070();\n      if (pbVar10 == (byte *)0x0) {\n        return false;\n      }\n      bVar4 = *pbVar10;\n    }" if (parenthesized_expression "(bVar4 == 0x7b)" ( (binary_expression "bVar4 == 0x7b" identifier == number_literal) )) (compound_statement "{\n      pbVar10 = (byte *)FUN_00045070();\n      if (pbVar10 == (byte *)0x0) {\n        return false;\n      }\n      bVar4 = *pbVar10;\n    }" { (expression_statement "pbVar10 = (byte *)FUN_00045070();" (assignment_expression "pbVar10 = (byte *)FUN_00045070()" identifier = (cast_expression "(byte *)FUN_00045070()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00045070()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (pbVar10 == (byte *)0x0) {\n        return false;\n      }" if (parenthesized_expression "(pbVar10 == (byte *)0x0)" ( (binary_expression "pbVar10 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return false;\n      }" { (return_statement "return false;" return false ;) })) (expression_statement "bVar4 = *pbVar10;" (assignment_expression "bVar4 = *pbVar10" identifier = (pointer_expression "*pbVar10" * identifier)) ;) })) (expression_statement "iVar9 = DAT_00080558;" (assignment_expression "iVar9 = DAT_00080558" identifier = identifier) ;) (if_statement "if (bVar4 == 0) {\n      uVar3 = *(uint *)(iVar6 + 8);\n      iVar1 = DAT_00080558 + 0xe;\n      (&DAT_00088fa0)[iVar1 * 2] = (&DAT_00088fa0)[iVar1 * 2] | *(uint *)(iVar6 + 4) & 0xffbfffff;\n      *(uint *)(&DAT_00088fa4 + iVar1 * 8) = *(uint *)(&DAT_00088fa4 + iVar1 * 8) | uVar3;\n      (&DAT_00088fa4)[iVar1 * 8] = (&DAT_00088fa4)[iVar1 * 8] & 0xbf;\n      DAT_00089000 = DAT_00089000 + 1;\n      (&DAT_00089038)[iVar9] = iVar6;\n      return true;\n    }" if (parenthesized_expression "(bVar4 == 0)" ( (binary_expression "bVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar3 = *(uint *)(iVar6 + 8);\n      iVar1 = DAT_00080558 + 0xe;\n      (&DAT_00088fa0)[iVar1 * 2] = (&DAT_00088fa0)[iVar1 * 2] | *(uint *)(iVar6 + 4) & 0xffbfffff;\n      *(uint *)(&DAT_00088fa4 + iVar1 * 8) = *(uint *)(&DAT_00088fa4 + iVar1 * 8) | uVar3;\n      (&DAT_00088fa4)[iVar1 * 8] = (&DAT_00088fa4)[iVar1 * 8] & 0xbf;\n      DAT_00089000 = DAT_00089000 + 1;\n      (&DAT_00089038)[iVar9] = iVar6;\n      return true;\n    }" { (expression_statement "uVar3 = *(uint *)(iVar6 + 8);" (assignment_expression "uVar3 = *(uint *)(iVar6 + 8)" identifier = (pointer_expression "*(uint *)(iVar6 + 8)" * (cast_expression "(uint *)(iVar6 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = DAT_00080558 + 0xe;" (assignment_expression "iVar1 = DAT_00080558 + 0xe" identifier = (binary_expression "DAT_00080558 + 0xe" identifier + number_literal)) ;) (expression_statement "(&DAT_00088fa0)[iVar1 * 2] = (&DAT_00088fa0)[iVar1 * 2] | *(uint *)(iVar6 + 4) & 0xffbfffff;" (assignment_expression "(&DAT_00088fa0)[iVar1 * 2] = (&DAT_00088fa0)[iVar1 * 2] | *(uint *)(iVar6 + 4) & 0xffbfffff" (subscript_expression "(&DAT_00088fa0)[iVar1 * 2]" (parenthesized_expression "(&DAT_00088fa0)" ( (pointer_expression "&DAT_00088fa0" & identifier) )) [ (binary_expression "iVar1 * 2" identifier * number_literal) ]) = (binary_expression "(&DAT_00088fa0)[iVar1 * 2] | *(uint *)(iVar6 + 4) & 0xffbfffff" (subscript_expression "(&DAT_00088fa0)[iVar1 * 2]" (parenthesized_expression "(&DAT_00088fa0)" ( (pointer_expression "&DAT_00088fa0" & identifier) )) [ (binary_expression "iVar1 * 2" identifier * number_literal) ]) | (binary_expression "*(uint *)(iVar6 + 4) & 0xffbfffff" (pointer_expression "*(uint *)(iVar6 + 4)" * (cast_expression "(uint *)(iVar6 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) & number_literal))) ;) (expression_statement "*(uint *)(&DAT_00088fa4 + iVar1 * 8) = *(uint *)(&DAT_00088fa4 + iVar1 * 8) | uVar3;" (assignment_expression "*(uint *)(&DAT_00088fa4 + iVar1 * 8) = *(uint *)(&DAT_00088fa4 + iVar1 * 8) | uVar3" (pointer_expression "*(uint *)(&DAT_00088fa4 + iVar1 * 8)" * (cast_expression "(uint *)(&DAT_00088fa4 + iVar1 * 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00088fa4 + iVar1 * 8)" ( (binary_expression "&DAT_00088fa4 + iVar1 * 8" (pointer_expression "&DAT_00088fa4" & identifier) + (binary_expression "iVar1 * 8" identifier * number_literal)) )))) = (binary_expression "*(uint *)(&DAT_00088fa4 + iVar1 * 8) | uVar3" (pointer_expression "*(uint *)(&DAT_00088fa4 + iVar1 * 8)" * (cast_expression "(uint *)(&DAT_00088fa4 + iVar1 * 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00088fa4 + iVar1 * 8)" ( (binary_expression "&DAT_00088fa4 + iVar1 * 8" (pointer_expression "&DAT_00088fa4" & identifier) + (binary_expression "iVar1 * 8" identifier * number_literal)) )))) | identifier)) ;) (expression_statement "(&DAT_00088fa4)[iVar1 * 8] = (&DAT_00088fa4)[iVar1 * 8] & 0xbf;" (assignment_expression "(&DAT_00088fa4)[iVar1 * 8] = (&DAT_00088fa4)[iVar1 * 8] & 0xbf" (subscript_expression "(&DAT_00088fa4)[iVar1 * 8]" (parenthesized_expression "(&DAT_00088fa4)" ( (pointer_expression "&DAT_00088fa4" & identifier) )) [ (binary_expression "iVar1 * 8" identifier * number_literal) ]) = (binary_expression "(&DAT_00088fa4)[iVar1 * 8] & 0xbf" (subscript_expression "(&DAT_00088fa4)[iVar1 * 8]" (parenthesized_expression "(&DAT_00088fa4)" ( (pointer_expression "&DAT_00088fa4" & identifier) )) [ (binary_expression "iVar1 * 8" identifier * number_literal) ]) & number_literal)) ;) (expression_statement "DAT_00089000 = DAT_00089000 + 1;" (assignment_expression "DAT_00089000 = DAT_00089000 + 1" identifier = (binary_expression "DAT_00089000 + 1" identifier + number_literal)) ;) (expression_statement "(&DAT_00089038)[iVar9] = iVar6;" (assignment_expression "(&DAT_00089038)[iVar9] = iVar6" (subscript_expression "(&DAT_00089038)[iVar9]" (parenthesized_expression "(&DAT_00089038)" ( (pointer_expression "&DAT_00089038" & identifier) )) [ identifier ]) = identifier) ;) (return_statement "return true;" return true ;) })) (labeled_statement "LAB_00046ad0:\n    uVar7 = dcgettext(0,"junk `%s\' after register",5);" statement_identifier : (expression_statement "uVar7 = dcgettext(0,"junk `%s\' after register",5);" (assignment_expression "uVar7 = dcgettext(0,"junk `%s\' after register",5)" identifier = (call_expression "dcgettext(0,"junk `%s\' after register",5)" identifier (argument_list "(0,"junk `%s\' after register",5)" ( number_literal , (string_literal ""junk `%s\' after register"" " string_content escape_sequence string_content ") , number_literal )))) ;)) (expression_statement "FUN_0002bd60(uVar7,pbVar10);" (call_expression "FUN_0002bd60(uVar7,pbVar10)" identifier (argument_list "(uVar7,pbVar10)" ( identifier , identifier ))) ;) (return_statement "return false;" return false ;) })) (if_statement "if ((*(ushort *)(iVar6 + 4) & 0x180) == 0) goto LAB_00046ad0;" if (parenthesized_expression "((*(ushort *)(iVar6 + 4) & 0x180) == 0)" ( (binary_expression "(*(ushort *)(iVar6 + 4) & 0x180) == 0" (parenthesized_expression "(*(ushort *)(iVar6 + 4) & 0x180)" ( (binary_expression "*(ushort *)(iVar6 + 4) & 0x180" (pointer_expression "*(ushort *)(iVar6 + 4)" * (cast_expression "(ushort *)(iVar6 + 4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00046ad0;" goto statement_identifier ;)) (switch_statement "switch(*(undefined1 *)(iVar6 + 0xd)) {\n  case 0:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_es_0007fff8;\n    break;\n  case 1:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_cs_0007ffc8;\n    break;\n  case 2:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ss_0007ffcc;\n    break;\n  case 3:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ds_0007ff80;\n    break;\n  case 4:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_fs_0007ffac;\n    break;\n  case 5:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_gs_0007ff68;\n  }" switch (parenthesized_expression "(*(undefined1 *)(iVar6 + 0xd))" ( (pointer_expression "*(undefined1 *)(iVar6 + 0xd)" * (cast_expression "(undefined1 *)(iVar6 + 0xd)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xd)" ( (binary_expression "iVar6 + 0xd" identifier + number_literal) )))) )) (compound_statement "{\n  case 0:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_es_0007fff8;\n    break;\n  case 1:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_cs_0007ffc8;\n    break;\n  case 2:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ss_0007ffcc;\n    break;\n  case 3:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ds_0007ff80;\n    break;\n  case 4:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_fs_0007ffac;\n    break;\n  case 5:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_gs_0007ff68;\n  }" { (case_statement "case 0:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_es_0007fff8;\n    break;" case number_literal : (expression_statement "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_es_0007fff8;" (assignment_expression "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_es_0007fff8" (pointer_expression "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4)" * (cast_expression "(undefined **)(&DAT_00089080 + DAT_00089008 * 4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_00089080 + DAT_00089008 * 4)" ( (binary_expression "&DAT_00089080 + DAT_00089008 * 4" (pointer_expression "&DAT_00089080" & identifier) + (binary_expression "DAT_00089008 * 4" identifier * number_literal)) )))) = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 1:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_cs_0007ffc8;\n    break;" case number_literal : (expression_statement "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_cs_0007ffc8;" (assignment_expression "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_cs_0007ffc8" (pointer_expression "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4)" * (cast_expression "(undefined **)(&DAT_00089080 + DAT_00089008 * 4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_00089080 + DAT_00089008 * 4)" ( (binary_expression "&DAT_00089080 + DAT_00089008 * 4" (pointer_expression "&DAT_00089080" & identifier) + (binary_expression "DAT_00089008 * 4" identifier * number_literal)) )))) = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 2:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ss_0007ffcc;\n    break;" case number_literal : (expression_statement "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ss_0007ffcc;" (assignment_expression "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ss_0007ffcc" (pointer_expression "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4)" * (cast_expression "(undefined **)(&DAT_00089080 + DAT_00089008 * 4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_00089080 + DAT_00089008 * 4)" ( (binary_expression "&DAT_00089080 + DAT_00089008 * 4" (pointer_expression "&DAT_00089080" & identifier) + (binary_expression "DAT_00089008 * 4" identifier * number_literal)) )))) = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 3:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ds_0007ff80;\n    break;" case number_literal : (expression_statement "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ds_0007ff80;" (assignment_expression "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ds_0007ff80" (pointer_expression "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4)" * (cast_expression "(undefined **)(&DAT_00089080 + DAT_00089008 * 4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_00089080 + DAT_00089008 * 4)" ( (binary_expression "&DAT_00089080 + DAT_00089008 * 4" (pointer_expression "&DAT_00089080" & identifier) + (binary_expression "DAT_00089008 * 4" identifier * number_literal)) )))) = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_fs_0007ffac;\n    break;" case number_literal : (expression_statement "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_fs_0007ffac;" (assignment_expression "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_fs_0007ffac" (pointer_expression "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4)" * (cast_expression "(undefined **)(&DAT_00089080 + DAT_00089008 * 4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_00089080 + DAT_00089008 * 4)" ( (binary_expression "&DAT_00089080 + DAT_00089008 * 4" (pointer_expression "&DAT_00089080" & identifier) + (binary_expression "DAT_00089008 * 4" identifier * number_literal)) )))) = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 5:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_gs_0007ff68;" case number_literal : (expression_statement "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_gs_0007ff68;" (assignment_expression "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_gs_0007ff68" (pointer_expression "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4)" * (cast_expression "(undefined **)(&DAT_00089080 + DAT_00089008 * 4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_00089080 + DAT_00089008 * 4)" ( (binary_expression "&DAT_00089080 + DAT_00089008 * 4" (pointer_expression "&DAT_00089080" & identifier) + (binary_expression "DAT_00089008 * 4" identifier * number_literal)) )))) = identifier) ;)) })) (expression_statement "bVar4 = pbVar10[1];" (assignment_expression "bVar4 = pbVar10[1]" identifier = (subscript_expression "pbVar10[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar16 = pbVar10 + 1;" (assignment_expression "pbVar16 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) (if_statement "if (bVar4 == 0x20) {\n    bVar4 = pbVar10[2];\n    pbVar16 = pbVar10 + 2;\n  }" if (parenthesized_expression "(bVar4 == 0x20)" ( (binary_expression "bVar4 == 0x20" identifier == number_literal) )) (compound_statement "{\n    bVar4 = pbVar10[2];\n    pbVar16 = pbVar10 + 2;\n  }" { (expression_statement "bVar4 = pbVar10[2];" (assignment_expression "bVar4 = pbVar10[2]" identifier = (subscript_expression "pbVar10[2]" identifier [ number_literal ])) ;) (expression_statement "pbVar16 = pbVar10 + 2;" (assignment_expression "pbVar16 = pbVar10 + 2" identifier = (binary_expression "pbVar10 + 2" identifier + number_literal)) ;) })) (if_statement "if (((&DAT_00089120)[bVar4] == '\0') && ((&DAT_00089220)[bVar4] == '\0')) {\n    if (bVar4 != 0x28) {\n      if (bVar4 != 0x2a) {\n        pcVar13 = "bad memory operand `%s\'";\n        goto LAB_00046f4c;\n      }\nLAB_00046c3c:\n      if (pbVar16[1] == 0x20) {\n        pbVar16 = pbVar16 + 2;\n      }\n      else {\n        pbVar16 = pbVar16 + 1;\n      }\n      pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);\n      *pbVar10 = *pbVar10 | 2;\n    }\n  }\n  else if (bVar4 == 0x2a) goto LAB_00046c3c;" if (parenthesized_expression "(((&DAT_00089120)[bVar4] == '\0') && ((&DAT_00089220)[bVar4] == '\0'))" ( (binary_expression "((&DAT_00089120)[bVar4] == '\0') && ((&DAT_00089220)[bVar4] == '\0')" (parenthesized_expression "((&DAT_00089120)[bVar4] == '\0')" ( (binary_expression "(&DAT_00089120)[bVar4] == '\0'" (subscript_expression "(&DAT_00089120)[bVar4]" (parenthesized_expression "(&DAT_00089120)" ( (pointer_expression "&DAT_00089120" & identifier) )) [ identifier ]) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "((&DAT_00089220)[bVar4] == '\0')" ( (binary_expression "(&DAT_00089220)[bVar4] == '\0'" (subscript_expression "(&DAT_00089220)[bVar4]" (parenthesized_expression "(&DAT_00089220)" ( (pointer_expression "&DAT_00089220" & identifier) )) [ identifier ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    if (bVar4 != 0x28) {\n      if (bVar4 != 0x2a) {\n        pcVar13 = "bad memory operand `%s\'";\n        goto LAB_00046f4c;\n      }\nLAB_00046c3c:\n      if (pbVar16[1] == 0x20) {\n        pbVar16 = pbVar16 + 2;\n      }\n      else {\n        pbVar16 = pbVar16 + 1;\n      }\n      pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);\n      *pbVar10 = *pbVar10 | 2;\n    }\n  }" { (if_statement "if (bVar4 != 0x28) {\n      if (bVar4 != 0x2a) {\n        pcVar13 = "bad memory operand `%s\'";\n        goto LAB_00046f4c;\n      }\nLAB_00046c3c:\n      if (pbVar16[1] == 0x20) {\n        pbVar16 = pbVar16 + 2;\n      }\n      else {\n        pbVar16 = pbVar16 + 1;\n      }\n      pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);\n      *pbVar10 = *pbVar10 | 2;\n    }" if (parenthesized_expression "(bVar4 != 0x28)" ( (binary_expression "bVar4 != 0x28" identifier != number_literal) )) (compound_statement "{\n      if (bVar4 != 0x2a) {\n        pcVar13 = "bad memory operand `%s\'";\n        goto LAB_00046f4c;\n      }\nLAB_00046c3c:\n      if (pbVar16[1] == 0x20) {\n        pbVar16 = pbVar16 + 2;\n      }\n      else {\n        pbVar16 = pbVar16 + 1;\n      }\n      pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);\n      *pbVar10 = *pbVar10 | 2;\n    }" { (if_statement "if (bVar4 != 0x2a) {\n        pcVar13 = "bad memory operand `%s\'";\n        goto LAB_00046f4c;\n      }" if (parenthesized_expression "(bVar4 != 0x2a)" ( (binary_expression "bVar4 != 0x2a" identifier != number_literal) )) (compound_statement "{\n        pcVar13 = "bad memory operand `%s\'";\n        goto LAB_00046f4c;\n      }" { (expression_statement "pcVar13 = "bad memory operand `%s\'";" (assignment_expression "pcVar13 = "bad memory operand `%s\'"" identifier = (string_literal ""bad memory operand `%s\'"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_00046f4c;" goto statement_identifier ;) })) (labeled_statement "LAB_00046c3c:\n      if (pbVar16[1] == 0x20) {\n        pbVar16 = pbVar16 + 2;\n      }\n      else {\n        pbVar16 = pbVar16 + 1;\n      }" statement_identifier : (if_statement "if (pbVar16[1] == 0x20) {\n        pbVar16 = pbVar16 + 2;\n      }\n      else {\n        pbVar16 = pbVar16 + 1;\n      }" if (parenthesized_expression "(pbVar16[1] == 0x20)" ( (binary_expression "pbVar16[1] == 0x20" (subscript_expression "pbVar16[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        pbVar16 = pbVar16 + 2;\n      }" { (expression_statement "pbVar16 = pbVar16 + 2;" (assignment_expression "pbVar16 = pbVar16 + 2" identifier = (binary_expression "pbVar16 + 2" identifier + number_literal)) ;) }) (else_clause "else {\n        pbVar16 = pbVar16 + 1;\n      }" else (compound_statement "{\n        pbVar16 = pbVar16 + 1;\n      }" { (expression_statement "pbVar16 = pbVar16 + 1;" (assignment_expression "pbVar16 = pbVar16 + 1" identifier = (binary_expression "pbVar16 + 1" identifier + number_literal)) ;) })))) (expression_statement "pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);" (assignment_expression "pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3)" identifier = (cast_expression "(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&DAT_00089010 + DAT_00080558 * 8 + 3)" ( (binary_expression "(int)&DAT_00089010 + DAT_00080558 * 8 + 3" (binary_expression "(int)&DAT_00089010 + DAT_00080558 * 8" (cast_expression "(int)&DAT_00089010" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&DAT_00089010" & identifier)) + (binary_expression "DAT_00080558 * 8" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "*pbVar10 = *pbVar10 | 2;" (assignment_expression "*pbVar10 = *pbVar10 | 2" (pointer_expression "*pbVar10" * identifier) = (binary_expression "*pbVar10 | 2" (pointer_expression "*pbVar10" * identifier) | number_literal)) ;) })) }) (else_clause "else if (bVar4 == 0x2a) goto LAB_00046c3c;" else (if_statement "if (bVar4 == 0x2a) goto LAB_00046c3c;" if (parenthesized_expression "(bVar4 == 0x2a)" ( (binary_expression "bVar4 == 0x2a" identifier == number_literal) )) (goto_statement "goto LAB_00046c3c;" goto statement_identifier ;)))) (labeled_statement "LAB_00046c60:\n  if (DAT_00089008 == 1) {\n    iVar9 = FUN_00046270();\n    if (iVar9 == 0) {\n      return false;\n    }\n    if (DAT_00089008 != 1) goto LAB_00046c6f;\n    puVar11 = (undefined4 *)*DAT_00088f88;\n    if ((*(byte *)((int)puVar11 + 0x27) & 1) == 0) goto LAB_0004729e;\n  }\n  else {\nLAB_00046c6f:\n    if (DAT_00089008 == 2) {\n      puVar11 = (undefined4 *)*DAT_00088f88;\nLAB_0004729e:\n      uVar7 = *puVar11;\n      uVar12 = dcgettext(0,"too many memory references for `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7);\n      return false;\n    }\n  }" statement_identifier : (if_statement "if (DAT_00089008 == 1) {\n    iVar9 = FUN_00046270();\n    if (iVar9 == 0) {\n      return false;\n    }\n    if (DAT_00089008 != 1) goto LAB_00046c6f;\n    puVar11 = (undefined4 *)*DAT_00088f88;\n    if ((*(byte *)((int)puVar11 + 0x27) & 1) == 0) goto LAB_0004729e;\n  }\n  else {\nLAB_00046c6f:\n    if (DAT_00089008 == 2) {\n      puVar11 = (undefined4 *)*DAT_00088f88;\nLAB_0004729e:\n      uVar7 = *puVar11;\n      uVar12 = dcgettext(0,"too many memory references for `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7);\n      return false;\n    }\n  }" if (parenthesized_expression "(DAT_00089008 == 1)" ( (binary_expression "DAT_00089008 == 1" identifier == number_literal) )) (compound_statement "{\n    iVar9 = FUN_00046270();\n    if (iVar9 == 0) {\n      return false;\n    }\n    if (DAT_00089008 != 1) goto LAB_00046c6f;\n    puVar11 = (undefined4 *)*DAT_00088f88;\n    if ((*(byte *)((int)puVar11 + 0x27) & 1) == 0) goto LAB_0004729e;\n  }" { (expression_statement "iVar9 = FUN_00046270();" (assignment_expression "iVar9 = FUN_00046270()" identifier = (call_expression "FUN_00046270()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar9 == 0) {\n      return false;\n    }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) (if_statement "if (DAT_00089008 != 1) goto LAB_00046c6f;" if (parenthesized_expression "(DAT_00089008 != 1)" ( (binary_expression "DAT_00089008 != 1" identifier != number_literal) )) (goto_statement "goto LAB_00046c6f;" goto statement_identifier ;)) (expression_statement "puVar11 = (undefined4 *)*DAT_00088f88;" (assignment_expression "puVar11 = (undefined4 *)*DAT_00088f88" identifier = (cast_expression "(undefined4 *)*DAT_00088f88" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_00088f88" * identifier))) ;) (if_statement "if ((*(byte *)((int)puVar11 + 0x27) & 1) == 0) goto LAB_0004729e;" if (parenthesized_expression "((*(byte *)((int)puVar11 + 0x27) & 1) == 0)" ( (binary_expression "(*(byte *)((int)puVar11 + 0x27) & 1) == 0" (parenthesized_expression "(*(byte *)((int)puVar11 + 0x27) & 1)" ( (binary_expression "*(byte *)((int)puVar11 + 0x27) & 1" (pointer_expression "*(byte *)((int)puVar11 + 0x27)" * (cast_expression "(byte *)((int)puVar11 + 0x27)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 0x27)" ( (binary_expression "(int)puVar11 + 0x27" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0004729e;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_00046c6f:\n    if (DAT_00089008 == 2) {\n      puVar11 = (undefined4 *)*DAT_00088f88;\nLAB_0004729e:\n      uVar7 = *puVar11;\n      uVar12 = dcgettext(0,"too many memory references for `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7);\n      return false;\n    }\n  }" else (compound_statement "{\nLAB_00046c6f:\n    if (DAT_00089008 == 2) {\n      puVar11 = (undefined4 *)*DAT_00088f88;\nLAB_0004729e:\n      uVar7 = *puVar11;\n      uVar12 = dcgettext(0,"too many memory references for `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7);\n      return false;\n    }\n  }" { (labeled_statement "LAB_00046c6f:\n    if (DAT_00089008 == 2) {\n      puVar11 = (undefined4 *)*DAT_00088f88;\nLAB_0004729e:\n      uVar7 = *puVar11;\n      uVar12 = dcgettext(0,"too many memory references for `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7);\n      return false;\n    }" statement_identifier : (if_statement "if (DAT_00089008 == 2) {\n      puVar11 = (undefined4 *)*DAT_00088f88;\nLAB_0004729e:\n      uVar7 = *puVar11;\n      uVar12 = dcgettext(0,"too many memory references for `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7);\n      return false;\n    }" if (parenthesized_expression "(DAT_00089008 == 2)" ( (binary_expression "DAT_00089008 == 2" identifier == number_literal) )) (compound_statement "{\n      puVar11 = (undefined4 *)*DAT_00088f88;\nLAB_0004729e:\n      uVar7 = *puVar11;\n      uVar12 = dcgettext(0,"too many memory references for `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7);\n      return false;\n    }" { (expression_statement "puVar11 = (undefined4 *)*DAT_00088f88;" (assignment_expression "puVar11 = (undefined4 *)*DAT_00088f88" identifier = (cast_expression "(undefined4 *)*DAT_00088f88" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_00088f88" * identifier))) ;) (labeled_statement "LAB_0004729e:\n      uVar7 = *puVar11;" statement_identifier : (expression_statement "uVar7 = *puVar11;" (assignment_expression "uVar7 = *puVar11" identifier = (pointer_expression "*puVar11" * identifier)) ;)) (expression_statement "uVar12 = dcgettext(0,"too many memory references for `%s\'",5);" (assignment_expression "uVar12 = dcgettext(0,"too many memory references for `%s\'",5)" identifier = (call_expression "dcgettext(0,"too many memory references for `%s\'",5)" identifier (argument_list "(0,"too many memory references for `%s\'",5)" ( number_literal , (string_literal ""too many memory references for `%s\'"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_0002bd60(uVar12,uVar7);" (call_expression "FUN_0002bd60(uVar12,uVar7)" identifier (argument_list "(uVar12,uVar7)" ( identifier , identifier ))) ;) (return_statement "return false;" return false ;) }))) })))) (expression_statement "sVar8 = strlen((char *)pbVar16);" (assignment_expression "sVar8 = strlen((char *)pbVar16)" identifier = (call_expression "strlen((char *)pbVar16)" identifier (argument_list "((char *)pbVar16)" ( (cast_expression "(char *)pbVar16" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "local_44 = pbVar16 + sVar8;" (assignment_expression "local_44 = pbVar16 + sVar8" identifier = (binary_expression "pbVar16 + sVar8" identifier + identifier)) ;) (expression_statement "pbVar10 = (byte *)strchr((char *)pbVar16,0x7b);" (assignment_expression "pbVar10 = (byte *)strchr((char *)pbVar16,0x7b)" identifier = (cast_expression "(byte *)strchr((char *)pbVar16,0x7b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "strchr((char *)pbVar16,0x7b)" identifier (argument_list "((char *)pbVar16,0x7b)" ( (cast_expression "(char *)pbVar16" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))))) ;) (if_statement "if (((pbVar10 != (byte *)0x0) && (pbVar10 < local_44)) &&\n     (iVar9 = FUN_00045070(), local_44 = pbVar10, iVar9 == 0)) {\n    return false;\n  }" if (parenthesized_expression "(((pbVar10 != (byte *)0x0) && (pbVar10 < local_44)) &&\n     (iVar9 = FUN_00045070(), local_44 = pbVar10, iVar9 == 0))" ( (binary_expression "((pbVar10 != (byte *)0x0) && (pbVar10 < local_44)) &&\n     (iVar9 = FUN_00045070(), local_44 = pbVar10, iVar9 == 0)" (parenthesized_expression "((pbVar10 != (byte *)0x0) && (pbVar10 < local_44))" ( (binary_expression "(pbVar10 != (byte *)0x0) && (pbVar10 < local_44)" (parenthesized_expression "(pbVar10 != (byte *)0x0)" ( (binary_expression "pbVar10 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pbVar10 < local_44)" ( (binary_expression "pbVar10 < local_44" identifier < identifier) ))) )) && (parenthesized_expression "(iVar9 = FUN_00045070(), local_44 = pbVar10, iVar9 == 0)" ( (comma_expression "iVar9 = FUN_00045070(), local_44 = pbVar10, iVar9 == 0" (assignment_expression "iVar9 = FUN_00045070()" identifier = (call_expression "FUN_00045070()" identifier (argument_list "()" ( )))) , (comma_expression "local_44 = pbVar10, iVar9 == 0" (assignment_expression "local_44 = pbVar10" identifier = identifier) , (binary_expression "iVar9 == 0" identifier == number_literal))) ))) )) (compound_statement "{\n    return false;\n  }" { (return_statement "return false;" return false ;) })) (expression_statement "pbVar10 = local_44 + -1;" (assignment_expression "pbVar10 = local_44 + -1" identifier = (binary_expression "local_44 + -1" identifier + number_literal)) ;) (if_statement "if (local_44[-1] == 0x20) {\n    pbVar10 = local_44 + -2;\n    local_44 = local_44 + -1;\n  }" if (parenthesized_expression "(local_44[-1] == 0x20)" ( (binary_expression "local_44[-1] == 0x20" (subscript_expression "local_44[-1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    pbVar10 = local_44 + -2;\n    local_44 = local_44 + -1;\n  }" { (expression_statement "pbVar10 = local_44 + -2;" (assignment_expression "pbVar10 = local_44 + -2" identifier = (binary_expression "local_44 + -2" identifier + number_literal)) ;) (expression_statement "local_44 = local_44 + -1;" (assignment_expression "local_44 = local_44 + -1" identifier = (binary_expression "local_44 + -1" identifier + number_literal)) ;) })) (expression_statement "pbVar15 = local_44;" (assignment_expression "pbVar15 = local_44" identifier = identifier) ;) (if_statement "if (*pbVar10 == 0x29) {\n    bVar4 = pbVar10[-1];\n    iVar9 = 1;\n    pbVar15 = pbVar10 + -1;\n    if (bVar4 == 0x29) goto LAB_000471f8;\nLAB_000471e0:\n    if (bVar4 != 0x28) goto LAB_000471eb;\n    iVar9 = iVar9 + -1;\n    do {\n      if (iVar9 == 0) {\n        bVar4 = pbVar15[1];\n        if (bVar4 == 0x20) {\n          bVar4 = pbVar10[1];\n          pbVar10 = pbVar15 + 2;\n        }\n        if (bVar4 == 0x2c) {\n          pbVar2 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar2 = *pbVar2 | 0x40;\n          if (DAT_00089074 != 0) goto LAB_00047347;\n          bVar4 = *pbVar10;\n        }\n        else {\n          DAT_00089074 = FUN_00044f30();\n          if (DAT_00089074 == 0) {\n            if (*pbVar10 == 0x25) {\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }\n            if (pbVar16 != local_44) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar10 = *pbVar10 | 0x40;\nLAB_00047347:\n          bVar4 = *local_28;\n          pbVar10 = local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            pbVar10 = local_28 + 1;\n          }\n        }\n        if (bVar4 != 0x2c) {\n          if (bVar4 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }\n          break;\n        }\n        local_44 = pbVar10 + 2;\n        if (pbVar10[1] != 0x20) {\n          local_44 = pbVar10 + 1;\n        }\n        DAT_00089078 = FUN_00044f30();\n        uVar7 = DAT_00089978;\n        if (DAT_00089078 == 0) {\n          if (*local_44 == 0x25) {\n            pcVar13 = strchr((char *)local_44,0x2c);\n            if (pcVar13 != (char *)0x0) {\n              *pcVar13 = '\0';\n            }\n            uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            FUN_0002bd60(uVar7,local_44);\n            return false;\n          }\n          if (*local_44 == 0x29) {\n            uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1);\n            FUN_0002bd60(uVar7,0x29);\n            return false;\n          }\n        }\n        else {\n          bVar4 = *local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            local_28 = local_28 + 1;\n          }\n          if (bVar4 != 0x2c) {\n            DAT_00089978 = (byte *)uVar7;\n            if (bVar4 != 0x29) {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          bVar4 = local_28[1];\n          local_44 = local_28 + 1;\n          if (bVar4 == 0x20) {\n            local_44 = local_28 + 2;\n            bVar4 = local_28[2];\n          }\n          DAT_00089978 = (byte *)uVar7;\n          if (bVar4 == 0x29) break;\n        }\n        DAT_00089978 = local_44;\n        lVar18 = FUN_0002d860();\n        if (lVar18 == 2) {\n          DAT_0008907c = 1;\n          sVar14 = 1;\nLAB_0004751e:\n          if (DAT_00089078 == 0) {\n            uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);\n            FUN_0002bc80(uVar12,1 << sVar14);\n            DAT_0008907c = 0;\n          }\n        }\n        else {\n          if (-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18)) {\n            if (lVar18 == 4) {\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }\n            else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (lVar18 != 1) {\nLAB_0004760c:\n            bVar4 = *DAT_00089978;\n            *DAT_00089978 = 0;\n            uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            FUN_0002bd60(uVar12,local_44);\n            *DAT_00089978 = bVar4;\n            DAT_00089978 = (byte *)uVar7;\n            return false;\n          }\n          DAT_0008907c = 0;\n        }\n        if (DAT_00089978 == (byte *)0x0) {\n          DAT_00089978 = (byte *)uVar7;\n          return false;\n        }\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (bVar4 != 0x29) {\n          pcVar13 = "expecting `)\' after scale factor in `%s\'";\nLAB_00047255:\n          uVar7 = dcgettext(0,pcVar13,5);\n          FUN_0002bd60(uVar7,param_1);\n          return false;\n        }\n        break;\n      }\nLAB_000471eb:\n      pbVar10 = pbVar15;\n      bVar4 = pbVar10[-1];\n      pbVar15 = pbVar10 + -1;\n      if (bVar4 != 0x29) goto LAB_000471e0;\nLAB_000471f8:\n      iVar9 = iVar9 + 1;\n    } while( true );\n  }" if (parenthesized_expression "(*pbVar10 == 0x29)" ( (binary_expression "*pbVar10 == 0x29" (pointer_expression "*pbVar10" * identifier) == number_literal) )) (compound_statement "{\n    bVar4 = pbVar10[-1];\n    iVar9 = 1;\n    pbVar15 = pbVar10 + -1;\n    if (bVar4 == 0x29) goto LAB_000471f8;\nLAB_000471e0:\n    if (bVar4 != 0x28) goto LAB_000471eb;\n    iVar9 = iVar9 + -1;\n    do {\n      if (iVar9 == 0) {\n        bVar4 = pbVar15[1];\n        if (bVar4 == 0x20) {\n          bVar4 = pbVar10[1];\n          pbVar10 = pbVar15 + 2;\n        }\n        if (bVar4 == 0x2c) {\n          pbVar2 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar2 = *pbVar2 | 0x40;\n          if (DAT_00089074 != 0) goto LAB_00047347;\n          bVar4 = *pbVar10;\n        }\n        else {\n          DAT_00089074 = FUN_00044f30();\n          if (DAT_00089074 == 0) {\n            if (*pbVar10 == 0x25) {\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }\n            if (pbVar16 != local_44) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar10 = *pbVar10 | 0x40;\nLAB_00047347:\n          bVar4 = *local_28;\n          pbVar10 = local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            pbVar10 = local_28 + 1;\n          }\n        }\n        if (bVar4 != 0x2c) {\n          if (bVar4 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }\n          break;\n        }\n        local_44 = pbVar10 + 2;\n        if (pbVar10[1] != 0x20) {\n          local_44 = pbVar10 + 1;\n        }\n        DAT_00089078 = FUN_00044f30();\n        uVar7 = DAT_00089978;\n        if (DAT_00089078 == 0) {\n          if (*local_44 == 0x25) {\n            pcVar13 = strchr((char *)local_44,0x2c);\n            if (pcVar13 != (char *)0x0) {\n              *pcVar13 = '\0';\n            }\n            uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            FUN_0002bd60(uVar7,local_44);\n            return false;\n          }\n          if (*local_44 == 0x29) {\n            uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1);\n            FUN_0002bd60(uVar7,0x29);\n            return false;\n          }\n        }\n        else {\n          bVar4 = *local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            local_28 = local_28 + 1;\n          }\n          if (bVar4 != 0x2c) {\n            DAT_00089978 = (byte *)uVar7;\n            if (bVar4 != 0x29) {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          bVar4 = local_28[1];\n          local_44 = local_28 + 1;\n          if (bVar4 == 0x20) {\n            local_44 = local_28 + 2;\n            bVar4 = local_28[2];\n          }\n          DAT_00089978 = (byte *)uVar7;\n          if (bVar4 == 0x29) break;\n        }\n        DAT_00089978 = local_44;\n        lVar18 = FUN_0002d860();\n        if (lVar18 == 2) {\n          DAT_0008907c = 1;\n          sVar14 = 1;\nLAB_0004751e:\n          if (DAT_00089078 == 0) {\n            uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);\n            FUN_0002bc80(uVar12,1 << sVar14);\n            DAT_0008907c = 0;\n          }\n        }\n        else {\n          if (-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18)) {\n            if (lVar18 == 4) {\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }\n            else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (lVar18 != 1) {\nLAB_0004760c:\n            bVar4 = *DAT_00089978;\n            *DAT_00089978 = 0;\n            uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            FUN_0002bd60(uVar12,local_44);\n            *DAT_00089978 = bVar4;\n            DAT_00089978 = (byte *)uVar7;\n            return false;\n          }\n          DAT_0008907c = 0;\n        }\n        if (DAT_00089978 == (byte *)0x0) {\n          DAT_00089978 = (byte *)uVar7;\n          return false;\n        }\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (bVar4 != 0x29) {\n          pcVar13 = "expecting `)\' after scale factor in `%s\'";\nLAB_00047255:\n          uVar7 = dcgettext(0,pcVar13,5);\n          FUN_0002bd60(uVar7,param_1);\n          return false;\n        }\n        break;\n      }\nLAB_000471eb:\n      pbVar10 = pbVar15;\n      bVar4 = pbVar10[-1];\n      pbVar15 = pbVar10 + -1;\n      if (bVar4 != 0x29) goto LAB_000471e0;\nLAB_000471f8:\n      iVar9 = iVar9 + 1;\n    } while( true );\n  }" { (expression_statement "bVar4 = pbVar10[-1];" (assignment_expression "bVar4 = pbVar10[-1]" identifier = (subscript_expression "pbVar10[-1]" identifier [ number_literal ])) ;) (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) (expression_statement "pbVar15 = pbVar10 + -1;" (assignment_expression "pbVar15 = pbVar10 + -1" identifier = (binary_expression "pbVar10 + -1" identifier + number_literal)) ;) (if_statement "if (bVar4 == 0x29) goto LAB_000471f8;" if (parenthesized_expression "(bVar4 == 0x29)" ( (binary_expression "bVar4 == 0x29" identifier == number_literal) )) (goto_statement "goto LAB_000471f8;" goto statement_identifier ;)) (labeled_statement "LAB_000471e0:\n    if (bVar4 != 0x28) goto LAB_000471eb;" statement_identifier : (if_statement "if (bVar4 != 0x28) goto LAB_000471eb;" if (parenthesized_expression "(bVar4 != 0x28)" ( (binary_expression "bVar4 != 0x28" identifier != number_literal) )) (goto_statement "goto LAB_000471eb;" goto statement_identifier ;))) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (do_statement "do {\n      if (iVar9 == 0) {\n        bVar4 = pbVar15[1];\n        if (bVar4 == 0x20) {\n          bVar4 = pbVar10[1];\n          pbVar10 = pbVar15 + 2;\n        }\n        if (bVar4 == 0x2c) {\n          pbVar2 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar2 = *pbVar2 | 0x40;\n          if (DAT_00089074 != 0) goto LAB_00047347;\n          bVar4 = *pbVar10;\n        }\n        else {\n          DAT_00089074 = FUN_00044f30();\n          if (DAT_00089074 == 0) {\n            if (*pbVar10 == 0x25) {\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }\n            if (pbVar16 != local_44) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar10 = *pbVar10 | 0x40;\nLAB_00047347:\n          bVar4 = *local_28;\n          pbVar10 = local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            pbVar10 = local_28 + 1;\n          }\n        }\n        if (bVar4 != 0x2c) {\n          if (bVar4 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }\n          break;\n        }\n        local_44 = pbVar10 + 2;\n        if (pbVar10[1] != 0x20) {\n          local_44 = pbVar10 + 1;\n        }\n        DAT_00089078 = FUN_00044f30();\n        uVar7 = DAT_00089978;\n        if (DAT_00089078 == 0) {\n          if (*local_44 == 0x25) {\n            pcVar13 = strchr((char *)local_44,0x2c);\n            if (pcVar13 != (char *)0x0) {\n              *pcVar13 = '\0';\n            }\n            uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            FUN_0002bd60(uVar7,local_44);\n            return false;\n          }\n          if (*local_44 == 0x29) {\n            uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1);\n            FUN_0002bd60(uVar7,0x29);\n            return false;\n          }\n        }\n        else {\n          bVar4 = *local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            local_28 = local_28 + 1;\n          }\n          if (bVar4 != 0x2c) {\n            DAT_00089978 = (byte *)uVar7;\n            if (bVar4 != 0x29) {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          bVar4 = local_28[1];\n          local_44 = local_28 + 1;\n          if (bVar4 == 0x20) {\n            local_44 = local_28 + 2;\n            bVar4 = local_28[2];\n          }\n          DAT_00089978 = (byte *)uVar7;\n          if (bVar4 == 0x29) break;\n        }\n        DAT_00089978 = local_44;\n        lVar18 = FUN_0002d860();\n        if (lVar18 == 2) {\n          DAT_0008907c = 1;\n          sVar14 = 1;\nLAB_0004751e:\n          if (DAT_00089078 == 0) {\n            uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);\n            FUN_0002bc80(uVar12,1 << sVar14);\n            DAT_0008907c = 0;\n          }\n        }\n        else {\n          if (-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18)) {\n            if (lVar18 == 4) {\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }\n            else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (lVar18 != 1) {\nLAB_0004760c:\n            bVar4 = *DAT_00089978;\n            *DAT_00089978 = 0;\n            uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            FUN_0002bd60(uVar12,local_44);\n            *DAT_00089978 = bVar4;\n            DAT_00089978 = (byte *)uVar7;\n            return false;\n          }\n          DAT_0008907c = 0;\n        }\n        if (DAT_00089978 == (byte *)0x0) {\n          DAT_00089978 = (byte *)uVar7;\n          return false;\n        }\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (bVar4 != 0x29) {\n          pcVar13 = "expecting `)\' after scale factor in `%s\'";\nLAB_00047255:\n          uVar7 = dcgettext(0,pcVar13,5);\n          FUN_0002bd60(uVar7,param_1);\n          return false;\n        }\n        break;\n      }\nLAB_000471eb:\n      pbVar10 = pbVar15;\n      bVar4 = pbVar10[-1];\n      pbVar15 = pbVar10 + -1;\n      if (bVar4 != 0x29) goto LAB_000471e0;\nLAB_000471f8:\n      iVar9 = iVar9 + 1;\n    } while( true );" do (compound_statement "{\n      if (iVar9 == 0) {\n        bVar4 = pbVar15[1];\n        if (bVar4 == 0x20) {\n          bVar4 = pbVar10[1];\n          pbVar10 = pbVar15 + 2;\n        }\n        if (bVar4 == 0x2c) {\n          pbVar2 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar2 = *pbVar2 | 0x40;\n          if (DAT_00089074 != 0) goto LAB_00047347;\n          bVar4 = *pbVar10;\n        }\n        else {\n          DAT_00089074 = FUN_00044f30();\n          if (DAT_00089074 == 0) {\n            if (*pbVar10 == 0x25) {\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }\n            if (pbVar16 != local_44) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar10 = *pbVar10 | 0x40;\nLAB_00047347:\n          bVar4 = *local_28;\n          pbVar10 = local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            pbVar10 = local_28 + 1;\n          }\n        }\n        if (bVar4 != 0x2c) {\n          if (bVar4 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }\n          break;\n        }\n        local_44 = pbVar10 + 2;\n        if (pbVar10[1] != 0x20) {\n          local_44 = pbVar10 + 1;\n        }\n        DAT_00089078 = FUN_00044f30();\n        uVar7 = DAT_00089978;\n        if (DAT_00089078 == 0) {\n          if (*local_44 == 0x25) {\n            pcVar13 = strchr((char *)local_44,0x2c);\n            if (pcVar13 != (char *)0x0) {\n              *pcVar13 = '\0';\n            }\n            uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            FUN_0002bd60(uVar7,local_44);\n            return false;\n          }\n          if (*local_44 == 0x29) {\n            uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1);\n            FUN_0002bd60(uVar7,0x29);\n            return false;\n          }\n        }\n        else {\n          bVar4 = *local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            local_28 = local_28 + 1;\n          }\n          if (bVar4 != 0x2c) {\n            DAT_00089978 = (byte *)uVar7;\n            if (bVar4 != 0x29) {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          bVar4 = local_28[1];\n          local_44 = local_28 + 1;\n          if (bVar4 == 0x20) {\n            local_44 = local_28 + 2;\n            bVar4 = local_28[2];\n          }\n          DAT_00089978 = (byte *)uVar7;\n          if (bVar4 == 0x29) break;\n        }\n        DAT_00089978 = local_44;\n        lVar18 = FUN_0002d860();\n        if (lVar18 == 2) {\n          DAT_0008907c = 1;\n          sVar14 = 1;\nLAB_0004751e:\n          if (DAT_00089078 == 0) {\n            uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);\n            FUN_0002bc80(uVar12,1 << sVar14);\n            DAT_0008907c = 0;\n          }\n        }\n        else {\n          if (-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18)) {\n            if (lVar18 == 4) {\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }\n            else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (lVar18 != 1) {\nLAB_0004760c:\n            bVar4 = *DAT_00089978;\n            *DAT_00089978 = 0;\n            uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            FUN_0002bd60(uVar12,local_44);\n            *DAT_00089978 = bVar4;\n            DAT_00089978 = (byte *)uVar7;\n            return false;\n          }\n          DAT_0008907c = 0;\n        }\n        if (DAT_00089978 == (byte *)0x0) {\n          DAT_00089978 = (byte *)uVar7;\n          return false;\n        }\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (bVar4 != 0x29) {\n          pcVar13 = "expecting `)\' after scale factor in `%s\'";\nLAB_00047255:\n          uVar7 = dcgettext(0,pcVar13,5);\n          FUN_0002bd60(uVar7,param_1);\n          return false;\n        }\n        break;\n      }\nLAB_000471eb:\n      pbVar10 = pbVar15;\n      bVar4 = pbVar10[-1];\n      pbVar15 = pbVar10 + -1;\n      if (bVar4 != 0x29) goto LAB_000471e0;\nLAB_000471f8:\n      iVar9 = iVar9 + 1;\n    }" { (if_statement "if (iVar9 == 0) {\n        bVar4 = pbVar15[1];\n        if (bVar4 == 0x20) {\n          bVar4 = pbVar10[1];\n          pbVar10 = pbVar15 + 2;\n        }\n        if (bVar4 == 0x2c) {\n          pbVar2 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar2 = *pbVar2 | 0x40;\n          if (DAT_00089074 != 0) goto LAB_00047347;\n          bVar4 = *pbVar10;\n        }\n        else {\n          DAT_00089074 = FUN_00044f30();\n          if (DAT_00089074 == 0) {\n            if (*pbVar10 == 0x25) {\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }\n            if (pbVar16 != local_44) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar10 = *pbVar10 | 0x40;\nLAB_00047347:\n          bVar4 = *local_28;\n          pbVar10 = local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            pbVar10 = local_28 + 1;\n          }\n        }\n        if (bVar4 != 0x2c) {\n          if (bVar4 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }\n          break;\n        }\n        local_44 = pbVar10 + 2;\n        if (pbVar10[1] != 0x20) {\n          local_44 = pbVar10 + 1;\n        }\n        DAT_00089078 = FUN_00044f30();\n        uVar7 = DAT_00089978;\n        if (DAT_00089078 == 0) {\n          if (*local_44 == 0x25) {\n            pcVar13 = strchr((char *)local_44,0x2c);\n            if (pcVar13 != (char *)0x0) {\n              *pcVar13 = '\0';\n            }\n            uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            FUN_0002bd60(uVar7,local_44);\n            return false;\n          }\n          if (*local_44 == 0x29) {\n            uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1);\n            FUN_0002bd60(uVar7,0x29);\n            return false;\n          }\n        }\n        else {\n          bVar4 = *local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            local_28 = local_28 + 1;\n          }\n          if (bVar4 != 0x2c) {\n            DAT_00089978 = (byte *)uVar7;\n            if (bVar4 != 0x29) {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          bVar4 = local_28[1];\n          local_44 = local_28 + 1;\n          if (bVar4 == 0x20) {\n            local_44 = local_28 + 2;\n            bVar4 = local_28[2];\n          }\n          DAT_00089978 = (byte *)uVar7;\n          if (bVar4 == 0x29) break;\n        }\n        DAT_00089978 = local_44;\n        lVar18 = FUN_0002d860();\n        if (lVar18 == 2) {\n          DAT_0008907c = 1;\n          sVar14 = 1;\nLAB_0004751e:\n          if (DAT_00089078 == 0) {\n            uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);\n            FUN_0002bc80(uVar12,1 << sVar14);\n            DAT_0008907c = 0;\n          }\n        }\n        else {\n          if (-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18)) {\n            if (lVar18 == 4) {\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }\n            else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (lVar18 != 1) {\nLAB_0004760c:\n            bVar4 = *DAT_00089978;\n            *DAT_00089978 = 0;\n            uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            FUN_0002bd60(uVar12,local_44);\n            *DAT_00089978 = bVar4;\n            DAT_00089978 = (byte *)uVar7;\n            return false;\n          }\n          DAT_0008907c = 0;\n        }\n        if (DAT_00089978 == (byte *)0x0) {\n          DAT_00089978 = (byte *)uVar7;\n          return false;\n        }\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (bVar4 != 0x29) {\n          pcVar13 = "expecting `)\' after scale factor in `%s\'";\nLAB_00047255:\n          uVar7 = dcgettext(0,pcVar13,5);\n          FUN_0002bd60(uVar7,param_1);\n          return false;\n        }\n        break;\n      }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        bVar4 = pbVar15[1];\n        if (bVar4 == 0x20) {\n          bVar4 = pbVar10[1];\n          pbVar10 = pbVar15 + 2;\n        }\n        if (bVar4 == 0x2c) {\n          pbVar2 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar2 = *pbVar2 | 0x40;\n          if (DAT_00089074 != 0) goto LAB_00047347;\n          bVar4 = *pbVar10;\n        }\n        else {\n          DAT_00089074 = FUN_00044f30();\n          if (DAT_00089074 == 0) {\n            if (*pbVar10 == 0x25) {\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }\n            if (pbVar16 != local_44) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar10 = *pbVar10 | 0x40;\nLAB_00047347:\n          bVar4 = *local_28;\n          pbVar10 = local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            pbVar10 = local_28 + 1;\n          }\n        }\n        if (bVar4 != 0x2c) {\n          if (bVar4 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }\n          break;\n        }\n        local_44 = pbVar10 + 2;\n        if (pbVar10[1] != 0x20) {\n          local_44 = pbVar10 + 1;\n        }\n        DAT_00089078 = FUN_00044f30();\n        uVar7 = DAT_00089978;\n        if (DAT_00089078 == 0) {\n          if (*local_44 == 0x25) {\n            pcVar13 = strchr((char *)local_44,0x2c);\n            if (pcVar13 != (char *)0x0) {\n              *pcVar13 = '\0';\n            }\n            uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            FUN_0002bd60(uVar7,local_44);\n            return false;\n          }\n          if (*local_44 == 0x29) {\n            uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1);\n            FUN_0002bd60(uVar7,0x29);\n            return false;\n          }\n        }\n        else {\n          bVar4 = *local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            local_28 = local_28 + 1;\n          }\n          if (bVar4 != 0x2c) {\n            DAT_00089978 = (byte *)uVar7;\n            if (bVar4 != 0x29) {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          bVar4 = local_28[1];\n          local_44 = local_28 + 1;\n          if (bVar4 == 0x20) {\n            local_44 = local_28 + 2;\n            bVar4 = local_28[2];\n          }\n          DAT_00089978 = (byte *)uVar7;\n          if (bVar4 == 0x29) break;\n        }\n        DAT_00089978 = local_44;\n        lVar18 = FUN_0002d860();\n        if (lVar18 == 2) {\n          DAT_0008907c = 1;\n          sVar14 = 1;\nLAB_0004751e:\n          if (DAT_00089078 == 0) {\n            uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);\n            FUN_0002bc80(uVar12,1 << sVar14);\n            DAT_0008907c = 0;\n          }\n        }\n        else {\n          if (-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18)) {\n            if (lVar18 == 4) {\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }\n            else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (lVar18 != 1) {\nLAB_0004760c:\n            bVar4 = *DAT_00089978;\n            *DAT_00089978 = 0;\n            uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            FUN_0002bd60(uVar12,local_44);\n            *DAT_00089978 = bVar4;\n            DAT_00089978 = (byte *)uVar7;\n            return false;\n          }\n          DAT_0008907c = 0;\n        }\n        if (DAT_00089978 == (byte *)0x0) {\n          DAT_00089978 = (byte *)uVar7;\n          return false;\n        }\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (bVar4 != 0x29) {\n          pcVar13 = "expecting `)\' after scale factor in `%s\'";\nLAB_00047255:\n          uVar7 = dcgettext(0,pcVar13,5);\n          FUN_0002bd60(uVar7,param_1);\n          return false;\n        }\n        break;\n      }" { (expression_statement "bVar4 = pbVar15[1];" (assignment_expression "bVar4 = pbVar15[1]" identifier = (subscript_expression "pbVar15[1]" identifier [ number_literal ])) ;) (if_statement "if (bVar4 == 0x20) {\n          bVar4 = pbVar10[1];\n          pbVar10 = pbVar15 + 2;\n        }" if (parenthesized_expression "(bVar4 == 0x20)" ( (binary_expression "bVar4 == 0x20" identifier == number_literal) )) (compound_statement "{\n          bVar4 = pbVar10[1];\n          pbVar10 = pbVar15 + 2;\n        }" { (expression_statement "bVar4 = pbVar10[1];" (assignment_expression "bVar4 = pbVar10[1]" identifier = (subscript_expression "pbVar10[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar10 = pbVar15 + 2;" (assignment_expression "pbVar10 = pbVar15 + 2" identifier = (binary_expression "pbVar15 + 2" identifier + number_literal)) ;) })) (if_statement "if (bVar4 == 0x2c) {\n          pbVar2 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar2 = *pbVar2 | 0x40;\n          if (DAT_00089074 != 0) goto LAB_00047347;\n          bVar4 = *pbVar10;\n        }\n        else {\n          DAT_00089074 = FUN_00044f30();\n          if (DAT_00089074 == 0) {\n            if (*pbVar10 == 0x25) {\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }\n            if (pbVar16 != local_44) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar10 = *pbVar10 | 0x40;\nLAB_00047347:\n          bVar4 = *local_28;\n          pbVar10 = local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            pbVar10 = local_28 + 1;\n          }\n        }" if (parenthesized_expression "(bVar4 == 0x2c)" ( (binary_expression "bVar4 == 0x2c" identifier == number_literal) )) (compound_statement "{\n          pbVar2 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar2 = *pbVar2 | 0x40;\n          if (DAT_00089074 != 0) goto LAB_00047347;\n          bVar4 = *pbVar10;\n        }" { (expression_statement "pbVar2 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);" (assignment_expression "pbVar2 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2)" identifier = (cast_expression "(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&DAT_00089010 + DAT_00080558 * 8 + 2)" ( (binary_expression "(int)&DAT_00089010 + DAT_00080558 * 8 + 2" (binary_expression "(int)&DAT_00089010 + DAT_00080558 * 8" (cast_expression "(int)&DAT_00089010" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&DAT_00089010" & identifier)) + (binary_expression "DAT_00080558 * 8" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "*pbVar2 = *pbVar2 | 0x40;" (assignment_expression "*pbVar2 = *pbVar2 | 0x40" (pointer_expression "*pbVar2" * identifier) = (binary_expression "*pbVar2 | 0x40" (pointer_expression "*pbVar2" * identifier) | number_literal)) ;) (if_statement "if (DAT_00089074 != 0) goto LAB_00047347;" if (parenthesized_expression "(DAT_00089074 != 0)" ( (binary_expression "DAT_00089074 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00047347;" goto statement_identifier ;)) (expression_statement "bVar4 = *pbVar10;" (assignment_expression "bVar4 = *pbVar10" identifier = (pointer_expression "*pbVar10" * identifier)) ;) }) (else_clause "else {\n          DAT_00089074 = FUN_00044f30();\n          if (DAT_00089074 == 0) {\n            if (*pbVar10 == 0x25) {\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }\n            if (pbVar16 != local_44) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar10 = *pbVar10 | 0x40;\nLAB_00047347:\n          bVar4 = *local_28;\n          pbVar10 = local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            pbVar10 = local_28 + 1;\n          }\n        }" else (compound_statement "{\n          DAT_00089074 = FUN_00044f30();\n          if (DAT_00089074 == 0) {\n            if (*pbVar10 == 0x25) {\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }\n            if (pbVar16 != local_44) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar10 = *pbVar10 | 0x40;\nLAB_00047347:\n          bVar4 = *local_28;\n          pbVar10 = local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            pbVar10 = local_28 + 1;\n          }\n        }" { (expression_statement "DAT_00089074 = FUN_00044f30();" (assignment_expression "DAT_00089074 = FUN_00044f30()" identifier = (call_expression "FUN_00044f30()" identifier (argument_list "()" ( )))) ;) (if_statement "if (DAT_00089074 == 0) {\n            if (*pbVar10 == 0x25) {\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }\n            if (pbVar16 != local_44) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }" if (parenthesized_expression "(DAT_00089074 == 0)" ( (binary_expression "DAT_00089074 == 0" identifier == number_literal) )) (compound_statement "{\n            if (*pbVar10 == 0x25) {\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }\n            if (pbVar16 != local_44) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }" { (if_statement "if (*pbVar10 == 0x25) {\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }" if (parenthesized_expression "(*pbVar10 == 0x25)" ( (binary_expression "*pbVar10 == 0x25" (pointer_expression "*pbVar10" * identifier) == number_literal) )) (compound_statement "{\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }" { (expression_statement "pcVar13 = strchr((char *)pbVar10,0x2c);" (assignment_expression "pcVar13 = strchr((char *)pbVar10,0x2c)" identifier = (call_expression "strchr((char *)pbVar10,0x2c)" identifier (argument_list "((char *)pbVar10,0x2c)" ( (cast_expression "(char *)pbVar10" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }" if (parenthesized_expression "(pcVar13 != (char *)0x0)" ( (binary_expression "pcVar13 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                *pcVar13 = '\0';\n              }" { (expression_statement "*pcVar13 = '\0';" (assignment_expression "*pcVar13 = '\0'" (pointer_expression "*pcVar13" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "uVar7 = dcgettext(0,"bad register name `%s\'",5);" (assignment_expression "uVar7 = dcgettext(0,"bad register name `%s\'",5)" identifier = (call_expression "dcgettext(0,"bad register name `%s\'",5)" identifier (argument_list "(0,"bad register name `%s\'",5)" ( number_literal , (string_literal ""bad register name `%s\'"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_0002bd60(uVar7,pbVar10);" (call_expression "FUN_0002bd60(uVar7,pbVar10)" identifier (argument_list "(uVar7,pbVar10)" ( identifier , identifier ))) ;) (return_statement "return false;" return false ;) })) (if_statement "if (pbVar16 != local_44) goto LAB_00046cd4;" if (parenthesized_expression "(pbVar16 != local_44)" ( (binary_expression "pbVar16 != local_44" identifier != identifier) )) (goto_statement "goto LAB_00046cd4;" goto statement_identifier ;)) (goto_statement "goto LAB_00046ea4;" goto statement_identifier ;) })) (expression_statement "pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);" (assignment_expression "pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2)" identifier = (cast_expression "(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&DAT_00089010 + DAT_00080558 * 8 + 2)" ( (binary_expression "(int)&DAT_00089010 + DAT_00080558 * 8 + 2" (binary_expression "(int)&DAT_00089010 + DAT_00080558 * 8" (cast_expression "(int)&DAT_00089010" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&DAT_00089010" & identifier)) + (binary_expression "DAT_00080558 * 8" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "*pbVar10 = *pbVar10 | 0x40;" (assignment_expression "*pbVar10 = *pbVar10 | 0x40" (pointer_expression "*pbVar10" * identifier) = (binary_expression "*pbVar10 | 0x40" (pointer_expression "*pbVar10" * identifier) | number_literal)) ;) (labeled_statement "LAB_00047347:\n          bVar4 = *local_28;" statement_identifier : (expression_statement "bVar4 = *local_28;" (assignment_expression "bVar4 = *local_28" identifier = (pointer_expression "*local_28" * identifier)) ;)) (expression_statement "pbVar10 = local_28;" (assignment_expression "pbVar10 = local_28" identifier = identifier) ;) (if_statement "if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            pbVar10 = local_28 + 1;\n          }" if (parenthesized_expression "(bVar4 == 0x20)" ( (binary_expression "bVar4 == 0x20" identifier == number_literal) )) (compound_statement "{\n            bVar4 = local_28[1];\n            pbVar10 = local_28 + 1;\n          }" { (expression_statement "bVar4 = local_28[1];" (assignment_expression "bVar4 = local_28[1]" identifier = (subscript_expression "local_28[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar10 = local_28 + 1;" (assignment_expression "pbVar10 = local_28 + 1" identifier = (binary_expression "local_28 + 1" identifier + number_literal)) ;) })) }))) (if_statement "if (bVar4 != 0x2c) {\n          if (bVar4 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }\n          break;\n        }" if (parenthesized_expression "(bVar4 != 0x2c)" ( (binary_expression "bVar4 != 0x2c" identifier != number_literal) )) (compound_statement "{\n          if (bVar4 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }\n          break;\n        }" { (if_statement "if (bVar4 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }" if (parenthesized_expression "(bVar4 != 0x29)" ( (binary_expression "bVar4 != 0x29" identifier != number_literal) )) (compound_statement "{\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }" { (expression_statement "pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";" (assignment_expression "pcVar13 = "expecting `,\' or `)\' after base register in `%s\'"" identifier = (string_literal ""expecting `,\' or `)\' after base register in `%s\'"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (goto_statement "goto LAB_00047255;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "local_44 = pbVar10 + 2;" (assignment_expression "local_44 = pbVar10 + 2" identifier = (binary_expression "pbVar10 + 2" identifier + number_literal)) ;) (if_statement "if (pbVar10[1] != 0x20) {\n          local_44 = pbVar10 + 1;\n        }" if (parenthesized_expression "(pbVar10[1] != 0x20)" ( (binary_expression "pbVar10[1] != 0x20" (subscript_expression "pbVar10[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n          local_44 = pbVar10 + 1;\n        }" { (expression_statement "local_44 = pbVar10 + 1;" (assignment_expression "local_44 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) })) (expression_statement "DAT_00089078 = FUN_00044f30();" (assignment_expression "DAT_00089078 = FUN_00044f30()" identifier = (call_expression "FUN_00044f30()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar7 = DAT_00089978;" (assignment_expression "uVar7 = DAT_00089978" identifier = identifier) ;) (if_statement "if (DAT_00089078 == 0) {\n          if (*local_44 == 0x25) {\n            pcVar13 = strchr((char *)local_44,0x2c);\n            if (pcVar13 != (char *)0x0) {\n              *pcVar13 = '\0';\n            }\n            uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            FUN_0002bd60(uVar7,local_44);\n            return false;\n          }\n          if (*local_44 == 0x29) {\n            uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1);\n            FUN_0002bd60(uVar7,0x29);\n            return false;\n          }\n        }\n        else {\n          bVar4 = *local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            local_28 = local_28 + 1;\n          }\n          if (bVar4 != 0x2c) {\n            DAT_00089978 = (byte *)uVar7;\n            if (bVar4 != 0x29) {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          bVar4 = local_28[1];\n          local_44 = local_28 + 1;\n          if (bVar4 == 0x20) {\n            local_44 = local_28 + 2;\n            bVar4 = local_28[2];\n          }\n          DAT_00089978 = (byte *)uVar7;\n          if (bVar4 == 0x29) break;\n        }" if (parenthesized_expression "(DAT_00089078 == 0)" ( (binary_expression "DAT_00089078 == 0" identifier == number_literal) )) (compound_statement "{\n          if (*local_44 == 0x25) {\n            pcVar13 = strchr((char *)local_44,0x2c);\n            if (pcVar13 != (char *)0x0) {\n              *pcVar13 = '\0';\n            }\n            uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            FUN_0002bd60(uVar7,local_44);\n            return false;\n          }\n          if (*local_44 == 0x29) {\n            uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1);\n            FUN_0002bd60(uVar7,0x29);\n            return false;\n          }\n        }" { (if_statement "if (*local_44 == 0x25) {\n            pcVar13 = strchr((char *)local_44,0x2c);\n            if (pcVar13 != (char *)0x0) {\n              *pcVar13 = '\0';\n            }\n            uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            FUN_0002bd60(uVar7,local_44);\n            return false;\n          }" if (parenthesized_expression "(*local_44 == 0x25)" ( (binary_expression "*local_44 == 0x25" (pointer_expression "*local_44" * identifier) == number_literal) )) (compound_statement "{\n            pcVar13 = strchr((char *)local_44,0x2c);\n            if (pcVar13 != (char *)0x0) {\n              *pcVar13 = '\0';\n            }\n            uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            FUN_0002bd60(uVar7,local_44);\n            return false;\n          }" { (expression_statement "pcVar13 = strchr((char *)local_44,0x2c);" (assignment_expression "pcVar13 = strchr((char *)local_44,0x2c)" identifier = (call_expression "strchr((char *)local_44,0x2c)" identifier (argument_list "((char *)local_44,0x2c)" ( (cast_expression "(char *)local_44" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (pcVar13 != (char *)0x0) {\n              *pcVar13 = '\0';\n            }" if (parenthesized_expression "(pcVar13 != (char *)0x0)" ( (binary_expression "pcVar13 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              *pcVar13 = '\0';\n            }" { (expression_statement "*pcVar13 = '\0';" (assignment_expression "*pcVar13 = '\0'" (pointer_expression "*pcVar13" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX);" (assignment_expression "uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX)" identifier = (call_expression "dcgettext(0,"bad register name `%s\'",5,extraout_ECX)" identifier (argument_list "(0,"bad register name `%s\'",5,extraout_ECX)" ( number_literal , (string_literal ""bad register name `%s\'"" " string_content escape_sequence ") , number_literal , identifier )))) ;) (expression_statement "FUN_0002bd60(uVar7,local_44);" (call_expression "FUN_0002bd60(uVar7,local_44)" identifier (argument_list "(uVar7,local_44)" ( identifier , identifier ))) ;) (return_statement "return false;" return false ;) })) (if_statement "if (*local_44 == 0x29) {\n            uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1);\n            FUN_0002bd60(uVar7,0x29);\n            return false;\n          }" if (parenthesized_expression "(*local_44 == 0x29)" ( (binary_expression "*local_44 == 0x29" (pointer_expression "*local_44" * identifier) == number_literal) )) (compound_statement "{\n            uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1);\n            FUN_0002bd60(uVar7,0x29);\n            return false;\n          }" { (expression_statement "uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1);" (assignment_expression "uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1)" identifier = (call_expression "dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1)" identifier (argument_list "(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1)" ( number_literal , (string_literal ""expecting index register or scale factor after `,\'; got \'%c\'"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal , identifier )))) ;) (expression_statement "FUN_0002bd60(uVar7,0x29);" (call_expression "FUN_0002bd60(uVar7,0x29)" identifier (argument_list "(uVar7,0x29)" ( identifier , number_literal ))) ;) (return_statement "return false;" return false ;) })) }) (else_clause "else {\n          bVar4 = *local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            local_28 = local_28 + 1;\n          }\n          if (bVar4 != 0x2c) {\n            DAT_00089978 = (byte *)uVar7;\n            if (bVar4 != 0x29) {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          bVar4 = local_28[1];\n          local_44 = local_28 + 1;\n          if (bVar4 == 0x20) {\n            local_44 = local_28 + 2;\n            bVar4 = local_28[2];\n          }\n          DAT_00089978 = (byte *)uVar7;\n          if (bVar4 == 0x29) break;\n        }" else (compound_statement "{\n          bVar4 = *local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            local_28 = local_28 + 1;\n          }\n          if (bVar4 != 0x2c) {\n            DAT_00089978 = (byte *)uVar7;\n            if (bVar4 != 0x29) {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          bVar4 = local_28[1];\n          local_44 = local_28 + 1;\n          if (bVar4 == 0x20) {\n            local_44 = local_28 + 2;\n            bVar4 = local_28[2];\n          }\n          DAT_00089978 = (byte *)uVar7;\n          if (bVar4 == 0x29) break;\n        }" { (expression_statement "bVar4 = *local_28;" (assignment_expression "bVar4 = *local_28" identifier = (pointer_expression "*local_28" * identifier)) ;) (if_statement "if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            local_28 = local_28 + 1;\n          }" if (parenthesized_expression "(bVar4 == 0x20)" ( (binary_expression "bVar4 == 0x20" identifier == number_literal) )) (compound_statement "{\n            bVar4 = local_28[1];\n            local_28 = local_28 + 1;\n          }" { (expression_statement "bVar4 = local_28[1];" (assignment_expression "bVar4 = local_28[1]" identifier = (subscript_expression "local_28[1]" identifier [ number_literal ])) ;) (expression_statement "local_28 = local_28 + 1;" (assignment_expression "local_28 = local_28 + 1" identifier = (binary_expression "local_28 + 1" identifier + number_literal)) ;) })) (if_statement "if (bVar4 != 0x2c) {\n            DAT_00089978 = (byte *)uVar7;\n            if (bVar4 != 0x29) {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }" if (parenthesized_expression "(bVar4 != 0x2c)" ( (binary_expression "bVar4 != 0x2c" identifier != number_literal) )) (compound_statement "{\n            DAT_00089978 = (byte *)uVar7;\n            if (bVar4 != 0x29) {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }" { (expression_statement "DAT_00089978 = (byte *)uVar7;" (assignment_expression "DAT_00089978 = (byte *)uVar7" identifier = (cast_expression "(byte *)uVar7" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (bVar4 != 0x29) {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }" if (parenthesized_expression "(bVar4 != 0x29)" ( (binary_expression "bVar4 != 0x29" identifier != number_literal) )) (compound_statement "{\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }" { (expression_statement "pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";" (assignment_expression "pcVar13 = "expecting `,\' or `)\' after index register in `%s\'"" identifier = (string_literal ""expecting `,\' or `)\' after index register in `%s\'"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (goto_statement "goto LAB_00047255;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "bVar4 = local_28[1];" (assignment_expression "bVar4 = local_28[1]" identifier = (subscript_expression "local_28[1]" identifier [ number_literal ])) ;) (expression_statement "local_44 = local_28 + 1;" (assignment_expression "local_44 = local_28 + 1" identifier = (binary_expression "local_28 + 1" identifier + number_literal)) ;) (if_statement "if (bVar4 == 0x20) {\n            local_44 = local_28 + 2;\n            bVar4 = local_28[2];\n          }" if (parenthesized_expression "(bVar4 == 0x20)" ( (binary_expression "bVar4 == 0x20" identifier == number_literal) )) (compound_statement "{\n            local_44 = local_28 + 2;\n            bVar4 = local_28[2];\n          }" { (expression_statement "local_44 = local_28 + 2;" (assignment_expression "local_44 = local_28 + 2" identifier = (binary_expression "local_28 + 2" identifier + number_literal)) ;) (expression_statement "bVar4 = local_28[2];" (assignment_expression "bVar4 = local_28[2]" identifier = (subscript_expression "local_28[2]" identifier [ number_literal ])) ;) })) (expression_statement "DAT_00089978 = (byte *)uVar7;" (assignment_expression "DAT_00089978 = (byte *)uVar7" identifier = (cast_expression "(byte *)uVar7" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (bVar4 == 0x29) break;" if (parenthesized_expression "(bVar4 == 0x29)" ( (binary_expression "bVar4 == 0x29" identifier == number_literal) )) (break_statement "break;" break ;)) }))) (expression_statement "DAT_00089978 = local_44;" (assignment_expression "DAT_00089978 = local_44" identifier = identifier) ;) (expression_statement "lVar18 = FUN_0002d860();" (assignment_expression "lVar18 = FUN_0002d860()" identifier = (call_expression "FUN_0002d860()" identifier (argument_list "()" ( )))) ;) (if_statement "if (lVar18 == 2) {\n          DAT_0008907c = 1;\n          sVar14 = 1;\nLAB_0004751e:\n          if (DAT_00089078 == 0) {\n            uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);\n            FUN_0002bc80(uVar12,1 << sVar14);\n            DAT_0008907c = 0;\n          }\n        }\n        else {\n          if (-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18)) {\n            if (lVar18 == 4) {\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }\n            else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (lVar18 != 1) {\nLAB_0004760c:\n            bVar4 = *DAT_00089978;\n            *DAT_00089978 = 0;\n            uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            FUN_0002bd60(uVar12,local_44);\n            *DAT_00089978 = bVar4;\n            DAT_00089978 = (byte *)uVar7;\n            return false;\n          }\n          DAT_0008907c = 0;\n        }" if (parenthesized_expression "(lVar18 == 2)" ( (binary_expression "lVar18 == 2" identifier == number_literal) )) (compound_statement "{\n          DAT_0008907c = 1;\n          sVar14 = 1;\nLAB_0004751e:\n          if (DAT_00089078 == 0) {\n            uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);\n            FUN_0002bc80(uVar12,1 << sVar14);\n            DAT_0008907c = 0;\n          }\n        }" { (expression_statement "DAT_0008907c = 1;" (assignment_expression "DAT_0008907c = 1" identifier = number_literal) ;) (expression_statement "sVar14 = 1;" (assignment_expression "sVar14 = 1" identifier = number_literal) ;) (labeled_statement "LAB_0004751e:\n          if (DAT_00089078 == 0) {\n            uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);\n            FUN_0002bc80(uVar12,1 << sVar14);\n            DAT_0008907c = 0;\n          }" statement_identifier : (if_statement "if (DAT_00089078 == 0) {\n            uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);\n            FUN_0002bc80(uVar12,1 << sVar14);\n            DAT_0008907c = 0;\n          }" if (parenthesized_expression "(DAT_00089078 == 0)" ( (binary_expression "DAT_00089078 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);\n            FUN_0002bc80(uVar12,1 << sVar14);\n            DAT_0008907c = 0;\n          }" { (expression_statement "uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);" (assignment_expression "uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14)" identifier = (call_expression "dcgettext(0,"scale factor of %d without an index register",5,sVar14)" identifier (argument_list "(0,"scale factor of %d without an index register",5,sVar14)" ( number_literal , (string_literal ""scale factor of %d without an index register"" " string_content ") , number_literal , identifier )))) ;) (expression_statement "FUN_0002bc80(uVar12,1 << sVar14);" (call_expression "FUN_0002bc80(uVar12,1 << sVar14)" identifier (argument_list "(uVar12,1 << sVar14)" ( identifier , (binary_expression "1 << sVar14" number_literal << identifier) ))) ;) (expression_statement "DAT_0008907c = 0;" (assignment_expression "DAT_0008907c = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n          if (-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18)) {\n            if (lVar18 == 4) {\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }\n            else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (lVar18 != 1) {\nLAB_0004760c:\n            bVar4 = *DAT_00089978;\n            *DAT_00089978 = 0;\n            uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            FUN_0002bd60(uVar12,local_44);\n            *DAT_00089978 = bVar4;\n            DAT_00089978 = (byte *)uVar7;\n            return false;\n          }\n          DAT_0008907c = 0;\n        }" else (compound_statement "{\n          if (-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18)) {\n            if (lVar18 == 4) {\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }\n            else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (lVar18 != 1) {\nLAB_0004760c:\n            bVar4 = *DAT_00089978;\n            *DAT_00089978 = 0;\n            uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            FUN_0002bd60(uVar12,local_44);\n            *DAT_00089978 = bVar4;\n            DAT_00089978 = (byte *)uVar7;\n            return false;\n          }\n          DAT_0008907c = 0;\n        }" { (if_statement "if (-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18)) {\n            if (lVar18 == 4) {\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }\n            else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }\n            goto LAB_0004751e;\n          }" if (parenthesized_expression "(-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18))" ( (binary_expression "-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18)" (unary_expression "-(int)((ulonglong)lVar18 >> 0x20)" - (cast_expression "(int)((ulonglong)lVar18 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar18 >> 0x20)" ( (binary_expression "(ulonglong)lVar18 >> 0x20" (cast_expression "(ulonglong)lVar18" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) < (cast_expression "(int)(uint)(2 < (uint)lVar18)" ( (type_descriptor "int" primitive_type) ) (call_expression "(uint)(2 < (uint)lVar18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(2 < (uint)lVar18)" ( (binary_expression "2 < (uint)lVar18" number_literal < (cast_expression "(uint)lVar18" ( (type_descriptor "uint" type_identifier) ) identifier)) ))))) )) (compound_statement "{\n            if (lVar18 == 4) {\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }\n            else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }\n            goto LAB_0004751e;\n          }" { (if_statement "if (lVar18 == 4) {\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }\n            else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }" if (parenthesized_expression "(lVar18 == 4)" ( (binary_expression "lVar18 == 4" identifier == number_literal) )) (compound_statement "{\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }" { (expression_statement "DAT_0008907c = 2;" (assignment_expression "DAT_0008907c = 2" identifier = number_literal) ;) (expression_statement "sVar14 = 2;" (assignment_expression "sVar14 = 2" identifier = number_literal) ;) }) (else_clause "else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }" else (compound_statement "{\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }" { (if_statement "if (lVar18 != 8) goto LAB_0004760c;" if (parenthesized_expression "(lVar18 != 8)" ( (binary_expression "lVar18 != 8" identifier != number_literal) )) (goto_statement "goto LAB_0004760c;" goto statement_identifier ;)) (expression_statement "DAT_0008907c = 3;" (assignment_expression "DAT_0008907c = 3" identifier = number_literal) ;) (expression_statement "sVar14 = 3;" (assignment_expression "sVar14 = 3" identifier = number_literal) ;) }))) (goto_statement "goto LAB_0004751e;" goto statement_identifier ;) })) (if_statement "if (lVar18 != 1) {\nLAB_0004760c:\n            bVar4 = *DAT_00089978;\n            *DAT_00089978 = 0;\n            uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            FUN_0002bd60(uVar12,local_44);\n            *DAT_00089978 = bVar4;\n            DAT_00089978 = (byte *)uVar7;\n            return false;\n          }" if (parenthesized_expression "(lVar18 != 1)" ( (binary_expression "lVar18 != 1" identifier != number_literal) )) (compound_statement "{\nLAB_0004760c:\n            bVar4 = *DAT_00089978;\n            *DAT_00089978 = 0;\n            uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            FUN_0002bd60(uVar12,local_44);\n            *DAT_00089978 = bVar4;\n            DAT_00089978 = (byte *)uVar7;\n            return false;\n          }" { (labeled_statement "LAB_0004760c:\n            bVar4 = *DAT_00089978;" statement_identifier : (expression_statement "bVar4 = *DAT_00089978;" (assignment_expression "bVar4 = *DAT_00089978" identifier = (pointer_expression "*DAT_00089978" * identifier)) ;)) (expression_statement "*DAT_00089978 = 0;" (assignment_expression "*DAT_00089978 = 0" (pointer_expression "*DAT_00089978" * identifier) = number_literal) ;) (expression_statement "uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);" (assignment_expression "uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5)" identifier = (call_expression "dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5)" identifier (argument_list "(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5)" ( number_literal , (string_literal ""expecting scale factor of 1, 2, 4, or 8: got `%s\'"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_0002bd60(uVar12,local_44);" (call_expression "FUN_0002bd60(uVar12,local_44)" identifier (argument_list "(uVar12,local_44)" ( identifier , identifier ))) ;) (expression_statement "*DAT_00089978 = bVar4;" (assignment_expression "*DAT_00089978 = bVar4" (pointer_expression "*DAT_00089978" * identifier) = identifier) ;) (expression_statement "DAT_00089978 = (byte *)uVar7;" (assignment_expression "DAT_00089978 = (byte *)uVar7" identifier = (cast_expression "(byte *)uVar7" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (return_statement "return false;" return false ;) })) (expression_statement "DAT_0008907c = 0;" (assignment_expression "DAT_0008907c = 0" identifier = number_literal) ;) }))) (if_statement "if (DAT_00089978 == (byte *)0x0) {\n          DAT_00089978 = (byte *)uVar7;\n          return false;\n        }" if (parenthesized_expression "(DAT_00089978 == (byte *)0x0)" ( (binary_expression "DAT_00089978 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          DAT_00089978 = (byte *)uVar7;\n          return false;\n        }" { (expression_statement "DAT_00089978 = (byte *)uVar7;" (assignment_expression "DAT_00089978 = (byte *)uVar7" identifier = (cast_expression "(byte *)uVar7" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (return_statement "return false;" return false ;) })) (expression_statement "bVar4 = *DAT_00089978;" (assignment_expression "bVar4 = *DAT_00089978" identifier = (pointer_expression "*DAT_00089978" * identifier)) ;) (if_statement "if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n        }" if (parenthesized_expression "(bVar4 == 0x20)" ( (binary_expression "bVar4 == 0x20" identifier == number_literal) )) (compound_statement "{\n          bVar4 = DAT_00089978[1];\n        }" { (expression_statement "bVar4 = DAT_00089978[1];" (assignment_expression "bVar4 = DAT_00089978[1]" identifier = (subscript_expression "DAT_00089978[1]" identifier [ number_literal ])) ;) })) (expression_statement "DAT_00089978 = (byte *)uVar7;" (assignment_expression "DAT_00089978 = (byte *)uVar7" identifier = (cast_expression "(byte *)uVar7" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (bVar4 != 0x29) {\n          pcVar13 = "expecting `)\' after scale factor in `%s\'";\nLAB_00047255:\n          uVar7 = dcgettext(0,pcVar13,5);\n          FUN_0002bd60(uVar7,param_1);\n          return false;\n        }" if (parenthesized_expression "(bVar4 != 0x29)" ( (binary_expression "bVar4 != 0x29" identifier != number_literal) )) (compound_statement "{\n          pcVar13 = "expecting `)\' after scale factor in `%s\'";\nLAB_00047255:\n          uVar7 = dcgettext(0,pcVar13,5);\n          FUN_0002bd60(uVar7,param_1);\n          return false;\n        }" { (expression_statement "pcVar13 = "expecting `)\' after scale factor in `%s\'";" (assignment_expression "pcVar13 = "expecting `)\' after scale factor in `%s\'"" identifier = (string_literal ""expecting `)\' after scale factor in `%s\'"" " string_content escape_sequence string_content escape_sequence ")) ;) (labeled_statement "LAB_00047255:\n          uVar7 = dcgettext(0,pcVar13,5);" statement_identifier : (expression_statement "uVar7 = dcgettext(0,pcVar13,5);" (assignment_expression "uVar7 = dcgettext(0,pcVar13,5)" identifier = (call_expression "dcgettext(0,pcVar13,5)" identifier (argument_list "(0,pcVar13,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "FUN_0002bd60(uVar7,param_1);" (call_expression "FUN_0002bd60(uVar7,param_1)" identifier (argument_list "(uVar7,param_1)" ( identifier , identifier ))) ;) (return_statement "return false;" return false ;) })) (break_statement "break;" break ;) })) (labeled_statement "LAB_000471eb:\n      pbVar10 = pbVar15;" statement_identifier : (expression_statement "pbVar10 = pbVar15;" (assignment_expression "pbVar10 = pbVar15" identifier = identifier) ;)) (expression_statement "bVar4 = pbVar10[-1];" (assignment_expression "bVar4 = pbVar10[-1]" identifier = (subscript_expression "pbVar10[-1]" identifier [ number_literal ])) ;) (expression_statement "pbVar15 = pbVar10 + -1;" (assignment_expression "pbVar15 = pbVar10 + -1" identifier = (binary_expression "pbVar10 + -1" identifier + number_literal)) ;) (if_statement "if (bVar4 != 0x29) goto LAB_000471e0;" if (parenthesized_expression "(bVar4 != 0x29)" ( (binary_expression "bVar4 != 0x29" identifier != number_literal) )) (goto_statement "goto LAB_000471e0;" goto statement_identifier ;)) (labeled_statement "LAB_000471f8:\n      iVar9 = iVar9 + 1;" statement_identifier : (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "local_44 = pbVar15;" (assignment_expression "local_44 = pbVar15" identifier = identifier) ;) (if_statement "if (pbVar16 == local_44) goto LAB_00046e80;" if (parenthesized_expression "(pbVar16 == local_44)" ( (binary_expression "pbVar16 == local_44" identifier == identifier) )) (goto_statement "goto LAB_00046e80;" goto statement_identifier ;)) (labeled_statement "LAB_00046cd4:\n  iVar6 = DAT_00089004;" statement_identifier : (expression_statement "iVar6 = DAT_00089004;" (assignment_expression "iVar6 = DAT_00089004" identifier = identifier) ;)) (expression_statement "iVar9 = DAT_00080558;" (assignment_expression "iVar9 = DAT_00080558" identifier = identifier) ;) (if_statement "if (DAT_00089004 == 2) {\n    pcVar13 = "at most %d displacement operands are allowed";\nLAB_00047443:\n    uVar7 = dcgettext(0,pcVar13,5);\n    FUN_0002bd60(uVar7,2);\n    return false;\n  }" if (parenthesized_expression "(DAT_00089004 == 2)" ( (binary_expression "DAT_00089004 == 2" identifier == number_literal) )) (compound_statement "{\n    pcVar13 = "at most %d displacement operands are allowed";\nLAB_00047443:\n    uVar7 = dcgettext(0,pcVar13,5);\n    FUN_0002bd60(uVar7,2);\n    return false;\n  }" { (expression_statement "pcVar13 = "at most %d displacement operands are allowed";" (assignment_expression "pcVar13 = "at most %d displacement operands are allowed"" identifier = (string_literal ""at most %d displacement operands are allowed"" " string_content ")) ;) (labeled_statement "LAB_00047443:\n    uVar7 = dcgettext(0,pcVar13,5);" statement_identifier : (expression_statement "uVar7 = dcgettext(0,pcVar13,5);" (assignment_expression "uVar7 = dcgettext(0,pcVar13,5)" identifier = (call_expression "dcgettext(0,pcVar13,5)" identifier (argument_list "(0,pcVar13,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "FUN_0002bd60(uVar7,2);" (call_expression "FUN_0002bd60(uVar7,2)" identifier (argument_list "(uVar7,2)" ( identifier , number_literal ))) ;) (return_statement "return false;" return false ;) })) (if_statement "if (((*(byte *)((int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8 + 3) & 2) == 0) &&\n     ((*(byte *)(*DAT_00088f88 + 0x24) & 0x60) != 0)) {\n    if (DAT_00088f0c == 2) {\n      if ((DAT_00089093 != '\0') || (local_48 = 0xc0000, DAT_00088ff8 == 'w')) goto LAB_00046d4f;\n    }\n    else {\n      bVar17 = true;\n      if (DAT_00089093 == '\0') {\n        cVar5 = 'l';\n        if (DAT_00088f0c != 1) {\n          cVar5 = 'w';\n        }\n        bVar17 = DAT_00088ff8 == cVar5;\n      }\n      local_48 = 0x40000;\n      if ((DAT_00088f0c == 1) != bVar17) {\nLAB_00046d4f:\n        local_48 = 0x20000;\n      }\n    }\n  }\n  else {\n    local_48 = 0x40000;\n    if (DAT_00088f0c == 2) {\n      local_48 = 0x1c0000;\n      if (DAT_00089092 != '\0') {\n        local_48 = 0x40000;\n      }\n    }\n    else if ((DAT_00089092 != '\0') != (DAT_00088f0c == 1)) goto LAB_00046d4f;\n  }" if (parenthesized_expression "(((*(byte *)((int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8 + 3) & 2) == 0) &&\n     ((*(byte *)(*DAT_00088f88 + 0x24) & 0x60) != 0))" ( (binary_expression "((*(byte *)((int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8 + 3) & 2) == 0) &&\n     ((*(byte *)(*DAT_00088f88 + 0x24) & 0x60) != 0)" (parenthesized_expression "((*(byte *)((int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8 + 3) & 2) == 0)" ( (binary_expression "(*(byte *)((int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8 + 3) & 2) == 0" (parenthesized_expression "(*(byte *)((int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8 + 3) & 2)" ( (binary_expression "*(byte *)((int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8 + 3) & 2" (pointer_expression "*(byte *)((int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8 + 3)" * (cast_expression "(byte *)((int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8 + 3)" ( (binary_expression "(int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8 + 3" (binary_expression "(int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8" (cast_expression "(int)&DAT_00088fa0" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&DAT_00088fa0" & identifier)) + (binary_expression "(DAT_00080558 + 0xe) * 8" (parenthesized_expression "(DAT_00080558 + 0xe)" ( (binary_expression "DAT_00080558 + 0xe" identifier + number_literal) )) * number_literal)) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "((*(byte *)(*DAT_00088f88 + 0x24) & 0x60) != 0)" ( (binary_expression "(*(byte *)(*DAT_00088f88 + 0x24) & 0x60) != 0" (parenthesized_expression "(*(byte *)(*DAT_00088f88 + 0x24) & 0x60)" ( (binary_expression "*(byte *)(*DAT_00088f88 + 0x24) & 0x60" (pointer_expression "*(byte *)(*DAT_00088f88 + 0x24)" * (cast_expression "(byte *)(*DAT_00088f88 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*DAT_00088f88 + 0x24)" ( (binary_expression "*DAT_00088f88 + 0x24" (pointer_expression "*DAT_00088f88" * identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    if (DAT_00088f0c == 2) {\n      if ((DAT_00089093 != '\0') || (local_48 = 0xc0000, DAT_00088ff8 == 'w')) goto LAB_00046d4f;\n    }\n    else {\n      bVar17 = true;\n      if (DAT_00089093 == '\0') {\n        cVar5 = 'l';\n        if (DAT_00088f0c != 1) {\n          cVar5 = 'w';\n        }\n        bVar17 = DAT_00088ff8 == cVar5;\n      }\n      local_48 = 0x40000;\n      if ((DAT_00088f0c == 1) != bVar17) {\nLAB_00046d4f:\n        local_48 = 0x20000;\n      }\n    }\n  }" { (if_statement "if (DAT_00088f0c == 2) {\n      if ((DAT_00089093 != '\0') || (local_48 = 0xc0000, DAT_00088ff8 == 'w')) goto LAB_00046d4f;\n    }\n    else {\n      bVar17 = true;\n      if (DAT_00089093 == '\0') {\n        cVar5 = 'l';\n        if (DAT_00088f0c != 1) {\n          cVar5 = 'w';\n        }\n        bVar17 = DAT_00088ff8 == cVar5;\n      }\n      local_48 = 0x40000;\n      if ((DAT_00088f0c == 1) != bVar17) {\nLAB_00046d4f:\n        local_48 = 0x20000;\n      }\n    }" if (parenthesized_expression "(DAT_00088f0c == 2)" ( (binary_expression "DAT_00088f0c == 2" identifier == number_literal) )) (compound_statement "{\n      if ((DAT_00089093 != '\0') || (local_48 = 0xc0000, DAT_00088ff8 == 'w')) goto LAB_00046d4f;\n    }" { (if_statement "if ((DAT_00089093 != '\0') || (local_48 = 0xc0000, DAT_00088ff8 == 'w')) goto LAB_00046d4f;" if (parenthesized_expression "((DAT_00089093 != '\0') || (local_48 = 0xc0000, DAT_00088ff8 == 'w'))" ( (binary_expression "(DAT_00089093 != '\0') || (local_48 = 0xc0000, DAT_00088ff8 == 'w')" (parenthesized_expression "(DAT_00089093 != '\0')" ( (binary_expression "DAT_00089093 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(local_48 = 0xc0000, DAT_00088ff8 == 'w')" ( (comma_expression "local_48 = 0xc0000, DAT_00088ff8 == 'w'" (assignment_expression "local_48 = 0xc0000" identifier = number_literal) , (binary_expression "DAT_00088ff8 == 'w'" identifier == (char_literal "'w'" ' character '))) ))) )) (goto_statement "goto LAB_00046d4f;" goto statement_identifier ;)) }) (else_clause "else {\n      bVar17 = true;\n      if (DAT_00089093 == '\0') {\n        cVar5 = 'l';\n        if (DAT_00088f0c != 1) {\n          cVar5 = 'w';\n        }\n        bVar17 = DAT_00088ff8 == cVar5;\n      }\n      local_48 = 0x40000;\n      if ((DAT_00088f0c == 1) != bVar17) {\nLAB_00046d4f:\n        local_48 = 0x20000;\n      }\n    }" else (compound_statement "{\n      bVar17 = true;\n      if (DAT_00089093 == '\0') {\n        cVar5 = 'l';\n        if (DAT_00088f0c != 1) {\n          cVar5 = 'w';\n        }\n        bVar17 = DAT_00088ff8 == cVar5;\n      }\n      local_48 = 0x40000;\n      if ((DAT_00088f0c == 1) != bVar17) {\nLAB_00046d4f:\n        local_48 = 0x20000;\n      }\n    }" { (expression_statement "bVar17 = true;" (assignment_expression "bVar17 = true" identifier = true) ;) (if_statement "if (DAT_00089093 == '\0') {\n        cVar5 = 'l';\n        if (DAT_00088f0c != 1) {\n          cVar5 = 'w';\n        }\n        bVar17 = DAT_00088ff8 == cVar5;\n      }" if (parenthesized_expression "(DAT_00089093 == '\0')" ( (binary_expression "DAT_00089093 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        cVar5 = 'l';\n        if (DAT_00088f0c != 1) {\n          cVar5 = 'w';\n        }\n        bVar17 = DAT_00088ff8 == cVar5;\n      }" { (expression_statement "cVar5 = 'l';" (assignment_expression "cVar5 = 'l'" identifier = (char_literal "'l'" ' character ')) ;) (if_statement "if (DAT_00088f0c != 1) {\n          cVar5 = 'w';\n        }" if (parenthesized_expression "(DAT_00088f0c != 1)" ( (binary_expression "DAT_00088f0c != 1" identifier != number_literal) )) (compound_statement "{\n          cVar5 = 'w';\n        }" { (expression_statement "cVar5 = 'w';" (assignment_expression "cVar5 = 'w'" identifier = (char_literal "'w'" ' character ')) ;) })) (expression_statement "bVar17 = DAT_00088ff8 == cVar5;" (assignment_expression "bVar17 = DAT_00088ff8 == cVar5" identifier = (binary_expression "DAT_00088ff8 == cVar5" identifier == identifier)) ;) })) (expression_statement "local_48 = 0x40000;" (assignment_expression "local_48 = 0x40000" identifier = number_literal) ;) (if_statement "if ((DAT_00088f0c == 1) != bVar17) {\nLAB_00046d4f:\n        local_48 = 0x20000;\n      }" if (parenthesized_expression "((DAT_00088f0c == 1) != bVar17)" ( (binary_expression "(DAT_00088f0c == 1) != bVar17" (parenthesized_expression "(DAT_00088f0c == 1)" ( (binary_expression "DAT_00088f0c == 1" identifier == number_literal) )) != identifier) )) (compound_statement "{\nLAB_00046d4f:\n        local_48 = 0x20000;\n      }" { (labeled_statement "LAB_00046d4f:\n        local_48 = 0x20000;" statement_identifier : (expression_statement "local_48 = 0x20000;" (assignment_expression "local_48 = 0x20000" identifier = number_literal) ;)) })) }))) }) (else_clause "else {\n    local_48 = 0x40000;\n    if (DAT_00088f0c == 2) {\n      local_48 = 0x1c0000;\n      if (DAT_00089092 != '\0') {\n        local_48 = 0x40000;\n      }\n    }\n    else if ((DAT_00089092 != '\0') != (DAT_00088f0c == 1)) goto LAB_00046d4f;\n  }" else (compound_statement "{\n    local_48 = 0x40000;\n    if (DAT_00088f0c == 2) {\n      local_48 = 0x1c0000;\n      if (DAT_00089092 != '\0') {\n        local_48 = 0x40000;\n      }\n    }\n    else if ((DAT_00089092 != '\0') != (DAT_00088f0c == 1)) goto LAB_00046d4f;\n  }" { (expression_statement "local_48 = 0x40000;" (assignment_expression "local_48 = 0x40000" identifier = number_literal) ;) (if_statement "if (DAT_00088f0c == 2) {\n      local_48 = 0x1c0000;\n      if (DAT_00089092 != '\0') {\n        local_48 = 0x40000;\n      }\n    }\n    else if ((DAT_00089092 != '\0') != (DAT_00088f0c == 1)) goto LAB_00046d4f;" if (parenthesized_expression "(DAT_00088f0c == 2)" ( (binary_expression "DAT_00088f0c == 2" identifier == number_literal) )) (compound_statement "{\n      local_48 = 0x1c0000;\n      if (DAT_00089092 != '\0') {\n        local_48 = 0x40000;\n      }\n    }" { (expression_statement "local_48 = 0x1c0000;" (assignment_expression "local_48 = 0x1c0000" identifier = number_literal) ;) (if_statement "if (DAT_00089092 != '\0') {\n        local_48 = 0x40000;\n      }" if (parenthesized_expression "(DAT_00089092 != '\0')" ( (binary_expression "DAT_00089092 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        local_48 = 0x40000;\n      }" { (expression_statement "local_48 = 0x40000;" (assignment_expression "local_48 = 0x40000" identifier = number_literal) ;) })) }) (else_clause "else if ((DAT_00089092 != '\0') != (DAT_00088f0c == 1)) goto LAB_00046d4f;" else (if_statement "if ((DAT_00089092 != '\0') != (DAT_00088f0c == 1)) goto LAB_00046d4f;" if (parenthesized_expression "((DAT_00089092 != '\0') != (DAT_00088f0c == 1))" ( (binary_expression "(DAT_00089092 != '\0') != (DAT_00088f0c == 1)" (parenthesized_expression "(DAT_00089092 != '\0')" ( (binary_expression "DAT_00089092 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) != (parenthesized_expression "(DAT_00088f0c == 1)" ( (binary_expression "DAT_00088f0c == 1" identifier == number_literal) ))) )) (goto_statement "goto LAB_00046d4f;" goto statement_identifier ;)))) }))) (expression_statement "(&DAT_00088fa0)[(DAT_00080558 + 0xe) * 2] = (&DAT_00088fa0)[(DAT_00080558 + 0xe) * 2] | local_48;" (assignment_expression "(&DAT_00088fa0)[(DAT_00080558 + 0xe) * 2] = (&DAT_00088fa0)[(DAT_00080558 + 0xe) * 2] | local_48" (subscript_expression "(&DAT_00088fa0)[(DAT_00080558 + 0xe) * 2]" (parenthesized_expression "(&DAT_00088fa0)" ( (pointer_expression "&DAT_00088fa0" & identifier) )) [ (binary_expression "(DAT_00080558 + 0xe) * 2" (parenthesized_expression "(DAT_00080558 + 0xe)" ( (binary_expression "DAT_00080558 + 0xe" identifier + number_literal) )) * number_literal) ]) = (binary_expression "(&DAT_00088fa0)[(DAT_00080558 + 0xe) * 2] | local_48" (subscript_expression "(&DAT_00088fa0)[(DAT_00080558 + 0xe) * 2]" (parenthesized_expression "(&DAT_00088fa0)" ( (pointer_expression "&DAT_00088fa0" & identifier) )) [ (binary_expression "(DAT_00080558 + 0xe) * 2" (parenthesized_expression "(DAT_00080558 + 0xe)" ( (binary_expression "DAT_00080558 + 0xe" identifier + number_literal) )) * number_literal) ]) | identifier)) ;) (expression_statement "iVar1 = DAT_00089004 * 0x14;" (assignment_expression "iVar1 = DAT_00089004 * 0x14" identifier = (binary_expression "DAT_00089004 * 0x14" identifier * number_literal)) ;) (expression_statement "(&DAT_00089038)[iVar9] = &DAT_00088f60 + iVar1;" (assignment_expression "(&DAT_00089038)[iVar9] = &DAT_00088f60 + iVar1" (subscript_expression "(&DAT_00089038)[iVar9]" (parenthesized_expression "(&DAT_00089038)" ( (pointer_expression "&DAT_00089038" & identifier) )) [ identifier ]) = (binary_expression "&DAT_00088f60 + iVar1" (pointer_expression "&DAT_00088f60" & identifier) + identifier)) ;) (expression_statement "uVar7 = DAT_00089978;" (assignment_expression "uVar7 = DAT_00089978" identifier = identifier) ;) (expression_statement "DAT_00089004 = DAT_00089004 + 1;" (assignment_expression "DAT_00089004 = DAT_00089004 + 1" identifier = (binary_expression "DAT_00089004 + 1" identifier + number_literal)) ;) (expression_statement "pbVar10 = DAT_000890fc + 1;" (assignment_expression "pbVar10 = DAT_000890fc + 1" identifier = (binary_expression "DAT_000890fc + 1" identifier + number_literal)) ;) (expression_statement "DAT_00089978 = pbVar16;" (assignment_expression "DAT_00089978 = pbVar16" identifier = identifier) ;) (expression_statement "*DAT_000890fc = *local_44;" (assignment_expression "*DAT_000890fc = *local_44" (pointer_expression "*DAT_000890fc" * identifier) = (pointer_expression "*local_44" * identifier)) ;) (expression_statement "DAT_000890fc = pbVar10;" (assignment_expression "DAT_000890fc = pbVar10" identifier = identifier) ;) (expression_statement "*local_44 = 0;" (assignment_expression "*local_44 = 0" (pointer_expression "*local_44" * identifier) = number_literal) ;) (expression_statement "pbVar16 = (byte *)FUN_000453b0();" (assignment_expression "pbVar16 = (byte *)FUN_000453b0()" identifier = (cast_expression "(byte *)FUN_000453b0()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000453b0()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (pbVar16 != (byte *)0x0) {\n    DAT_00089978 = pbVar16;\n  }" if (parenthesized_expression "(pbVar16 != (byte *)0x0)" ( (binary_expression "pbVar16 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    DAT_00089978 = pbVar16;\n  }" { (expression_statement "DAT_00089978 = pbVar16;" (assignment_expression "DAT_00089978 = pbVar16" identifier = identifier) ;) })) (expression_statement "FUN_000221d0(0,&DAT_00088f60 + iVar1,1);" (call_expression "FUN_000221d0(0,&DAT_00088f60 + iVar1,1)" identifier (argument_list "(0,&DAT_00088f60 + iVar1,1)" ( number_literal , (binary_expression "&DAT_00088f60 + iVar1" (pointer_expression "&DAT_00088f60" & identifier) + identifier) , number_literal ))) ;) (expression_statement "bVar4 = *DAT_00089978;" (assignment_expression "bVar4 = *DAT_00089978" identifier = (pointer_expression "*DAT_00089978" * identifier)) ;) (if_statement "if (bVar4 == 0x20) {\n    bVar4 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }" if (parenthesized_expression "(bVar4 == 0x20)" ( (binary_expression "bVar4 == 0x20" identifier == number_literal) )) (compound_statement "{\n    bVar4 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }" { (expression_statement "bVar4 = DAT_00089978[1];" (assignment_expression "bVar4 = DAT_00089978[1]" identifier = (subscript_expression "DAT_00089978[1]" identifier [ number_literal ])) ;) (expression_statement "DAT_00089978 = DAT_00089978 + 1;" (assignment_expression "DAT_00089978 = DAT_00089978 + 1" identifier = (binary_expression "DAT_00089978 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar10 = DAT_00089978;" (assignment_expression "pbVar10 = DAT_00089978" identifier = identifier) ;) (if_statement "if (bVar4 != 0) {\n    uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n    FUN_0002bd60(uVar12,pbVar10);\n  }" if (parenthesized_expression "(bVar4 != 0)" ( (binary_expression "bVar4 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n    FUN_0002bd60(uVar12,pbVar10);\n  }" { (expression_statement "uVar12 = dcgettext(0,"junk `%s\' after expression",5);" (assignment_expression "uVar12 = dcgettext(0,"junk `%s\' after expression",5)" identifier = (call_expression "dcgettext(0,"junk `%s\' after expression",5)" identifier (argument_list "(0,"junk `%s\' after expression",5)" ( number_literal , (string_literal ""junk `%s\' after expression"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "FUN_0002bd60(uVar12,pbVar10);" (call_expression "FUN_0002bd60(uVar12,pbVar10)" identifier (argument_list "(uVar12,pbVar10)" ( identifier , identifier ))) ;) })) (expression_statement "DAT_00089978 = (byte *)uVar7;" (assignment_expression "DAT_00089978 = (byte *)uVar7" identifier = (cast_expression "(byte *)uVar7" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (pbVar16 != (byte *)0x0) {\n    free(pbVar16);\n    if (((&DAT_00088f70)[iVar6 * 0x14] == '\x02') || ((&DAT_00088f70)[iVar6 * 0x14] == '\x05')) {\n      (&DAT_00088f70)[iVar6 * 0x14] = 0;\n    }\n  }" if (parenthesized_expression "(pbVar16 != (byte *)0x0)" ( (binary_expression "pbVar16 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    free(pbVar16);\n    if (((&DAT_00088f70)[iVar6 * 0x14] == '\x02') || ((&DAT_00088f70)[iVar6 * 0x14] == '\x05')) {\n      (&DAT_00088f70)[iVar6 * 0x14] = 0;\n    }\n  }" { (expression_statement "free(pbVar16);" (call_expression "free(pbVar16)" identifier (argument_list "(pbVar16)" ( identifier ))) ;) (if_statement "if (((&DAT_00088f70)[iVar6 * 0x14] == '\x02') || ((&DAT_00088f70)[iVar6 * 0x14] == '\x05')) {\n      (&DAT_00088f70)[iVar6 * 0x14] = 0;\n    }" if (parenthesized_expression "(((&DAT_00088f70)[iVar6 * 0x14] == '\x02') || ((&DAT_00088f70)[iVar6 * 0x14] == '\x05'))" ( (binary_expression "((&DAT_00088f70)[iVar6 * 0x14] == '\x02') || ((&DAT_00088f70)[iVar6 * 0x14] == '\x05')" (parenthesized_expression "((&DAT_00088f70)[iVar6 * 0x14] == '\x02')" ( (binary_expression "(&DAT_00088f70)[iVar6 * 0x14] == '\x02'" (subscript_expression "(&DAT_00088f70)[iVar6 * 0x14]" (parenthesized_expression "(&DAT_00088f70)" ( (pointer_expression "&DAT_00088f70" & identifier) )) [ (binary_expression "iVar6 * 0x14" identifier * number_literal) ]) == (char_literal "'\x02'" ' escape_sequence ')) )) || (parenthesized_expression "((&DAT_00088f70)[iVar6 * 0x14] == '\x05')" ( (binary_expression "(&DAT_00088f70)[iVar6 * 0x14] == '\x05'" (subscript_expression "(&DAT_00088f70)[iVar6 * 0x14]" (parenthesized_expression "(&DAT_00088f70)" ( (pointer_expression "&DAT_00088f70" & identifier) )) [ (binary_expression "iVar6 * 0x14" identifier * number_literal) ]) == (char_literal "'\x05'" ' escape_sequence ')) ))) )) (compound_statement "{\n      (&DAT_00088f70)[iVar6 * 0x14] = 0;\n    }" { (expression_statement "(&DAT_00088f70)[iVar6 * 0x14] = 0;" (assignment_expression "(&DAT_00088f70)[iVar6 * 0x14] = 0" (subscript_expression "(&DAT_00088f70)[iVar6 * 0x14]" (parenthesized_expression "(&DAT_00088f70)" ( (pointer_expression "&DAT_00088f70" & identifier) )) [ (binary_expression "iVar6 * 0x14" identifier * number_literal) ]) = number_literal) ;) })) })) (expression_statement "iVar9 = FUN_000466b0();" (assignment_expression "iVar9 = FUN_000466b0()" identifier = (call_expression "FUN_000466b0()" identifier (argument_list "()" ( )))) ;) (expression_statement "pbVar16 = DAT_000890fc + -1;" (assignment_expression "pbVar16 = DAT_000890fc + -1" identifier = (binary_expression "DAT_000890fc + -1" identifier + number_literal)) ;) (expression_statement "DAT_000890fc = DAT_000890fc + -1;" (assignment_expression "DAT_000890fc = DAT_000890fc + -1" identifier = (binary_expression "DAT_000890fc + -1" identifier + number_literal)) ;) (expression_statement "*local_44 = *pbVar16;" (assignment_expression "*local_44 = *pbVar16" (pointer_expression "*local_44" * identifier) = (pointer_expression "*pbVar16" * identifier)) ;) (if_statement "if (iVar9 == 0) {\n    return false;\n  }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n    return false;\n  }" { (return_statement "return false;" return false ;) })) (labeled_statement "LAB_00046e80:\n  if (((((DAT_00089074 != 0) && (*(int *)(DAT_00089074 + 8) == DAT_000654e4)) &&\n       (*(int *)(DAT_00089074 + 4) == DAT_000654e0)) && ((DAT_00089078 == 0 && (DAT_0008907c == 0)))\n      ) && ((*(int *)(&DAT_00089080 + DAT_00089008 * 4) == 0 &&\n            (iVar9 = DAT_00080558 + 0xe, (*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f) == 0\n            )))) {\n    (&DAT_00088fa0)[iVar9 * 2] = 0;\n    *(undefined4 *)(&DAT_00088fa4 + iVar9 * 8) = 0;\n    pbVar16 = (byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2);\n    *pbVar16 = *pbVar16 | 0x80;\n    return true;\n  }" statement_identifier : (if_statement "if (((((DAT_00089074 != 0) && (*(int *)(DAT_00089074 + 8) == DAT_000654e4)) &&\n       (*(int *)(DAT_00089074 + 4) == DAT_000654e0)) && ((DAT_00089078 == 0 && (DAT_0008907c == 0)))\n      ) && ((*(int *)(&DAT_00089080 + DAT_00089008 * 4) == 0 &&\n            (iVar9 = DAT_00080558 + 0xe, (*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f) == 0\n            )))) {\n    (&DAT_00088fa0)[iVar9 * 2] = 0;\n    *(undefined4 *)(&DAT_00088fa4 + iVar9 * 8) = 0;\n    pbVar16 = (byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2);\n    *pbVar16 = *pbVar16 | 0x80;\n    return true;\n  }" if (parenthesized_expression "(((((DAT_00089074 != 0) && (*(int *)(DAT_00089074 + 8) == DAT_000654e4)) &&\n       (*(int *)(DAT_00089074 + 4) == DAT_000654e0)) && ((DAT_00089078 == 0 && (DAT_0008907c == 0)))\n      ) && ((*(int *)(&DAT_00089080 + DAT_00089008 * 4) == 0 &&\n            (iVar9 = DAT_00080558 + 0xe, (*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f) == 0\n            ))))" ( (binary_expression "((((DAT_00089074 != 0) && (*(int *)(DAT_00089074 + 8) == DAT_000654e4)) &&\n       (*(int *)(DAT_00089074 + 4) == DAT_000654e0)) && ((DAT_00089078 == 0 && (DAT_0008907c == 0)))\n      ) && ((*(int *)(&DAT_00089080 + DAT_00089008 * 4) == 0 &&\n            (iVar9 = DAT_00080558 + 0xe, (*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f) == 0\n            )))" (parenthesized_expression "((((DAT_00089074 != 0) && (*(int *)(DAT_00089074 + 8) == DAT_000654e4)) &&\n       (*(int *)(DAT_00089074 + 4) == DAT_000654e0)) && ((DAT_00089078 == 0 && (DAT_0008907c == 0)))\n      )" ( (binary_expression "(((DAT_00089074 != 0) && (*(int *)(DAT_00089074 + 8) == DAT_000654e4)) &&\n       (*(int *)(DAT_00089074 + 4) == DAT_000654e0)) && ((DAT_00089078 == 0 && (DAT_0008907c == 0)))" (parenthesized_expression "(((DAT_00089074 != 0) && (*(int *)(DAT_00089074 + 8) == DAT_000654e4)) &&\n       (*(int *)(DAT_00089074 + 4) == DAT_000654e0))" ( (binary_expression "((DAT_00089074 != 0) && (*(int *)(DAT_00089074 + 8) == DAT_000654e4)) &&\n       (*(int *)(DAT_00089074 + 4) == DAT_000654e0)" (parenthesized_expression "((DAT_00089074 != 0) && (*(int *)(DAT_00089074 + 8) == DAT_000654e4))" ( (binary_expression "(DAT_00089074 != 0) && (*(int *)(DAT_00089074 + 8) == DAT_000654e4)" (parenthesized_expression "(DAT_00089074 != 0)" ( (binary_expression "DAT_00089074 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(int *)(DAT_00089074 + 8) == DAT_000654e4)" ( (binary_expression "*(int *)(DAT_00089074 + 8) == DAT_000654e4" (pointer_expression "*(int *)(DAT_00089074 + 8)" * (cast_expression "(int *)(DAT_00089074 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00089074 + 8)" ( (binary_expression "DAT_00089074 + 8" identifier + number_literal) )))) == identifier) ))) )) && (parenthesized_expression "(*(int *)(DAT_00089074 + 4) == DAT_000654e0)" ( (binary_expression "*(int *)(DAT_00089074 + 4) == DAT_000654e0" (pointer_expression "*(int *)(DAT_00089074 + 4)" * (cast_expression "(int *)(DAT_00089074 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00089074 + 4)" ( (binary_expression "DAT_00089074 + 4" identifier + number_literal) )))) == identifier) ))) )) && (parenthesized_expression "((DAT_00089078 == 0 && (DAT_0008907c == 0)))" ( (parenthesized_expression "(DAT_00089078 == 0 && (DAT_0008907c == 0))" ( (binary_expression "DAT_00089078 == 0 && (DAT_0008907c == 0)" (binary_expression "DAT_00089078 == 0" identifier == number_literal) && (parenthesized_expression "(DAT_0008907c == 0)" ( (binary_expression "DAT_0008907c == 0" identifier == number_literal) ))) )) ))) )) && (parenthesized_expression "((*(int *)(&DAT_00089080 + DAT_00089008 * 4) == 0 &&\n            (iVar9 = DAT_00080558 + 0xe, (*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f) == 0\n            )))" ( (parenthesized_expression "(*(int *)(&DAT_00089080 + DAT_00089008 * 4) == 0 &&\n            (iVar9 = DAT_00080558 + 0xe, (*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f) == 0\n            ))" ( (binary_expression "*(int *)(&DAT_00089080 + DAT_00089008 * 4) == 0 &&\n            (iVar9 = DAT_00080558 + 0xe, (*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f) == 0\n            )" (binary_expression "*(int *)(&DAT_00089080 + DAT_00089008 * 4) == 0" (pointer_expression "*(int *)(&DAT_00089080 + DAT_00089008 * 4)" * (cast_expression "(int *)(&DAT_00089080 + DAT_00089008 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00089080 + DAT_00089008 * 4)" ( (binary_expression "&DAT_00089080 + DAT_00089008 * 4" (pointer_expression "&DAT_00089080" & identifier) + (binary_expression "DAT_00089008 * 4" identifier * number_literal)) )))) == number_literal) && (parenthesized_expression "(iVar9 = DAT_00080558 + 0xe, (*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f) == 0\n            )" ( (comma_expression "iVar9 = DAT_00080558 + 0xe, (*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f) == 0" (assignment_expression "iVar9 = DAT_00080558 + 0xe" identifier = (binary_expression "DAT_00080558 + 0xe" identifier + number_literal)) , (binary_expression "(*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f) == 0" (parenthesized_expression "(*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f)" ( (binary_expression "*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f" (pointer_expression "*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2)" * (cast_expression "(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&DAT_00088fa0 + iVar9 * 8 + 2)" ( (binary_expression "(int)&DAT_00088fa0 + iVar9 * 8 + 2" (binary_expression "(int)&DAT_00088fa0 + iVar9 * 8" (cast_expression "(int)&DAT_00088fa0" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&DAT_00088fa0" & identifier)) + (binary_expression "iVar9 * 8" identifier * number_literal)) + number_literal) )))) & number_literal) )) == number_literal)) ))) )) ))) )) (compound_statement "{\n    (&DAT_00088fa0)[iVar9 * 2] = 0;\n    *(undefined4 *)(&DAT_00088fa4 + iVar9 * 8) = 0;\n    pbVar16 = (byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2);\n    *pbVar16 = *pbVar16 | 0x80;\n    return true;\n  }" { (expression_statement "(&DAT_00088fa0)[iVar9 * 2] = 0;" (assignment_expression "(&DAT_00088fa0)[iVar9 * 2] = 0" (subscript_expression "(&DAT_00088fa0)[iVar9 * 2]" (parenthesized_expression "(&DAT_00088fa0)" ( (pointer_expression "&DAT_00088fa0" & identifier) )) [ (binary_expression "iVar9 * 2" identifier * number_literal) ]) = number_literal) ;) (expression_statement "*(undefined4 *)(&DAT_00088fa4 + iVar9 * 8) = 0;" (assignment_expression "*(undefined4 *)(&DAT_00088fa4 + iVar9 * 8) = 0" (pointer_expression "*(undefined4 *)(&DAT_00088fa4 + iVar9 * 8)" * (cast_expression "(undefined4 *)(&DAT_00088fa4 + iVar9 * 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00088fa4 + iVar9 * 8)" ( (binary_expression "&DAT_00088fa4 + iVar9 * 8" (pointer_expression "&DAT_00088fa4" & identifier) + (binary_expression "iVar9 * 8" identifier * number_literal)) )))) = number_literal) ;) (expression_statement "pbVar16 = (byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2);" (assignment_expression "pbVar16 = (byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2)" identifier = (cast_expression "(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&DAT_00088fa0 + iVar9 * 8 + 2)" ( (binary_expression "(int)&DAT_00088fa0 + iVar9 * 8 + 2" (binary_expression "(int)&DAT_00088fa0 + iVar9 * 8" (cast_expression "(int)&DAT_00088fa0" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&DAT_00088fa0" & identifier)) + (binary_expression "iVar9 * 8" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "*pbVar16 = *pbVar16 | 0x80;" (assignment_expression "*pbVar16 = *pbVar16 | 0x80" (pointer_expression "*pbVar16" * identifier) = (binary_expression "*pbVar16 | 0x80" (pointer_expression "*pbVar16" * identifier) | number_literal)) ;) (return_statement "return true;" return true ;) }))) (labeled_statement "LAB_00046ea4:\n  iVar9 = FUN_00045de0();" statement_identifier : (expression_statement "iVar9 = FUN_00045de0();" (assignment_expression "iVar9 = FUN_00045de0()" identifier = (call_expression "FUN_00045de0()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (iVar9 == 0) {\n    return false;\n  }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n    return false;\n  }" { (return_statement "return false;" return false ;) })) (expression_statement "pbVar16 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);" (assignment_expression "pbVar16 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3)" identifier = (cast_expression "(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&DAT_00089010 + DAT_00080558 * 8 + 3)" ( (binary_expression "(int)&DAT_00089010 + DAT_00080558 * 8 + 3" (binary_expression "(int)&DAT_00089010 + DAT_00080558 * 8" (cast_expression "(int)&DAT_00089010" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&DAT_00089010" & identifier)) + (binary_expression "DAT_00080558 * 8" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "*pbVar16 = *pbVar16 | 0x10;" (assignment_expression "*pbVar16 = *pbVar16 | 0x10" (pointer_expression "*pbVar16" * identifier) = (binary_expression "*pbVar16 | 0x10" (pointer_expression "*pbVar16" * identifier) | number_literal)) ;) (if_statement "if (DAT_00089008 == 0) {\n    DAT_00089088 = xstrdup(param_1);\n  }" if (parenthesized_expression "(DAT_00089008 == 0)" ( (binary_expression "DAT_00089008 == 0" identifier == number_literal) )) (compound_statement "{\n    DAT_00089088 = xstrdup(param_1);\n  }" { (expression_statement "DAT_00089088 = xstrdup(param_1);" (assignment_expression "DAT_00089088 = xstrdup(param_1)" identifier = (call_expression "xstrdup(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) })) (expression_statement "DAT_00089008 = DAT_00089008 + 1;" (assignment_expression "DAT_00089008 = DAT_00089008 + 1" identifier = (binary_expression "DAT_00089008 + 1" identifier + number_literal)) ;) (return_statement "return true;" return true ;) })))
(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_att_operand(char *operand_string)\n\n{\n  uint *puVar1;\n  i386_operand_type types_00;\n  i386_operand_type types_01;\n  int iVar2;\n  uint uVar3;\n  char cVar4;\n  byte bVar5;\n  char *op_string;\n  expressionS *peVar6;\n  char *pcVar7;\n  segT paVar8;\n  size_t sVar9;\n  i386_operand_type *piVar10;\n  i386_operand_type *piVar11;\n  int iVar12;\n  char *pcVar13;\n  char *pcVar14;\n  insn_template *piVar15;\n  char *pcVar16;\n  undefined4 extraout_ECX;\n  i386_operand_type *piVar17;\n  i386_operand_type *reg_string;\n  bool bVar18;\n  offsetT oVar19;\n  bfd_reloc_code_real *in_stack_ffffffb4;\n  char **ppcVar20;\n  uint uVar21;\n  byte *pbVar22;\n  char *end_op;\n  i386_operand_type types;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4691d;\n  cVar4 = *operand_string;\n  reg_string = (i386_operand_type *)operand_string;\n  if (cVar4 == ' ') {\n    cVar4 = operand_string[1];\n    reg_string = (i386_operand_type *)(operand_string + 1);\n  }\n  if (cVar4 == '*') {\n    if (*(byte *)((int)reg_string + 1) == 0x20) {\n      reg_string = (i386_operand_type *)((int)reg_string + 2);\n    }\n    else {\n      reg_string = (i386_operand_type *)((int)reg_string + 1);\n    }\n    pbVar22 = (byte *)((int)i.types + this_operand * 8 + 3);\n    *pbVar22 = *pbVar22 | 2;\n  }\n  ppcVar20 = &end_op;\n  peVar6 = (expressionS *)parse_register((char *)reg_string->array,ppcVar20);\n  uVar3 = i.imm_operands;\n  if (peVar6 == (expressionS *)0x0) {\n    bVar5 = *(byte *)reg_string;\n    if (bVar5 == 0x25) {\n      pcVar13 = "bad register name `%s\'";\nLAB_00046f4c:\n      pcVar13 = (char *)dcgettext(0,pcVar13,5);\n      as_bad(pcVar13,reg_string);\n      return 0;\n    }\n    if (bVar5 == 0x24) {\n      if ((*(byte *)((int)i.types + this_operand * 8 + 3) & 2) != 0) {\n        pcVar13 = (char *)dcgettext(0,"immediate operand illegal with absolute jump",5);\n        as_bad(pcVar13);\n        return 0;\n      }\n      types.array[1] = 0xffffffff;\n      types.array[0] = 0xffffffff;\n      if (i.imm_operands != 2) {\n        peVar6 = im_expressions + i.imm_operands;\n        i.imm_operands = i.imm_operands + 1;\n        i.op[this_operand].disps = peVar6;\n        pcVar13 = input_line_pointer;\n        piVar10 = (i386_operand_type *)((int)reg_string + 2);\n        if (*(byte *)((int)reg_string + 1) != 0x20) {\n          piVar10 = (i386_operand_type *)((int)reg_string + 1);\n        }\n        ppcVar20 = &input_line_pointer;\n        input_line_pointer = (char *)piVar10;\n        pcVar7 = lex_got(in_stack_ffffffb4,(int *)&input_line_pointer,piVar10);\n        if (pcVar7 != (char *)0x0) {\n          input_line_pointer = pcVar7;\n        }\n        paVar8 = expr(0,peVar6,expr_normal);\n        pcVar16 = *ppcVar20;\n        cVar4 = *pcVar16;\n        pcVar14 = pcVar16;\n        if (cVar4 == ' ') {\n          pcVar14 = pcVar16 + 1;\n          *ppcVar20 = pcVar14;\n          cVar4 = pcVar16[1];\n        }\n        if (cVar4 == '{') {\n          pcVar14 = check_VecOperations(pcVar14,(char *)0x0);\n          *ppcVar20 = pcVar14;\n          if (pcVar14 == (char *)0x0) {\n            return 0;\n          }\n          cVar4 = *pcVar14;\n        }\n        if (cVar4 != '\0') {\n          pcVar16 = (char *)dcgettext(0,"junk `%s\' after expression",5);\n          as_bad(pcVar16,pcVar14);\n        }\n        *ppcVar20 = pcVar13;\n        if (pcVar7 != (char *)0x0) {\n          free(pcVar7);\n          if ((im_expressions[uVar3].field_0x10 == '\x02') ||\n             (im_expressions[uVar3].field_0x10 == '\x05')) {\n            im_expressions[uVar3].field_0x10 = 0;\n          }\n        }\n        types_00.array[1] = types.array[1];\n        types_00.array[0] = types.array[0];\n        iVar12 = i386_finalize_immediate(paVar8,peVar6,types_00,(char *)piVar10->array);\n        return (uint)(iVar12 != 0);\n      }\n      pcVar13 = "at most %d immediate operands are allowed";\n      goto LAB_00047443;\n    }\n    if (*operand_string == '{') {\n      iVar12 = RC_SAE_immediate(operand_string);\n      if (iVar12 != 0) {\n        return 1;\n      }\n      bVar5 = *(byte *)reg_string;\n    }\n    iVar12 = this_operand;\n    if (((digit_chars[bVar5] == '\0') && (bVar5 != 0x28 && bVar5 != 0x22)) &&\n       (identifier_chars[bVar5] == '\0')) {\n      pcVar13 = output_invalid((int)(char)bVar5);\n      pcVar7 = (char *)dcgettext(0,"invalid char %s beginning operand %d `%s\'",5);\n      as_bad(pcVar7,pcVar13,iVar12 + 1,reg_string);\n      return 0;\n    }\n    goto LAB_00046c60;\n  }\n  cVar4 = *end_op;\n  pcVar13 = end_op;\n  if (cVar4 == ' ') {\n    cVar4 = end_op[1];\n    pcVar13 = end_op + 1;\n  }\n  if (cVar4 != ':') {\n    if (cVar4 == '{') {\n      pcVar13 = check_VecOperations(pcVar13,(char *)0x0);\n      if (pcVar13 == (char *)0x0) {\n        return 0;\n      }\n      cVar4 = *pcVar13;\n    }\n    iVar12 = this_operand;\n    if (cVar4 == '\0') {\n      oVar19 = peVar6->X_add_number;\n      iVar2 = this_operand * 8;\n      i.types[this_operand].array[0] =\n           i.types[this_operand].array[0] | (uint)peVar6->X_op_symbol & 0xffbfffff;\n      puVar1 = (uint *)((int)i.types + iVar2 + 4);\n      *puVar1 = *puVar1 | (uint)oVar19;\n      pbVar22 = (byte *)((int)i.types + iVar12 * 8 + 4);\n      *pbVar22 = *pbVar22 & 0xbf;\n      i.reg_operands = i.reg_operands + 1;\n      i.op[iVar12].disps = peVar6;\n      return 1;\n    }\nLAB_00046ad0:\n    pcVar7 = (char *)dcgettext(0,"junk `%s\' after register",5);\n    as_bad(pcVar7,pcVar13);\n    return 0;\n  }\n  if (((uint)peVar6->X_op_symbol & 0x180) == 0) goto LAB_00046ad0;\n  switch(*(undefined1 *)((int)&peVar6->X_add_number + 5)) {\n  case 0:\n    i.seg[i.mem_operands] = (seg_entry *)PTR_es_0007fff8;\n    break;\n  case 1:\n    i.seg[i.mem_operands] = (seg_entry *)PTR_cs_0007ffc8;\n    break;\n  case 2:\n    i.seg[i.mem_operands] = (seg_entry *)PTR_ss_0007ffcc;\n    break;\n  case 3:\n    i.seg[i.mem_operands] = (seg_entry *)PTR_ds_0007ff80;\n    break;\n  case 4:\n    i.seg[i.mem_operands] = (seg_entry *)PTR_fs_0007ffac;\n    break;\n  case 5:\n    i.seg[i.mem_operands] = (seg_entry *)PTR_gs_0007ff68;\n  }\n  bVar5 = pcVar13[1];\n  reg_string = (i386_operand_type *)(pcVar13 + 1);\n  if (bVar5 == 0x20) {\n    bVar5 = pcVar13[2];\n    reg_string = (i386_operand_type *)(pcVar13 + 2);\n  }\n  if ((digit_chars[bVar5] == '\0') && (identifier_chars[bVar5] == '\0')) {\n    if (bVar5 != 0x28) {\n      if (bVar5 != 0x2a) {\n        pcVar13 = "bad memory operand `%s\'";\n        goto LAB_00046f4c;\n      }\nLAB_00046c3c:\n      if (*(byte *)((int)reg_string + 1) == 0x20) {\n        reg_string = (i386_operand_type *)((int)reg_string + 2);\n      }\n      else {\n        reg_string = (i386_operand_type *)((int)reg_string + 1);\n      }\n      pbVar22 = (byte *)((int)i.types + this_operand * 8 + 3);\n      *pbVar22 = *pbVar22 | 2;\n    }\n  }\n  else if (bVar5 == 0x2a) goto LAB_00046c3c;\nLAB_00046c60:\n  if (i.mem_operands == 1) {\n    iVar12 = maybe_adjust_templates();\n    if (iVar12 == 0) {\n      return 0;\n    }\n    if (i.mem_operands != 1) goto LAB_00046c6f;\n    piVar15 = current_templates->start;\n    if (((piVar15->opcode_modifier).field_0x3 & 1) == 0) goto LAB_0004729e;\n  }\n  else {\nLAB_00046c6f:\n    if (i.mem_operands == 2) {\n      piVar15 = current_templates->start;\nLAB_0004729e:\n      pcVar13 = piVar15->name;\n      pcVar7 = (char *)dcgettext(0,"too many memory references for `%s\'",5);\n      as_bad(pcVar7,pcVar13);\n      return 0;\n    }\n  }\n  sVar9 = strlen((char *)reg_string->array);\n  piVar10 = (i386_operand_type *)(sVar9 + (int)reg_string);\n  piVar11 = (i386_operand_type *)strchr((char *)reg_string->array,0x7b);\n  if (((piVar11 != (i386_operand_type *)0x0) && (piVar11 < piVar10)) &&\n     (pcVar13 = check_VecOperations((char *)piVar11->array,(char *)piVar10->array),\n     piVar10 = piVar11, pcVar13 == (char *)0x0)) {\n    return 0;\n  }\n  piVar11 = (i386_operand_type *)((int)piVar10 + -1);\n  if (*(byte *)((int)piVar10 + -1) == 0x20) {\n    piVar11 = (i386_operand_type *)((int)piVar10 + -2);\n    piVar10 = (i386_operand_type *)((int)piVar10 + -1);\n  }\n  piVar17 = piVar10;\n  if (*(byte *)piVar11 == 0x29) {\n    bVar5 = *(byte *)((int)piVar11 + -1);\n    iVar12 = 1;\n    piVar17 = (i386_operand_type *)((int)piVar11 + -1);\n    if (bVar5 == 0x29) goto LAB_000471f8;\nLAB_000471e0:\n    if (bVar5 != 0x28) goto LAB_000471eb;\n    iVar12 = iVar12 + -1;\n    do {\n      if (iVar12 == 0) {\n        bVar5 = *(byte *)((int)piVar17 + 1);\n        if (bVar5 == 0x20) {\n          bVar5 = *(byte *)((int)piVar11 + 1);\n          piVar11 = (i386_operand_type *)((int)piVar17 + 2);\n        }\n        if (bVar5 == 0x2c) {\n          pbVar22 = (byte *)((int)i.types + this_operand * 8 + 2);\n          *pbVar22 = *pbVar22 | 0x40;\n          if (i.base_reg != (reg_entry *)0x0) goto LAB_00047347;\n          bVar5 = *(byte *)piVar11;\n        }\n        else {\n          i.base_reg = parse_register((char *)piVar11->array,ppcVar20);\n          if (i.base_reg == (reg_entry *)0x0) {\n            if (*(byte *)piVar11 == 0x25) {\n              end_op = strchr((char *)piVar11->array,0x2c);\n              if (end_op != (char *)0x0) {\n                *end_op = '\0';\n              }\n              pcVar13 = (char *)dcgettext(0,"bad register name `%s\'",5);\n              as_bad(pcVar13,piVar11);\n              return 0;\n            }\n            if (reg_string != piVar10) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar22 = (byte *)((int)i.types + this_operand * 8 + 2);\n          *pbVar22 = *pbVar22 | 0x40;\nLAB_00047347:\n          bVar5 = *end_op;\n          piVar11 = (i386_operand_type *)end_op;\n          if (bVar5 == 0x20) {\n            bVar5 = end_op[1];\n            piVar11 = (i386_operand_type *)(end_op + 1);\n          }\n        }\n        if (bVar5 != 0x2c) {\n          if (bVar5 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }\n          break;\n        }\n        pbVar22 = (byte *)((int)piVar11 + 2);\n        if (*(byte *)((int)piVar11 + 1) != 0x20) {\n          pbVar22 = (byte *)((int)piVar11 + 1);\n        }\n        i.index_reg = parse_register((char *)pbVar22,ppcVar20);\n        pcVar13 = input_line_pointer;\n        if (i.index_reg == (reg_entry *)0x0) {\n          if (*pbVar22 == 0x25) {\n            end_op = strchr((char *)pbVar22,0x2c);\n            if (end_op != (char *)0x0) {\n              *end_op = '\0';\n            }\n            pcVar13 = (char *)dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            as_bad(pcVar13,pbVar22);\n            return 0;\n          }\n          if (*pbVar22 == 0x29) {\n            pcVar13 = (char *)dcgettext(0,\n                                        "expecting index register or scale factor after `,\'; got \'%c\'"\n                                        ,5,operand_string);\n            as_bad(pcVar13,0x29);\n            return 0;\n          }\n        }\n        else {\n          cVar4 = *end_op;\n          if (cVar4 == ' ') {\n            cVar4 = end_op[1];\n            end_op = end_op + 1;\n          }\n          if (cVar4 != ',') {\n            if (cVar4 != ')') {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          cVar4 = end_op[1];\n          pbVar22 = (byte *)(end_op + 1);\n          if (cVar4 == ' ') {\n            pbVar22 = (byte *)(end_op + 2);\n            cVar4 = end_op[2];\n          }\n          if (cVar4 == ')') break;\n        }\n        ppcVar20 = &input_line_pointer;\n        input_line_pointer = (char *)pbVar22;\n        oVar19 = get_absolute_expression();\n        if (oVar19 == 2) {\n          i.log2_scale_factor = 1;\n          bVar5 = 1;\nLAB_0004751e:\n          if (i.index_reg == (reg_entry *)0x0) {\n            pcVar7 = (char *)dcgettext(0,"scale factor of %d without an index register",5,bVar5);\n            as_warn(pcVar7,1 << (bVar5 & 0x1f));\n            i.log2_scale_factor = 0;\n          }\n        }\n        else {\n          if (-(int)((ulonglong)oVar19 >> 0x20) < (int)(uint)(2 < (uint)oVar19)) {\n            if (oVar19 == 4) {\n              i.log2_scale_factor = 2;\n              bVar5 = 2;\n            }\n            else {\n              if (oVar19 != 8) goto LAB_0004760c;\n              i.log2_scale_factor = 3;\n              bVar5 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (oVar19 != 1) {\nLAB_0004760c:\n            cVar4 = **ppcVar20;\n            **ppcVar20 = '\0';\n            pcVar7 = (char *)dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            as_bad(pcVar7,pbVar22);\n            **ppcVar20 = cVar4;\n            *ppcVar20 = pcVar13;\n            return 0;\n          }\n          i.log2_scale_factor = 0;\n        }\n        pcVar7 = *ppcVar20;\n        *ppcVar20 = pcVar13;\n        if (pcVar7 == (char *)0x0) {\n          return 0;\n        }\n        cVar4 = *pcVar7;\n        if (cVar4 == ' ') {\n          cVar4 = pcVar7[1];\n        }\n        if (cVar4 != ')') {\n          pcVar13 = "expecting `)\' after scale factor in `%s\'";\nLAB_00047255:\n          pcVar13 = (char *)dcgettext(0,pcVar13,5);\n          as_bad(pcVar13,operand_string);\n          return 0;\n        }\n        break;\n      }\nLAB_000471eb:\n      piVar11 = piVar17;\n      bVar5 = *(byte *)((int)piVar11 + -1);\n      piVar17 = (i386_operand_type *)((int)piVar11 + -1);\n      if (bVar5 != 0x29) goto LAB_000471e0;\nLAB_000471f8:\n      iVar12 = iVar12 + 1;\n    } while( true );\n  }\n  piVar10 = piVar17;\n  if (reg_string == piVar17) goto LAB_00046e80;\nLAB_00046cd4:\n  uVar3 = i.disp_operands;\n  iVar12 = this_operand;\n  types.array[1] = 0;\n  types.array[0] = 0x1f0000;\n  if (i.disp_operands == 2) {\n    pcVar13 = "at most %d displacement operands are allowed";\nLAB_00047443:\n    pcVar13 = (char *)dcgettext(0,pcVar13,5);\n    as_bad(pcVar13,2);\n    return 0;\n  }\n  if (((*(byte *)((int)i.types + this_operand * 8 + 3) & 2) == 0) &&\n     ((undefined1  [12])\n      ((undefined1  [12])current_templates->start->opcode_modifier & (undefined1  [12])0x60) !=\n      (undefined1  [12])0x0)) {\n    if (flag_code == CODE_64BIT) {\n      if ((i.prefix[3] != '\0') || (uVar21 = 0xc0000, i.suffix == 'w')) goto LAB_00046d4f;\n    }\n    else {\n      bVar18 = true;\n      if (i.prefix[3] == '\0') {\n        cVar4 = 'l';\n        if (flag_code != CODE_16BIT) {\n          cVar4 = 'w';\n        }\n        bVar18 = i.suffix == cVar4;\n      }\n      uVar21 = 0x40000;\n      if ((flag_code == CODE_16BIT) != bVar18) {\nLAB_00046d4f:\n        uVar21 = 0x20000;\n      }\n    }\n  }\n  else if (flag_code == CODE_64BIT) {\n    uVar21 = 0x1c0000;\n    if (i.prefix[2] != '\0') {\n      uVar21 = 0x40000;\n    }\n  }\n  else {\n    uVar21 = 0x40000;\n    if ((i.prefix[2] != '\0') != (flag_code == CODE_16BIT)) goto LAB_00046d4f;\n  }\n  i.types[this_operand].array[0] = i.types[this_operand].array[0] | uVar21;\n  paVar8 = (segT)(disp_expressions + i.disp_operands);\n  i.op[iVar12].disps = (expressionS *)paVar8;\n  pcVar13 = input_line_pointer;\n  i.disp_operands = i.disp_operands + 1;\n  ppcVar20 = &input_line_pointer;\n  pcVar7 = save_stack_p + 1;\n  input_line_pointer = (char *)reg_string;\n  *save_stack_p = *(char *)piVar10;\n  save_stack_p = pcVar7;\n  *(undefined1 *)piVar10 = 0;\n  pcVar7 = lex_got(in_stack_ffffffb4,(int *)&input_line_pointer,piVar10);\n  if (pcVar7 != (char *)0x0) {\n    *ppcVar20 = pcVar7;\n  }\n  expr(0,(expressionS *)paVar8,expr_normal);\n  pcVar16 = *ppcVar20;\n  cVar4 = *pcVar16;\n  pcVar14 = pcVar16;\n  if (cVar4 == ' ') {\n    pcVar14 = pcVar16 + 1;\n    *ppcVar20 = pcVar14;\n    cVar4 = pcVar16[1];\n  }\n  if (cVar4 != '\0') {\n    pcVar16 = (char *)dcgettext(0,"junk `%s\' after expression",5);\n    as_bad(pcVar16,pcVar14);\n  }\n  *ppcVar20 = pcVar13;\n  if (pcVar7 != (char *)0x0) {\n    free(pcVar7);\n    if ((disp_expressions[uVar3].field_0x10 == '\x02') ||\n       (disp_expressions[uVar3].field_0x10 == '\x05')) {\n      disp_expressions[uVar3].field_0x10 = 0;\n    }\n  }\n  types_01.array[1] = (uint)ppcVar20;\n  types_01.array[0] = (uint)in_stack_ffffffb4;\n  iVar12 = i386_finalize_displacement\n                     (paVar8,(expressionS *)types.array[0],types_01,(char *)reg_string->array);\n  pcVar13 = save_stack_p + -1;\n  save_stack_p = save_stack_p + -1;\n  *(char *)piVar10 = *pcVar13;\n  if (iVar12 == 0) {\n    return 0;\n  }\nLAB_00046e80:\n  iVar12 = this_operand;\n  if (((((i.base_reg != (reg_entry *)0x0) &&\n        (((i.base_reg)->reg_type).array[1] == reg16_inoutportreg.array[1])) &&\n       (((i.base_reg)->reg_type).array[0] == reg16_inoutportreg.array[0])) &&\n      ((i.index_reg == (reg_entry *)0x0 && (i.log2_scale_factor == 0)))) &&\n     ((i.seg[i.mem_operands] == (seg_entry *)0x0 &&\n      ((*(byte *)((int)i.types + this_operand * 8 + 2) & 0x1f) == 0)))) {\n    i.types[this_operand].array[0] = 0;\n    *(undefined4 *)((int)i.types + iVar12 * 8 + 4) = 0;\n    pbVar22 = (byte *)((int)i.types + iVar12 * 8 + 2);\n    *pbVar22 = *pbVar22 | 0x80;\n    return 1;\n  }\nLAB_00046ea4:\n  iVar12 = i386_index_check(operand_string);\n  if (iVar12 == 0) {\n    return 0;\n  }\n  pbVar22 = (byte *)((int)i.types + this_operand * 8 + 3);\n  *pbVar22 = *pbVar22 | 0x10;\n  if (i.mem_operands == 0) {\n    i.memop1_string = (char *)xstrdup(operand_string);\n  }\n  i.mem_operands = i.mem_operands + 1;\n  return 1;\n}\n\n" comment comment (function_definition "int __regparm3 i386_att_operand(char *operand_string)\n\n{\n  uint *puVar1;\n  i386_operand_type types_00;\n  i386_operand_type types_01;\n  int iVar2;\n  uint uVar3;\n  char cVar4;\n  byte bVar5;\n  char *op_string;\n  expressionS *peVar6;\n  char *pcVar7;\n  segT paVar8;\n  size_t sVar9;\n  i386_operand_type *piVar10;\n  i386_operand_type *piVar11;\n  int iVar12;\n  char *pcVar13;\n  char *pcVar14;\n  insn_template *piVar15;\n  char *pcVar16;\n  undefined4 extraout_ECX;\n  i386_operand_type *piVar17;\n  i386_operand_type *reg_string;\n  bool bVar18;\n  offsetT oVar19;\n  bfd_reloc_code_real *in_stack_ffffffb4;\n  char **ppcVar20;\n  uint uVar21;\n  byte *pbVar22;\n  char *end_op;\n  i386_operand_type types;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4691d;\n  cVar4 = *operand_string;\n  reg_string = (i386_operand_type *)operand_string;\n  if (cVar4 == ' ') {\n    cVar4 = operand_string[1];\n    reg_string = (i386_operand_type *)(operand_string + 1);\n  }\n  if (cVar4 == '*') {\n    if (*(byte *)((int)reg_string + 1) == 0x20) {\n      reg_string = (i386_operand_type *)((int)reg_string + 2);\n    }\n    else {\n      reg_string = (i386_operand_type *)((int)reg_string + 1);\n    }\n    pbVar22 = (byte *)((int)i.types + this_operand * 8 + 3);\n    *pbVar22 = *pbVar22 | 2;\n  }\n  ppcVar20 = &end_op;\n  peVar6 = (expressionS *)parse_register((char *)reg_string->array,ppcVar20);\n  uVar3 = i.imm_operands;\n  if (peVar6 == (expressionS *)0x0) {\n    bVar5 = *(byte *)reg_string;\n    if (bVar5 == 0x25) {\n      pcVar13 = "bad register name `%s\'";\nLAB_00046f4c:\n      pcVar13 = (char *)dcgettext(0,pcVar13,5);\n      as_bad(pcVar13,reg_string);\n      return 0;\n    }\n    if (bVar5 == 0x24) {\n      if ((*(byte *)((int)i.types + this_operand * 8 + 3) & 2) != 0) {\n        pcVar13 = (char *)dcgettext(0,"immediate operand illegal with absolute jump",5);\n        as_bad(pcVar13);\n        return 0;\n      }\n      types.array[1] = 0xffffffff;\n      types.array[0] = 0xffffffff;\n      if (i.imm_operands != 2) {\n        peVar6 = im_expressions + i.imm_operands;\n        i.imm_operands = i.imm_operands + 1;\n        i.op[this_operand].disps = peVar6;\n        pcVar13 = input_line_pointer;\n        piVar10 = (i386_operand_type *)((int)reg_string + 2);\n        if (*(byte *)((int)reg_string + 1) != 0x20) {\n          piVar10 = (i386_operand_type *)((int)reg_string + 1);\n        }\n        ppcVar20 = &input_line_pointer;\n        input_line_pointer = (char *)piVar10;\n        pcVar7 = lex_got(in_stack_ffffffb4,(int *)&input_line_pointer,piVar10);\n        if (pcVar7 != (char *)0x0) {\n          input_line_pointer = pcVar7;\n        }\n        paVar8 = expr(0,peVar6,expr_normal);\n        pcVar16 = *ppcVar20;\n        cVar4 = *pcVar16;\n        pcVar14 = pcVar16;\n        if (cVar4 == ' ') {\n          pcVar14 = pcVar16 + 1;\n          *ppcVar20 = pcVar14;\n          cVar4 = pcVar16[1];\n        }\n        if (cVar4 == '{') {\n          pcVar14 = check_VecOperations(pcVar14,(char *)0x0);\n          *ppcVar20 = pcVar14;\n          if (pcVar14 == (char *)0x0) {\n            return 0;\n          }\n          cVar4 = *pcVar14;\n        }\n        if (cVar4 != '\0') {\n          pcVar16 = (char *)dcgettext(0,"junk `%s\' after expression",5);\n          as_bad(pcVar16,pcVar14);\n        }\n        *ppcVar20 = pcVar13;\n        if (pcVar7 != (char *)0x0) {\n          free(pcVar7);\n          if ((im_expressions[uVar3].field_0x10 == '\x02') ||\n             (im_expressions[uVar3].field_0x10 == '\x05')) {\n            im_expressions[uVar3].field_0x10 = 0;\n          }\n        }\n        types_00.array[1] = types.array[1];\n        types_00.array[0] = types.array[0];\n        iVar12 = i386_finalize_immediate(paVar8,peVar6,types_00,(char *)piVar10->array);\n        return (uint)(iVar12 != 0);\n      }\n      pcVar13 = "at most %d immediate operands are allowed";\n      goto LAB_00047443;\n    }\n    if (*operand_string == '{') {\n      iVar12 = RC_SAE_immediate(operand_string);\n      if (iVar12 != 0) {\n        return 1;\n      }\n      bVar5 = *(byte *)reg_string;\n    }\n    iVar12 = this_operand;\n    if (((digit_chars[bVar5] == '\0') && (bVar5 != 0x28 && bVar5 != 0x22)) &&\n       (identifier_chars[bVar5] == '\0')) {\n      pcVar13 = output_invalid((int)(char)bVar5);\n      pcVar7 = (char *)dcgettext(0,"invalid char %s beginning operand %d `%s\'",5);\n      as_bad(pcVar7,pcVar13,iVar12 + 1,reg_string);\n      return 0;\n    }\n    goto LAB_00046c60;\n  }\n  cVar4 = *end_op;\n  pcVar13 = end_op;\n  if (cVar4 == ' ') {\n    cVar4 = end_op[1];\n    pcVar13 = end_op + 1;\n  }\n  if (cVar4 != ':') {\n    if (cVar4 == '{') {\n      pcVar13 = check_VecOperations(pcVar13,(char *)0x0);\n      if (pcVar13 == (char *)0x0) {\n        return 0;\n      }\n      cVar4 = *pcVar13;\n    }\n    iVar12 = this_operand;\n    if (cVar4 == '\0') {\n      oVar19 = peVar6->X_add_number;\n      iVar2 = this_operand * 8;\n      i.types[this_operand].array[0] =\n           i.types[this_operand].array[0] | (uint)peVar6->X_op_symbol & 0xffbfffff;\n      puVar1 = (uint *)((int)i.types + iVar2 + 4);\n      *puVar1 = *puVar1 | (uint)oVar19;\n      pbVar22 = (byte *)((int)i.types + iVar12 * 8 + 4);\n      *pbVar22 = *pbVar22 & 0xbf;\n      i.reg_operands = i.reg_operands + 1;\n      i.op[iVar12].disps = peVar6;\n      return 1;\n    }\nLAB_00046ad0:\n    pcVar7 = (char *)dcgettext(0,"junk `%s\' after register",5);\n    as_bad(pcVar7,pcVar13);\n    return 0;\n  }\n  if (((uint)peVar6->X_op_symbol & 0x180) == 0) goto LAB_00046ad0;\n  switch(*(undefined1 *)((int)&peVar6->X_add_number + 5)) {\n  case 0:\n    i.seg[i.mem_operands] = (seg_entry *)PTR_es_0007fff8;\n    break;\n  case 1:\n    i.seg[i.mem_operands] = (seg_entry *)PTR_cs_0007ffc8;\n    break;\n  case 2:\n    i.seg[i.mem_operands] = (seg_entry *)PTR_ss_0007ffcc;\n    break;\n  case 3:\n    i.seg[i.mem_operands] = (seg_entry *)PTR_ds_0007ff80;\n    break;\n  case 4:\n    i.seg[i.mem_operands] = (seg_entry *)PTR_fs_0007ffac;\n    break;\n  case 5:\n    i.seg[i.mem_operands] = (seg_entry *)PTR_gs_0007ff68;\n  }\n  bVar5 = pcVar13[1];\n  reg_string = (i386_operand_type *)(pcVar13 + 1);\n  if (bVar5 == 0x20) {\n    bVar5 = pcVar13[2];\n    reg_string = (i386_operand_type *)(pcVar13 + 2);\n  }\n  if ((digit_chars[bVar5] == '\0') && (identifier_chars[bVar5] == '\0')) {\n    if (bVar5 != 0x28) {\n      if (bVar5 != 0x2a) {\n        pcVar13 = "bad memory operand `%s\'";\n        goto LAB_00046f4c;\n      }\nLAB_00046c3c:\n      if (*(byte *)((int)reg_string + 1) == 0x20) {\n        reg_string = (i386_operand_type *)((int)reg_string + 2);\n      }\n      else {\n        reg_string = (i386_operand_type *)((int)reg_string + 1);\n      }\n      pbVar22 = (byte *)((int)i.types + this_operand * 8 + 3);\n      *pbVar22 = *pbVar22 | 2;\n    }\n  }\n  else if (bVar5 == 0x2a) goto LAB_00046c3c;\nLAB_00046c60:\n  if (i.mem_operands == 1) {\n    iVar12 = maybe_adjust_templates();\n    if (iVar12 == 0) {\n      return 0;\n    }\n    if (i.mem_operands != 1) goto LAB_00046c6f;\n    piVar15 = current_templates->start;\n    if (((piVar15->opcode_modifier).field_0x3 & 1) == 0) goto LAB_0004729e;\n  }\n  else {\nLAB_00046c6f:\n    if (i.mem_operands == 2) {\n      piVar15 = current_templates->start;\nLAB_0004729e:\n      pcVar13 = piVar15->name;\n      pcVar7 = (char *)dcgettext(0,"too many memory references for `%s\'",5);\n      as_bad(pcVar7,pcVar13);\n      return 0;\n    }\n  }\n  sVar9 = strlen((char *)reg_string->array);\n  piVar10 = (i386_operand_type *)(sVar9 + (int)reg_string);\n  piVar11 = (i386_operand_type *)strchr((char *)reg_string->array,0x7b);\n  if (((piVar11 != (i386_operand_type *)0x0) && (piVar11 < piVar10)) &&\n     (pcVar13 = check_VecOperations((char *)piVar11->array,(char *)piVar10->array),\n     piVar10 = piVar11, pcVar13 == (char *)0x0)) {\n    return 0;\n  }\n  piVar11 = (i386_operand_type *)((int)piVar10 + -1);\n  if (*(byte *)((int)piVar10 + -1) == 0x20) {\n    piVar11 = (i386_operand_type *)((int)piVar10 + -2);\n    piVar10 = (i386_operand_type *)((int)piVar10 + -1);\n  }\n  piVar17 = piVar10;\n  if (*(byte *)piVar11 == 0x29) {\n    bVar5 = *(byte *)((int)piVar11 + -1);\n    iVar12 = 1;\n    piVar17 = (i386_operand_type *)((int)piVar11 + -1);\n    if (bVar5 == 0x29) goto LAB_000471f8;\nLAB_000471e0:\n    if (bVar5 != 0x28) goto LAB_000471eb;\n    iVar12 = iVar12 + -1;\n    do {\n      if (iVar12 == 0) {\n        bVar5 = *(byte *)((int)piVar17 + 1);\n        if (bVar5 == 0x20) {\n          bVar5 = *(byte *)((int)piVar11 + 1);\n          piVar11 = (i386_operand_type *)((int)piVar17 + 2);\n        }\n        if (bVar5 == 0x2c) {\n          pbVar22 = (byte *)((int)i.types + this_operand * 8 + 2);\n          *pbVar22 = *pbVar22 | 0x40;\n          if (i.base_reg != (reg_entry *)0x0) goto LAB_00047347;\n          bVar5 = *(byte *)piVar11;\n        }\n        else {\n          i.base_reg = parse_register((char *)piVar11->array,ppcVar20);\n          if (i.base_reg == (reg_entry *)0x0) {\n            if (*(byte *)piVar11 == 0x25) {\n              end_op = strchr((char *)piVar11->array,0x2c);\n              if (end_op != (char *)0x0) {\n                *end_op = '\0';\n              }\n              pcVar13 = (char *)dcgettext(0,"bad register name `%s\'",5);\n              as_bad(pcVar13,piVar11);\n              return 0;\n            }\n            if (reg_string != piVar10) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar22 = (byte *)((int)i.types + this_operand * 8 + 2);\n          *pbVar22 = *pbVar22 | 0x40;\nLAB_00047347:\n          bVar5 = *end_op;\n          piVar11 = (i386_operand_type *)end_op;\n          if (bVar5 == 0x20) {\n            bVar5 = end_op[1];\n            piVar11 = (i386_operand_type *)(end_op + 1);\n          }\n        }\n        if (bVar5 != 0x2c) {\n          if (bVar5 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }\n          break;\n        }\n        pbVar22 = (byte *)((int)piVar11 + 2);\n        if (*(byte *)((int)piVar11 + 1) != 0x20) {\n          pbVar22 = (byte *)((int)piVar11 + 1);\n        }\n        i.index_reg = parse_register((char *)pbVar22,ppcVar20);\n        pcVar13 = input_line_pointer;\n        if (i.index_reg == (reg_entry *)0x0) {\n          if (*pbVar22 == 0x25) {\n            end_op = strchr((char *)pbVar22,0x2c);\n            if (end_op != (char *)0x0) {\n              *end_op = '\0';\n            }\n            pcVar13 = (char *)dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            as_bad(pcVar13,pbVar22);\n            return 0;\n          }\n          if (*pbVar22 == 0x29) {\n            pcVar13 = (char *)dcgettext(0,\n                                        "expecting index register or scale factor after `,\'; got \'%c\'"\n                                        ,5,operand_string);\n            as_bad(pcVar13,0x29);\n            return 0;\n          }\n        }\n        else {\n          cVar4 = *end_op;\n          if (cVar4 == ' ') {\n            cVar4 = end_op[1];\n            end_op = end_op + 1;\n          }\n          if (cVar4 != ',') {\n            if (cVar4 != ')') {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          cVar4 = end_op[1];\n          pbVar22 = (byte *)(end_op + 1);\n          if (cVar4 == ' ') {\n            pbVar22 = (byte *)(end_op + 2);\n            cVar4 = end_op[2];\n          }\n          if (cVar4 == ')') break;\n        }\n        ppcVar20 = &input_line_pointer;\n        input_line_pointer = (char *)pbVar22;\n        oVar19 = get_absolute_expression();\n        if (oVar19 == 2) {\n          i.log2_scale_factor = 1;\n          bVar5 = 1;\nLAB_0004751e:\n          if (i.index_reg == (reg_entry *)0x0) {\n            pcVar7 = (char *)dcgettext(0,"scale factor of %d without an index register",5,bVar5);\n            as_warn(pcVar7,1 << (bVar5 & 0x1f));\n            i.log2_scale_factor = 0;\n          }\n        }\n        else {\n          if (-(int)((ulonglong)oVar19 >> 0x20) < (int)(uint)(2 < (uint)oVar19)) {\n            if (oVar19 == 4) {\n              i.log2_scale_factor = 2;\n              bVar5 = 2;\n            }\n            else {\n              if (oVar19 != 8) goto LAB_0004760c;\n              i.log2_scale_factor = 3;\n              bVar5 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (oVar19 != 1) {\nLAB_0004760c:\n            cVar4 = **ppcVar20;\n            **ppcVar20 = '\0';\n            pcVar7 = (char *)dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            as_bad(pcVar7,pbVar22);\n            **ppcVar20 = cVar4;\n            *ppcVar20 = pcVar13;\n            return 0;\n          }\n          i.log2_scale_factor = 0;\n        }\n        pcVar7 = *ppcVar20;\n        *ppcVar20 = pcVar13;\n        if (pcVar7 == (char *)0x0) {\n          return 0;\n        }\n        cVar4 = *pcVar7;\n        if (cVar4 == ' ') {\n          cVar4 = pcVar7[1];\n        }\n        if (cVar4 != ')') {\n          pcVar13 = "expecting `)\' after scale factor in `%s\'";\nLAB_00047255:\n          pcVar13 = (char *)dcgettext(0,pcVar13,5);\n          as_bad(pcVar13,operand_string);\n          return 0;\n        }\n        break;\n      }\nLAB_000471eb:\n      piVar11 = piVar17;\n      bVar5 = *(byte *)((int)piVar11 + -1);\n      piVar17 = (i386_operand_type *)((int)piVar11 + -1);\n      if (bVar5 != 0x29) goto LAB_000471e0;\nLAB_000471f8:\n      iVar12 = iVar12 + 1;\n    } while( true );\n  }\n  piVar10 = piVar17;\n  if (reg_string == piVar17) goto LAB_00046e80;\nLAB_00046cd4:\n  uVar3 = i.disp_operands;\n  iVar12 = this_operand;\n  types.array[1] = 0;\n  types.array[0] = 0x1f0000;\n  if (i.disp_operands == 2) {\n    pcVar13 = "at most %d displacement operands are allowed";\nLAB_00047443:\n    pcVar13 = (char *)dcgettext(0,pcVar13,5);\n    as_bad(pcVar13,2);\n    return 0;\n  }\n  if (((*(byte *)((int)i.types + this_operand * 8 + 3) & 2) == 0) &&\n     ((undefined1  [12])\n      ((undefined1  [12])current_templates->start->opcode_modifier & (undefined1  [12])0x60) !=\n      (undefined1  [12])0x0)) {\n    if (flag_code == CODE_64BIT) {\n      if ((i.prefix[3] != '\0') || (uVar21 = 0xc0000, i.suffix == 'w')) goto LAB_00046d4f;\n    }\n    else {\n      bVar18 = true;\n      if (i.prefix[3] == '\0') {\n        cVar4 = 'l';\n        if (flag_code != CODE_16BIT) {\n          cVar4 = 'w';\n        }\n        bVar18 = i.suffix == cVar4;\n      }\n      uVar21 = 0x40000;\n      if ((flag_code == CODE_16BIT) != bVar18) {\nLAB_00046d4f:\n        uVar21 = 0x20000;\n      }\n    }\n  }\n  else if (flag_code == CODE_64BIT) {\n    uVar21 = 0x1c0000;\n    if (i.prefix[2] != '\0') {\n      uVar21 = 0x40000;\n    }\n  }\n  else {\n    uVar21 = 0x40000;\n    if ((i.prefix[2] != '\0') != (flag_code == CODE_16BIT)) goto LAB_00046d4f;\n  }\n  i.types[this_operand].array[0] = i.types[this_operand].array[0] | uVar21;\n  paVar8 = (segT)(disp_expressions + i.disp_operands);\n  i.op[iVar12].disps = (expressionS *)paVar8;\n  pcVar13 = input_line_pointer;\n  i.disp_operands = i.disp_operands + 1;\n  ppcVar20 = &input_line_pointer;\n  pcVar7 = save_stack_p + 1;\n  input_line_pointer = (char *)reg_string;\n  *save_stack_p = *(char *)piVar10;\n  save_stack_p = pcVar7;\n  *(undefined1 *)piVar10 = 0;\n  pcVar7 = lex_got(in_stack_ffffffb4,(int *)&input_line_pointer,piVar10);\n  if (pcVar7 != (char *)0x0) {\n    *ppcVar20 = pcVar7;\n  }\n  expr(0,(expressionS *)paVar8,expr_normal);\n  pcVar16 = *ppcVar20;\n  cVar4 = *pcVar16;\n  pcVar14 = pcVar16;\n  if (cVar4 == ' ') {\n    pcVar14 = pcVar16 + 1;\n    *ppcVar20 = pcVar14;\n    cVar4 = pcVar16[1];\n  }\n  if (cVar4 != '\0') {\n    pcVar16 = (char *)dcgettext(0,"junk `%s\' after expression",5);\n    as_bad(pcVar16,pcVar14);\n  }\n  *ppcVar20 = pcVar13;\n  if (pcVar7 != (char *)0x0) {\n    free(pcVar7);\n    if ((disp_expressions[uVar3].field_0x10 == '\x02') ||\n       (disp_expressions[uVar3].field_0x10 == '\x05')) {\n      disp_expressions[uVar3].field_0x10 = 0;\n    }\n  }\n  types_01.array[1] = (uint)ppcVar20;\n  types_01.array[0] = (uint)in_stack_ffffffb4;\n  iVar12 = i386_finalize_displacement\n                     (paVar8,(expressionS *)types.array[0],types_01,(char *)reg_string->array);\n  pcVar13 = save_stack_p + -1;\n  save_stack_p = save_stack_p + -1;\n  *(char *)piVar10 = *pcVar13;\n  if (iVar12 == 0) {\n    return 0;\n  }\nLAB_00046e80:\n  iVar12 = this_operand;\n  if (((((i.base_reg != (reg_entry *)0x0) &&\n        (((i.base_reg)->reg_type).array[1] == reg16_inoutportreg.array[1])) &&\n       (((i.base_reg)->reg_type).array[0] == reg16_inoutportreg.array[0])) &&\n      ((i.index_reg == (reg_entry *)0x0 && (i.log2_scale_factor == 0)))) &&\n     ((i.seg[i.mem_operands] == (seg_entry *)0x0 &&\n      ((*(byte *)((int)i.types + this_operand * 8 + 2) & 0x1f) == 0)))) {\n    i.types[this_operand].array[0] = 0;\n    *(undefined4 *)((int)i.types + iVar12 * 8 + 4) = 0;\n    pbVar22 = (byte *)((int)i.types + iVar12 * 8 + 2);\n    *pbVar22 = *pbVar22 | 0x80;\n    return 1;\n  }\nLAB_00046ea4:\n  iVar12 = i386_index_check(operand_string);\n  if (iVar12 == 0) {\n    return 0;\n  }\n  pbVar22 = (byte *)((int)i.types + this_operand * 8 + 3);\n  *pbVar22 = *pbVar22 | 0x10;\n  if (i.mem_operands == 0) {\n    i.memop1_string = (char *)xstrdup(operand_string);\n  }\n  i.mem_operands = i.mem_operands + 1;\n  return 1;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "i386_att_operand(char *operand_string)" identifier (parameter_list "(char *operand_string)" ( (parameter_declaration "char *operand_string" primitive_type (pointer_declarator "*operand_string" * identifier)) ))) (compound_statement "{\n  uint *puVar1;\n  i386_operand_type types_00;\n  i386_operand_type types_01;\n  int iVar2;\n  uint uVar3;\n  char cVar4;\n  byte bVar5;\n  char *op_string;\n  expressionS *peVar6;\n  char *pcVar7;\n  segT paVar8;\n  size_t sVar9;\n  i386_operand_type *piVar10;\n  i386_operand_type *piVar11;\n  int iVar12;\n  char *pcVar13;\n  char *pcVar14;\n  insn_template *piVar15;\n  char *pcVar16;\n  undefined4 extraout_ECX;\n  i386_operand_type *piVar17;\n  i386_operand_type *reg_string;\n  bool bVar18;\n  offsetT oVar19;\n  bfd_reloc_code_real *in_stack_ffffffb4;\n  char **ppcVar20;\n  uint uVar21;\n  byte *pbVar22;\n  char *end_op;\n  i386_operand_type types;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4691d;\n  cVar4 = *operand_string;\n  reg_string = (i386_operand_type *)operand_string;\n  if (cVar4 == ' ') {\n    cVar4 = operand_string[1];\n    reg_string = (i386_operand_type *)(operand_string + 1);\n  }\n  if (cVar4 == '*') {\n    if (*(byte *)((int)reg_string + 1) == 0x20) {\n      reg_string = (i386_operand_type *)((int)reg_string + 2);\n    }\n    else {\n      reg_string = (i386_operand_type *)((int)reg_string + 1);\n    }\n    pbVar22 = (byte *)((int)i.types + this_operand * 8 + 3);\n    *pbVar22 = *pbVar22 | 2;\n  }\n  ppcVar20 = &end_op;\n  peVar6 = (expressionS *)parse_register((char *)reg_string->array,ppcVar20);\n  uVar3 = i.imm_operands;\n  if (peVar6 == (expressionS *)0x0) {\n    bVar5 = *(byte *)reg_string;\n    if (bVar5 == 0x25) {\n      pcVar13 = "bad register name `%s\'";\nLAB_00046f4c:\n      pcVar13 = (char *)dcgettext(0,pcVar13,5);\n      as_bad(pcVar13,reg_string);\n      return 0;\n    }\n    if (bVar5 == 0x24) {\n      if ((*(byte *)((int)i.types + this_operand * 8 + 3) & 2) != 0) {\n        pcVar13 = (char *)dcgettext(0,"immediate operand illegal with absolute jump",5);\n        as_bad(pcVar13);\n        return 0;\n      }\n      types.array[1] = 0xffffffff;\n      types.array[0] = 0xffffffff;\n      if (i.imm_operands != 2) {\n        peVar6 = im_expressions + i.imm_operands;\n        i.imm_operands = i.imm_operands + 1;\n        i.op[this_operand].disps = peVar6;\n        pcVar13 = input_line_pointer;\n        piVar10 = (i386_operand_type *)((int)reg_string + 2);\n        if (*(byte *)((int)reg_string + 1) != 0x20) {\n          piVar10 = (i386_operand_type *)((int)reg_string + 1);\n        }\n        ppcVar20 = &input_line_pointer;\n        input_line_pointer = (char *)piVar10;\n        pcVar7 = lex_got(in_stack_ffffffb4,(int *)&input_line_pointer,piVar10);\n        if (pcVar7 != (char *)0x0) {\n          input_line_pointer = pcVar7;\n        }\n        paVar8 = expr(0,peVar6,expr_normal);\n        pcVar16 = *ppcVar20;\n        cVar4 = *pcVar16;\n        pcVar14 = pcVar16;\n        if (cVar4 == ' ') {\n          pcVar14 = pcVar16 + 1;\n          *ppcVar20 = pcVar14;\n          cVar4 = pcVar16[1];\n        }\n        if (cVar4 == '{') {\n          pcVar14 = check_VecOperations(pcVar14,(char *)0x0);\n          *ppcVar20 = pcVar14;\n          if (pcVar14 == (char *)0x0) {\n            return 0;\n          }\n          cVar4 = *pcVar14;\n        }\n        if (cVar4 != '\0') {\n          pcVar16 = (char *)dcgettext(0,"junk `%s\' after expression",5);\n          as_bad(pcVar16,pcVar14);\n        }\n        *ppcVar20 = pcVar13;\n        if (pcVar7 != (char *)0x0) {\n          free(pcVar7);\n          if ((im_expressions[uVar3].field_0x10 == '\x02') ||\n             (im_expressions[uVar3].field_0x10 == '\x05')) {\n            im_expressions[uVar3].field_0x10 = 0;\n          }\n        }\n        types_00.array[1] = types.array[1];\n        types_00.array[0] = types.array[0];\n        iVar12 = i386_finalize_immediate(paVar8,peVar6,types_00,(char *)piVar10->array);\n        return (uint)(iVar12 != 0);\n      }\n      pcVar13 = "at most %d immediate operands are allowed";\n      goto LAB_00047443;\n    }\n    if (*operand_string == '{') {\n      iVar12 = RC_SAE_immediate(operand_string);\n      if (iVar12 != 0) {\n        return 1;\n      }\n      bVar5 = *(byte *)reg_string;\n    }\n    iVar12 = this_operand;\n    if (((digit_chars[bVar5] == '\0') && (bVar5 != 0x28 && bVar5 != 0x22)) &&\n       (identifier_chars[bVar5] == '\0')) {\n      pcVar13 = output_invalid((int)(char)bVar5);\n      pcVar7 = (char *)dcgettext(0,"invalid char %s beginning operand %d `%s\'",5);\n      as_bad(pcVar7,pcVar13,iVar12 + 1,reg_string);\n      return 0;\n    }\n    goto LAB_00046c60;\n  }\n  cVar4 = *end_op;\n  pcVar13 = end_op;\n  if (cVar4 == ' ') {\n    cVar4 = end_op[1];\n    pcVar13 = end_op + 1;\n  }\n  if (cVar4 != ':') {\n    if (cVar4 == '{') {\n      pcVar13 = check_VecOperations(pcVar13,(char *)0x0);\n      if (pcVar13 == (char *)0x0) {\n        return 0;\n      }\n      cVar4 = *pcVar13;\n    }\n    iVar12 = this_operand;\n    if (cVar4 == '\0') {\n      oVar19 = peVar6->X_add_number;\n      iVar2 = this_operand * 8;\n      i.types[this_operand].array[0] =\n           i.types[this_operand].array[0] | (uint)peVar6->X_op_symbol & 0xffbfffff;\n      puVar1 = (uint *)((int)i.types + iVar2 + 4);\n      *puVar1 = *puVar1 | (uint)oVar19;\n      pbVar22 = (byte *)((int)i.types + iVar12 * 8 + 4);\n      *pbVar22 = *pbVar22 & 0xbf;\n      i.reg_operands = i.reg_operands + 1;\n      i.op[iVar12].disps = peVar6;\n      return 1;\n    }\nLAB_00046ad0:\n    pcVar7 = (char *)dcgettext(0,"junk `%s\' after register",5);\n    as_bad(pcVar7,pcVar13);\n    return 0;\n  }\n  if (((uint)peVar6->X_op_symbol & 0x180) == 0) goto LAB_00046ad0;\n  switch(*(undefined1 *)((int)&peVar6->X_add_number + 5)) {\n  case 0:\n    i.seg[i.mem_operands] = (seg_entry *)PTR_es_0007fff8;\n    break;\n  case 1:\n    i.seg[i.mem_operands] = (seg_entry *)PTR_cs_0007ffc8;\n    break;\n  case 2:\n    i.seg[i.mem_operands] = (seg_entry *)PTR_ss_0007ffcc;\n    break;\n  case 3:\n    i.seg[i.mem_operands] = (seg_entry *)PTR_ds_0007ff80;\n    break;\n  case 4:\n    i.seg[i.mem_operands] = (seg_entry *)PTR_fs_0007ffac;\n    break;\n  case 5:\n    i.seg[i.mem_operands] = (seg_entry *)PTR_gs_0007ff68;\n  }\n  bVar5 = pcVar13[1];\n  reg_string = (i386_operand_type *)(pcVar13 + 1);\n  if (bVar5 == 0x20) {\n    bVar5 = pcVar13[2];\n    reg_string = (i386_operand_type *)(pcVar13 + 2);\n  }\n  if ((digit_chars[bVar5] == '\0') && (identifier_chars[bVar5] == '\0')) {\n    if (bVar5 != 0x28) {\n      if (bVar5 != 0x2a) {\n        pcVar13 = "bad memory operand `%s\'";\n        goto LAB_00046f4c;\n      }\nLAB_00046c3c:\n      if (*(byte *)((int)reg_string + 1) == 0x20) {\n        reg_string = (i386_operand_type *)((int)reg_string + 2);\n      }\n      else {\n        reg_string = (i386_operand_type *)((int)reg_string + 1);\n      }\n      pbVar22 = (byte *)((int)i.types + this_operand * 8 + 3);\n      *pbVar22 = *pbVar22 | 2;\n    }\n  }\n  else if (bVar5 == 0x2a) goto LAB_00046c3c;\nLAB_00046c60:\n  if (i.mem_operands == 1) {\n    iVar12 = maybe_adjust_templates();\n    if (iVar12 == 0) {\n      return 0;\n    }\n    if (i.mem_operands != 1) goto LAB_00046c6f;\n    piVar15 = current_templates->start;\n    if (((piVar15->opcode_modifier).field_0x3 & 1) == 0) goto LAB_0004729e;\n  }\n  else {\nLAB_00046c6f:\n    if (i.mem_operands == 2) {\n      piVar15 = current_templates->start;\nLAB_0004729e:\n      pcVar13 = piVar15->name;\n      pcVar7 = (char *)dcgettext(0,"too many memory references for `%s\'",5);\n      as_bad(pcVar7,pcVar13);\n      return 0;\n    }\n  }\n  sVar9 = strlen((char *)reg_string->array);\n  piVar10 = (i386_operand_type *)(sVar9 + (int)reg_string);\n  piVar11 = (i386_operand_type *)strchr((char *)reg_string->array,0x7b);\n  if (((piVar11 != (i386_operand_type *)0x0) && (piVar11 < piVar10)) &&\n     (pcVar13 = check_VecOperations((char *)piVar11->array,(char *)piVar10->array),\n     piVar10 = piVar11, pcVar13 == (char *)0x0)) {\n    return 0;\n  }\n  piVar11 = (i386_operand_type *)((int)piVar10 + -1);\n  if (*(byte *)((int)piVar10 + -1) == 0x20) {\n    piVar11 = (i386_operand_type *)((int)piVar10 + -2);\n    piVar10 = (i386_operand_type *)((int)piVar10 + -1);\n  }\n  piVar17 = piVar10;\n  if (*(byte *)piVar11 == 0x29) {\n    bVar5 = *(byte *)((int)piVar11 + -1);\n    iVar12 = 1;\n    piVar17 = (i386_operand_type *)((int)piVar11 + -1);\n    if (bVar5 == 0x29) goto LAB_000471f8;\nLAB_000471e0:\n    if (bVar5 != 0x28) goto LAB_000471eb;\n    iVar12 = iVar12 + -1;\n    do {\n      if (iVar12 == 0) {\n        bVar5 = *(byte *)((int)piVar17 + 1);\n        if (bVar5 == 0x20) {\n          bVar5 = *(byte *)((int)piVar11 + 1);\n          piVar11 = (i386_operand_type *)((int)piVar17 + 2);\n        }\n        if (bVar5 == 0x2c) {\n          pbVar22 = (byte *)((int)i.types + this_operand * 8 + 2);\n          *pbVar22 = *pbVar22 | 0x40;\n          if (i.base_reg != (reg_entry *)0x0) goto LAB_00047347;\n          bVar5 = *(byte *)piVar11;\n        }\n        else {\n          i.base_reg = parse_register((char *)piVar11->array,ppcVar20);\n          if (i.base_reg == (reg_entry *)0x0) {\n            if (*(byte *)piVar11 == 0x25) {\n              end_op = strchr((char *)piVar11->array,0x2c);\n              if (end_op != (char *)0x0) {\n                *end_op = '\0';\n              }\n              pcVar13 = (char *)dcgettext(0,"bad register name `%s\'",5);\n              as_bad(pcVar13,piVar11);\n              return 0;\n            }\n            if (reg_string != piVar10) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar22 = (byte *)((int)i.types + this_operand * 8 + 2);\n          *pbVar22 = *pbVar22 | 0x40;\nLAB_00047347:\n          bVar5 = *end_op;\n          piVar11 = (i386_operand_type *)end_op;\n          if (bVar5 == 0x20) {\n            bVar5 = end_op[1];\n            piVar11 = (i386_operand_type *)(end_op + 1);\n          }\n        }\n        if (bVar5 != 0x2c) {\n          if (bVar5 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }\n          break;\n        }\n        pbVar22 = (byte *)((int)piVar11 + 2);\n        if (*(byte *)((int)piVar11 + 1) != 0x20) {\n          pbVar22 = (byte *)((int)piVar11 + 1);\n        }\n        i.index_reg = parse_register((char *)pbVar22,ppcVar20);\n        pcVar13 = input_line_pointer;\n        if (i.index_reg == (reg_entry *)0x0) {\n          if (*pbVar22 == 0x25) {\n            end_op = strchr((char *)pbVar22,0x2c);\n            if (end_op != (char *)0x0) {\n              *end_op = '\0';\n            }\n            pcVar13 = (char *)dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            as_bad(pcVar13,pbVar22);\n            return 0;\n          }\n          if (*pbVar22 == 0x29) {\n            pcVar13 = (char *)dcgettext(0,\n                                        "expecting index register or scale factor after `,\'; got \'%c\'"\n                                        ,5,operand_string);\n            as_bad(pcVar13,0x29);\n            return 0;\n          }\n        }\n        else {\n          cVar4 = *end_op;\n          if (cVar4 == ' ') {\n            cVar4 = end_op[1];\n            end_op = end_op + 1;\n          }\n          if (cVar4 != ',') {\n            if (cVar4 != ')') {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          cVar4 = end_op[1];\n          pbVar22 = (byte *)(end_op + 1);\n          if (cVar4 == ' ') {\n            pbVar22 = (byte *)(end_op + 2);\n            cVar4 = end_op[2];\n          }\n          if (cVar4 == ')') break;\n        }\n        ppcVar20 = &input_line_pointer;\n        input_line_pointer = (char *)pbVar22;\n        oVar19 = get_absolute_expression();\n        if (oVar19 == 2) {\n          i.log2_scale_factor = 1;\n          bVar5 = 1;\nLAB_0004751e:\n          if (i.index_reg == (reg_entry *)0x0) {\n            pcVar7 = (char *)dcgettext(0,"scale factor of %d without an index register",5,bVar5);\n            as_warn(pcVar7,1 << (bVar5 & 0x1f));\n            i.log2_scale_factor = 0;\n          }\n        }\n        else {\n          if (-(int)((ulonglong)oVar19 >> 0x20) < (int)(uint)(2 < (uint)oVar19)) {\n            if (oVar19 == 4) {\n              i.log2_scale_factor = 2;\n              bVar5 = 2;\n            }\n            else {\n              if (oVar19 != 8) goto LAB_0004760c;\n              i.log2_scale_factor = 3;\n              bVar5 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (oVar19 != 1) {\nLAB_0004760c:\n            cVar4 = **ppcVar20;\n            **ppcVar20 = '\0';\n            pcVar7 = (char *)dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            as_bad(pcVar7,pbVar22);\n            **ppcVar20 = cVar4;\n            *ppcVar20 = pcVar13;\n            return 0;\n          }\n          i.log2_scale_factor = 0;\n        }\n        pcVar7 = *ppcVar20;\n        *ppcVar20 = pcVar13;\n        if (pcVar7 == (char *)0x0) {\n          return 0;\n        }\n        cVar4 = *pcVar7;\n        if (cVar4 == ' ') {\n          cVar4 = pcVar7[1];\n        }\n        if (cVar4 != ')') {\n          pcVar13 = "expecting `)\' after scale factor in `%s\'";\nLAB_00047255:\n          pcVar13 = (char *)dcgettext(0,pcVar13,5);\n          as_bad(pcVar13,operand_string);\n          return 0;\n        }\n        break;\n      }\nLAB_000471eb:\n      piVar11 = piVar17;\n      bVar5 = *(byte *)((int)piVar11 + -1);\n      piVar17 = (i386_operand_type *)((int)piVar11 + -1);\n      if (bVar5 != 0x29) goto LAB_000471e0;\nLAB_000471f8:\n      iVar12 = iVar12 + 1;\n    } while( true );\n  }\n  piVar10 = piVar17;\n  if (reg_string == piVar17) goto LAB_00046e80;\nLAB_00046cd4:\n  uVar3 = i.disp_operands;\n  iVar12 = this_operand;\n  types.array[1] = 0;\n  types.array[0] = 0x1f0000;\n  if (i.disp_operands == 2) {\n    pcVar13 = "at most %d displacement operands are allowed";\nLAB_00047443:\n    pcVar13 = (char *)dcgettext(0,pcVar13,5);\n    as_bad(pcVar13,2);\n    return 0;\n  }\n  if (((*(byte *)((int)i.types + this_operand * 8 + 3) & 2) == 0) &&\n     ((undefined1  [12])\n      ((undefined1  [12])current_templates->start->opcode_modifier & (undefined1  [12])0x60) !=\n      (undefined1  [12])0x0)) {\n    if (flag_code == CODE_64BIT) {\n      if ((i.prefix[3] != '\0') || (uVar21 = 0xc0000, i.suffix == 'w')) goto LAB_00046d4f;\n    }\n    else {\n      bVar18 = true;\n      if (i.prefix[3] == '\0') {\n        cVar4 = 'l';\n        if (flag_code != CODE_16BIT) {\n          cVar4 = 'w';\n        }\n        bVar18 = i.suffix == cVar4;\n      }\n      uVar21 = 0x40000;\n      if ((flag_code == CODE_16BIT) != bVar18) {\nLAB_00046d4f:\n        uVar21 = 0x20000;\n      }\n    }\n  }\n  else if (flag_code == CODE_64BIT) {\n    uVar21 = 0x1c0000;\n    if (i.prefix[2] != '\0') {\n      uVar21 = 0x40000;\n    }\n  }\n  else {\n    uVar21 = 0x40000;\n    if ((i.prefix[2] != '\0') != (flag_code == CODE_16BIT)) goto LAB_00046d4f;\n  }\n  i.types[this_operand].array[0] = i.types[this_operand].array[0] | uVar21;\n  paVar8 = (segT)(disp_expressions + i.disp_operands);\n  i.op[iVar12].disps = (expressionS *)paVar8;\n  pcVar13 = input_line_pointer;\n  i.disp_operands = i.disp_operands + 1;\n  ppcVar20 = &input_line_pointer;\n  pcVar7 = save_stack_p + 1;\n  input_line_pointer = (char *)reg_string;\n  *save_stack_p = *(char *)piVar10;\n  save_stack_p = pcVar7;\n  *(undefined1 *)piVar10 = 0;\n  pcVar7 = lex_got(in_stack_ffffffb4,(int *)&input_line_pointer,piVar10);\n  if (pcVar7 != (char *)0x0) {\n    *ppcVar20 = pcVar7;\n  }\n  expr(0,(expressionS *)paVar8,expr_normal);\n  pcVar16 = *ppcVar20;\n  cVar4 = *pcVar16;\n  pcVar14 = pcVar16;\n  if (cVar4 == ' ') {\n    pcVar14 = pcVar16 + 1;\n    *ppcVar20 = pcVar14;\n    cVar4 = pcVar16[1];\n  }\n  if (cVar4 != '\0') {\n    pcVar16 = (char *)dcgettext(0,"junk `%s\' after expression",5);\n    as_bad(pcVar16,pcVar14);\n  }\n  *ppcVar20 = pcVar13;\n  if (pcVar7 != (char *)0x0) {\n    free(pcVar7);\n    if ((disp_expressions[uVar3].field_0x10 == '\x02') ||\n       (disp_expressions[uVar3].field_0x10 == '\x05')) {\n      disp_expressions[uVar3].field_0x10 = 0;\n    }\n  }\n  types_01.array[1] = (uint)ppcVar20;\n  types_01.array[0] = (uint)in_stack_ffffffb4;\n  iVar12 = i386_finalize_displacement\n                     (paVar8,(expressionS *)types.array[0],types_01,(char *)reg_string->array);\n  pcVar13 = save_stack_p + -1;\n  save_stack_p = save_stack_p + -1;\n  *(char *)piVar10 = *pcVar13;\n  if (iVar12 == 0) {\n    return 0;\n  }\nLAB_00046e80:\n  iVar12 = this_operand;\n  if (((((i.base_reg != (reg_entry *)0x0) &&\n        (((i.base_reg)->reg_type).array[1] == reg16_inoutportreg.array[1])) &&\n       (((i.base_reg)->reg_type).array[0] == reg16_inoutportreg.array[0])) &&\n      ((i.index_reg == (reg_entry *)0x0 && (i.log2_scale_factor == 0)))) &&\n     ((i.seg[i.mem_operands] == (seg_entry *)0x0 &&\n      ((*(byte *)((int)i.types + this_operand * 8 + 2) & 0x1f) == 0)))) {\n    i.types[this_operand].array[0] = 0;\n    *(undefined4 *)((int)i.types + iVar12 * 8 + 4) = 0;\n    pbVar22 = (byte *)((int)i.types + iVar12 * 8 + 2);\n    *pbVar22 = *pbVar22 | 0x80;\n    return 1;\n  }\nLAB_00046ea4:\n  iVar12 = i386_index_check(operand_string);\n  if (iVar12 == 0) {\n    return 0;\n  }\n  pbVar22 = (byte *)((int)i.types + this_operand * 8 + 3);\n  *pbVar22 = *pbVar22 | 0x10;\n  if (i.mem_operands == 0) {\n    i.memop1_string = (char *)xstrdup(operand_string);\n  }\n  i.mem_operands = i.mem_operands + 1;\n  return 1;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "i386_operand_type types_00;" type_identifier identifier ;) (declaration "i386_operand_type types_01;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "byte bVar5;" type_identifier identifier ;) (declaration "char *op_string;" primitive_type (pointer_declarator "*op_string" * identifier) ;) (declaration "expressionS *peVar6;" type_identifier (pointer_declarator "*peVar6" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "segT paVar8;" type_identifier identifier ;) (declaration "size_t sVar9;" primitive_type identifier ;) (declaration "i386_operand_type *piVar10;" type_identifier (pointer_declarator "*piVar10" * identifier) ;) (declaration "i386_operand_type *piVar11;" type_identifier (pointer_declarator "*piVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "insn_template *piVar15;" type_identifier (pointer_declarator "*piVar15" * identifier) ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "i386_operand_type *piVar17;" type_identifier (pointer_declarator "*piVar17" * identifier) ;) (declaration "i386_operand_type *reg_string;" type_identifier (pointer_declarator "*reg_string" * identifier) ;) (declaration "bool bVar18;" primitive_type identifier ;) (declaration "offsetT oVar19;" type_identifier identifier ;) (declaration "bfd_reloc_code_real *in_stack_ffffffb4;" type_identifier (pointer_declarator "*in_stack_ffffffb4" * identifier) ;) (declaration "char **ppcVar20;" primitive_type (pointer_declarator "**ppcVar20" * (pointer_declarator "*ppcVar20" * identifier)) ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "byte *pbVar22;" type_identifier (pointer_declarator "*pbVar22" * identifier) ;) (declaration "char *end_op;" primitive_type (pointer_declarator "*end_op" * identifier) ;) (declaration "i386_operand_type types;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x4691d;" (assignment_expression "uStack_14 = 0x4691d" identifier = number_literal) ;) (expression_statement "cVar4 = *operand_string;" (assignment_expression "cVar4 = *operand_string" identifier = (pointer_expression "*operand_string" * identifier)) ;) (expression_statement "reg_string = (i386_operand_type *)operand_string;" (assignment_expression "reg_string = (i386_operand_type *)operand_string" identifier = (cast_expression "(i386_operand_type *)operand_string" ( (type_descriptor "i386_operand_type *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (cVar4 == ' ') {\n    cVar4 = operand_string[1];\n    reg_string = (i386_operand_type *)(operand_string + 1);\n  }" if (parenthesized_expression "(cVar4 == ' ')" ( (binary_expression "cVar4 == ' '" identifier == (char_literal "' '" ' character ')) )) (compound_statement "{\n    cVar4 = operand_string[1];\n    reg_string = (i386_operand_type *)(operand_string + 1);\n  }" { (expression_statement "cVar4 = operand_string[1];" (assignment_expression "cVar4 = operand_string[1]" identifier = (subscript_expression "operand_string[1]" identifier [ number_literal ])) ;) (expression_statement "reg_string = (i386_operand_type *)(operand_string + 1);" (assignment_expression "reg_string = (i386_operand_type *)(operand_string + 1)" identifier = (cast_expression "(i386_operand_type *)(operand_string + 1)" ( (type_descriptor "i386_operand_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(operand_string + 1)" ( (binary_expression "operand_string + 1" identifier + number_literal) )))) ;) })) (if_statement "if (cVar4 == '*') {\n    if (*(byte *)((int)reg_string + 1) == 0x20) {\n      reg_string = (i386_operand_type *)((int)reg_string + 2);\n    }\n    else {\n      reg_string = (i386_operand_type *)((int)reg_string + 1);\n    }\n    pbVar22 = (byte *)((int)i.types + this_operand * 8 + 3);\n    *pbVar22 = *pbVar22 | 2;\n  }" if (parenthesized_expression "(cVar4 == '*')" ( (binary_expression "cVar4 == '*'" identifier == (char_literal "'*'" ' character ')) )) (compound_statement "{\n    if (*(byte *)((int)reg_string + 1) == 0x20) {\n      reg_string = (i386_operand_type *)((int)reg_string + 2);\n    }\n    else {\n      reg_string = (i386_operand_type *)((int)reg_string + 1);\n    }\n    pbVar22 = (byte *)((int)i.types + this_operand * 8 + 3);\n    *pbVar22 = *pbVar22 | 2;\n  }" { (if_statement "if (*(byte *)((int)reg_string + 1) == 0x20) {\n      reg_string = (i386_operand_type *)((int)reg_string + 2);\n    }\n    else {\n      reg_string = (i386_operand_type *)((int)reg_string + 1);\n    }" if (parenthesized_expression "(*(byte *)((int)reg_string + 1) == 0x20)" ( (binary_expression "*(byte *)((int)reg_string + 1) == 0x20" (pointer_expression "*(byte *)((int)reg_string + 1)" * (cast_expression "(byte *)((int)reg_string + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)reg_string + 1)" ( (binary_expression "(int)reg_string + 1" (cast_expression "(int)reg_string" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n      reg_string = (i386_operand_type *)((int)reg_string + 2);\n    }" { (expression_statement "reg_string = (i386_operand_type *)((int)reg_string + 2);" (assignment_expression "reg_string = (i386_operand_type *)((int)reg_string + 2)" identifier = (cast_expression "(i386_operand_type *)((int)reg_string + 2)" ( (type_descriptor "i386_operand_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)reg_string + 2)" ( (binary_expression "(int)reg_string + 2" (cast_expression "(int)reg_string" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) (else_clause "else {\n      reg_string = (i386_operand_type *)((int)reg_string + 1);\n    }" else (compound_statement "{\n      reg_string = (i386_operand_type *)((int)reg_string + 1);\n    }" { (expression_statement "reg_string = (i386_operand_type *)((int)reg_string + 1);" (assignment_expression "reg_string = (i386_operand_type *)((int)reg_string + 1)" identifier = (cast_expression "(i386_operand_type *)((int)reg_string + 1)" ( (type_descriptor "i386_operand_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)reg_string + 1)" ( (binary_expression "(int)reg_string + 1" (cast_expression "(int)reg_string" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) (expression_statement "pbVar22 = (byte *)((int)i.types + this_operand * 8 + 3);" (assignment_expression "pbVar22 = (byte *)((int)i.types + this_operand * 8 + 3)" identifier = (cast_expression "(byte *)((int)i.types + this_operand * 8 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)i.types + this_operand * 8 + 3)" ( (binary_expression "(int)i.types + this_operand * 8 + 3" (binary_expression "(int)i.types + this_operand * 8" (cast_expression "(int)i.types" ( (type_descriptor "int" primitive_type) ) (field_expression "i.types" identifier . field_identifier)) + (binary_expression "this_operand * 8" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "*pbVar22 = *pbVar22 | 2;" (assignment_expression "*pbVar22 = *pbVar22 | 2" (pointer_expression "*pbVar22" * identifier) = (binary_expression "*pbVar22 | 2" (pointer_expression "*pbVar22" * identifier) | number_literal)) ;) })) (expression_statement "ppcVar20 = &end_op;" (assignment_expression "ppcVar20 = &end_op" identifier = (pointer_expression "&end_op" & identifier)) ;) (expression_statement "peVar6 = (expressionS *)parse_register((char *)reg_string->array,ppcVar20);" (assignment_expression "peVar6 = (expressionS *)parse_register((char *)reg_string->array,ppcVar20)" identifier = (cast_expression "(expressionS *)parse_register((char *)reg_string->array,ppcVar20)" ( (type_descriptor "expressionS *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "parse_register((char *)reg_string->array,ppcVar20)" identifier (argument_list "((char *)reg_string->array,ppcVar20)" ( (cast_expression "(char *)reg_string->array" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "reg_string->array" identifier -> field_identifier)) , identifier ))))) ;) (expression_statement "uVar3 = i.imm_operands;" (assignment_expression "uVar3 = i.imm_operands" identifier = (field_expression "i.imm_operands" identifier . field_identifier)) ;) (if_statement "if (peVar6 == (expressionS *)0x0) {\n    bVar5 = *(byte *)reg_string;\n    if (bVar5 == 0x25) {\n      pcVar13 = "bad register name `%s\'";\nLAB_00046f4c:\n      pcVar13 = (char *)dcgettext(0,pcVar13,5);\n      as_bad(pcVar13,reg_string);\n      return 0;\n    }\n    if (bVar5 == 0x24) {\n      if ((*(byte *)((int)i.types + this_operand * 8 + 3) & 2) != 0) {\n        pcVar13 = (char *)dcgettext(0,"immediate operand illegal with absolute jump",5);\n        as_bad(pcVar13);\n        return 0;\n      }\n      types.array[1] = 0xffffffff;\n      types.array[0] = 0xffffffff;\n      if (i.imm_operands != 2) {\n        peVar6 = im_expressions + i.imm_operands;\n        i.imm_operands = i.imm_operands + 1;\n        i.op[this_operand].disps = peVar6;\n        pcVar13 = input_line_pointer;\n        piVar10 = (i386_operand_type *)((int)reg_string + 2);\n        if (*(byte *)((int)reg_string + 1) != 0x20) {\n          piVar10 = (i386_operand_type *)((int)reg_string + 1);\n        }\n        ppcVar20 = &input_line_pointer;\n        input_line_pointer = (char *)piVar10;\n        pcVar7 = lex_got(in_stack_ffffffb4,(int *)&input_line_pointer,piVar10);\n        if (pcVar7 != (char *)0x0) {\n          input_line_pointer = pcVar7;\n        }\n        paVar8 = expr(0,peVar6,expr_normal);\n        pcVar16 = *ppcVar20;\n        cVar4 = *pcVar16;\n        pcVar14 = pcVar16;\n        if (cVar4 == ' ') {\n          pcVar14 = pcVar16 + 1;\n          *ppcVar20 = pcVar14;\n          cVar4 = pcVar16[1];\n        }\n        if (cVar4 == '{') {\n          pcVar14 = check_VecOperations(pcVar14,(char *)0x0);\n          *ppcVar20 = pcVar14;\n          if (pcVar14 == (char *)0x0) {\n            return 0;\n          }\n          cVar4 = *pcVar14;\n        }\n        if (cVar4 != '\0') {\n          pcVar16 = (char *)dcgettext(0,"junk `%s\' after expression",5);\n          as_bad(pcVar16,pcVar14);\n        }\n        *ppcVar20 = pcVar13;\n        if (pcVar7 != (char *)0x0) {\n          free(pcVar7);\n          if ((im_expressions[uVar3].field_0x10 == '\x02') ||\n             (im_expressions[uVar3].field_0x10 == '\x05')) {\n            im_expressions[uVar3].field_0x10 = 0;\n          }\n        }\n        types_00.array[1] = types.array[1];\n        types_00.array[0] = types.array[0];\n        iVar12 = i386_finalize_immediate(paVar8,peVar6,types_00,(char *)piVar10->array);\n        return (uint)(iVar12 != 0);\n      }\n      pcVar13 = "at most %d immediate operands are allowed";\n      goto LAB_00047443;\n    }\n    if (*operand_string == '{') {\n      iVar12 = RC_SAE_immediate(operand_string);\n      if (iVar12 != 0) {\n        return 1;\n      }\n      bVar5 = *(byte *)reg_string;\n    }\n    iVar12 = this_operand;\n    if (((digit_chars[bVar5] == '\0') && (bVar5 != 0x28 && bVar5 != 0x22)) &&\n       (identifier_chars[bVar5] == '\0')) {\n      pcVar13 = output_invalid((int)(char)bVar5);\n      pcVar7 = (char *)dcgettext(0,"invalid char %s beginning operand %d `%s\'",5);\n      as_bad(pcVar7,pcVar13,iVar12 + 1,reg_string);\n      return 0;\n    }\n    goto LAB_00046c60;\n  }" if (parenthesized_expression "(peVar6 == (expressionS *)0x0)" ( (binary_expression "peVar6 == (expressionS *)0x0" identifier == (cast_expression "(expressionS *)0x0" ( (type_descriptor "expressionS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    bVar5 = *(byte *)reg_string;\n    if (bVar5 == 0x25) {\n      pcVar13 = "bad register name `%s\'";\nLAB_00046f4c:\n      pcVar13 = (char *)dcgettext(0,pcVar13,5);\n      as_bad(pcVar13,reg_string);\n      return 0;\n    }\n    if (bVar5 == 0x24) {\n      if ((*(byte *)((int)i.types + this_operand * 8 + 3) & 2) != 0) {\n        pcVar13 = (char *)dcgettext(0,"immediate operand illegal with absolute jump",5);\n        as_bad(pcVar13);\n        return 0;\n      }\n      types.array[1] = 0xffffffff;\n      types.array[0] = 0xffffffff;\n      if (i.imm_operands != 2) {\n        peVar6 = im_expressions + i.imm_operands;\n        i.imm_operands = i.imm_operands + 1;\n        i.op[this_operand].disps = peVar6;\n        pcVar13 = input_line_pointer;\n        piVar10 = (i386_operand_type *)((int)reg_string + 2);\n        if (*(byte *)((int)reg_string + 1) != 0x20) {\n          piVar10 = (i386_operand_type *)((int)reg_string + 1);\n        }\n        ppcVar20 = &input_line_pointer;\n        input_line_pointer = (char *)piVar10;\n        pcVar7 = lex_got(in_stack_ffffffb4,(int *)&input_line_pointer,piVar10);\n        if (pcVar7 != (char *)0x0) {\n          input_line_pointer = pcVar7;\n        }\n        paVar8 = expr(0,peVar6,expr_normal);\n        pcVar16 = *ppcVar20;\n        cVar4 = *pcVar16;\n        pcVar14 = pcVar16;\n        if (cVar4 == ' ') {\n          pcVar14 = pcVar16 + 1;\n          *ppcVar20 = pcVar14;\n          cVar4 = pcVar16[1];\n        }\n        if (cVar4 == '{') {\n          pcVar14 = check_VecOperations(pcVar14,(char *)0x0);\n          *ppcVar20 = pcVar14;\n          if (pcVar14 == (char *)0x0) {\n            return 0;\n          }\n          cVar4 = *pcVar14;\n        }\n        if (cVar4 != '\0') {\n          pcVar16 = (char *)dcgettext(0,"junk `%s\' after expression",5);\n          as_bad(pcVar16,pcVar14);\n        }\n        *ppcVar20 = pcVar13;\n        if (pcVar7 != (char *)0x0) {\n          free(pcVar7);\n          if ((im_expressions[uVar3].field_0x10 == '\x02') ||\n             (im_expressions[uVar3].field_0x10 == '\x05')) {\n            im_expressions[uVar3].field_0x10 = 0;\n          }\n        }\n        types_00.array[1] = types.array[1];\n        types_00.array[0] = types.array[0];\n        iVar12 = i386_finalize_immediate(paVar8,peVar6,types_00,(char *)piVar10->array);\n        return (uint)(iVar12 != 0);\n      }\n      pcVar13 = "at most %d immediate operands are allowed";\n      goto LAB_00047443;\n    }\n    if (*operand_string == '{') {\n      iVar12 = RC_SAE_immediate(operand_string);\n      if (iVar12 != 0) {\n        return 1;\n      }\n      bVar5 = *(byte *)reg_string;\n    }\n    iVar12 = this_operand;\n    if (((digit_chars[bVar5] == '\0') && (bVar5 != 0x28 && bVar5 != 0x22)) &&\n       (identifier_chars[bVar5] == '\0')) {\n      pcVar13 = output_invalid((int)(char)bVar5);\n      pcVar7 = (char *)dcgettext(0,"invalid char %s beginning operand %d `%s\'",5);\n      as_bad(pcVar7,pcVar13,iVar12 + 1,reg_string);\n      return 0;\n    }\n    goto LAB_00046c60;\n  }" { (expression_statement "bVar5 = *(byte *)reg_string;" (assignment_expression "bVar5 = *(byte *)reg_string" identifier = (pointer_expression "*(byte *)reg_string" * (cast_expression "(byte *)reg_string" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (bVar5 == 0x25) {\n      pcVar13 = "bad register name `%s\'";\nLAB_00046f4c:\n      pcVar13 = (char *)dcgettext(0,pcVar13,5);\n      as_bad(pcVar13,reg_string);\n      return 0;\n    }" if (parenthesized_expression "(bVar5 == 0x25)" ( (binary_expression "bVar5 == 0x25" identifier == number_literal) )) (compound_statement "{\n      pcVar13 = "bad register name `%s\'";\nLAB_00046f4c:\n      pcVar13 = (char *)dcgettext(0,pcVar13,5);\n      as_bad(pcVar13,reg_string);\n      return 0;\n    }" { (expression_statement "pcVar13 = "bad register name `%s\'";" (assignment_expression "pcVar13 = "bad register name `%s\'"" identifier = (string_literal ""bad register name `%s\'"" " string_content escape_sequence ")) ;) (labeled_statement "LAB_00046f4c:\n      pcVar13 = (char *)dcgettext(0,pcVar13,5);" statement_identifier : (expression_statement "pcVar13 = (char *)dcgettext(0,pcVar13,5);" (assignment_expression "pcVar13 = (char *)dcgettext(0,pcVar13,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar13,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar13,5)" identifier (argument_list "(0,pcVar13,5)" ( number_literal , identifier , number_literal ))))) ;)) (expression_statement "as_bad(pcVar13,reg_string);" (call_expression "as_bad(pcVar13,reg_string)" identifier (argument_list "(pcVar13,reg_string)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (bVar5 == 0x24) {\n      if ((*(byte *)((int)i.types + this_operand * 8 + 3) & 2) != 0) {\n        pcVar13 = (char *)dcgettext(0,"immediate operand illegal with absolute jump",5);\n        as_bad(pcVar13);\n        return 0;\n      }\n      types.array[1] = 0xffffffff;\n      types.array[0] = 0xffffffff;\n      if (i.imm_operands != 2) {\n        peVar6 = im_expressions + i.imm_operands;\n        i.imm_operands = i.imm_operands + 1;\n        i.op[this_operand].disps = peVar6;\n        pcVar13 = input_line_pointer;\n        piVar10 = (i386_operand_type *)((int)reg_string + 2);\n        if (*(byte *)((int)reg_string + 1) != 0x20) {\n          piVar10 = (i386_operand_type *)((int)reg_string + 1);\n        }\n        ppcVar20 = &input_line_pointer;\n        input_line_pointer = (char *)piVar10;\n        pcVar7 = lex_got(in_stack_ffffffb4,(int *)&input_line_pointer,piVar10);\n        if (pcVar7 != (char *)0x0) {\n          input_line_pointer = pcVar7;\n        }\n        paVar8 = expr(0,peVar6,expr_normal);\n        pcVar16 = *ppcVar20;\n        cVar4 = *pcVar16;\n        pcVar14 = pcVar16;\n        if (cVar4 == ' ') {\n          pcVar14 = pcVar16 + 1;\n          *ppcVar20 = pcVar14;\n          cVar4 = pcVar16[1];\n        }\n        if (cVar4 == '{') {\n          pcVar14 = check_VecOperations(pcVar14,(char *)0x0);\n          *ppcVar20 = pcVar14;\n          if (pcVar14 == (char *)0x0) {\n            return 0;\n          }\n          cVar4 = *pcVar14;\n        }\n        if (cVar4 != '\0') {\n          pcVar16 = (char *)dcgettext(0,"junk `%s\' after expression",5);\n          as_bad(pcVar16,pcVar14);\n        }\n        *ppcVar20 = pcVar13;\n        if (pcVar7 != (char *)0x0) {\n          free(pcVar7);\n          if ((im_expressions[uVar3].field_0x10 == '\x02') ||\n             (im_expressions[uVar3].field_0x10 == '\x05')) {\n            im_expressions[uVar3].field_0x10 = 0;\n          }\n        }\n        types_00.array[1] = types.array[1];\n        types_00.array[0] = types.array[0];\n        iVar12 = i386_finalize_immediate(paVar8,peVar6,types_00,(char *)piVar10->array);\n        return (uint)(iVar12 != 0);\n      }\n      pcVar13 = "at most %d immediate operands are allowed";\n      goto LAB_00047443;\n    }" if (parenthesized_expression "(bVar5 == 0x24)" ( (binary_expression "bVar5 == 0x24" identifier == number_literal) )) (compound_statement "{\n      if ((*(byte *)((int)i.types + this_operand * 8 + 3) & 2) != 0) {\n        pcVar13 = (char *)dcgettext(0,"immediate operand illegal with absolute jump",5);\n        as_bad(pcVar13);\n        return 0;\n      }\n      types.array[1] = 0xffffffff;\n      types.array[0] = 0xffffffff;\n      if (i.imm_operands != 2) {\n        peVar6 = im_expressions + i.imm_operands;\n        i.imm_operands = i.imm_operands + 1;\n        i.op[this_operand].disps = peVar6;\n        pcVar13 = input_line_pointer;\n        piVar10 = (i386_operand_type *)((int)reg_string + 2);\n        if (*(byte *)((int)reg_string + 1) != 0x20) {\n          piVar10 = (i386_operand_type *)((int)reg_string + 1);\n        }\n        ppcVar20 = &input_line_pointer;\n        input_line_pointer = (char *)piVar10;\n        pcVar7 = lex_got(in_stack_ffffffb4,(int *)&input_line_pointer,piVar10);\n        if (pcVar7 != (char *)0x0) {\n          input_line_pointer = pcVar7;\n        }\n        paVar8 = expr(0,peVar6,expr_normal);\n        pcVar16 = *ppcVar20;\n        cVar4 = *pcVar16;\n        pcVar14 = pcVar16;\n        if (cVar4 == ' ') {\n          pcVar14 = pcVar16 + 1;\n          *ppcVar20 = pcVar14;\n          cVar4 = pcVar16[1];\n        }\n        if (cVar4 == '{') {\n          pcVar14 = check_VecOperations(pcVar14,(char *)0x0);\n          *ppcVar20 = pcVar14;\n          if (pcVar14 == (char *)0x0) {\n            return 0;\n          }\n          cVar4 = *pcVar14;\n        }\n        if (cVar4 != '\0') {\n          pcVar16 = (char *)dcgettext(0,"junk `%s\' after expression",5);\n          as_bad(pcVar16,pcVar14);\n        }\n        *ppcVar20 = pcVar13;\n        if (pcVar7 != (char *)0x0) {\n          free(pcVar7);\n          if ((im_expressions[uVar3].field_0x10 == '\x02') ||\n             (im_expressions[uVar3].field_0x10 == '\x05')) {\n            im_expressions[uVar3].field_0x10 = 0;\n          }\n        }\n        types_00.array[1] = types.array[1];\n        types_00.array[0] = types.array[0];\n        iVar12 = i386_finalize_immediate(paVar8,peVar6,types_00,(char *)piVar10->array);\n        return (uint)(iVar12 != 0);\n      }\n      pcVar13 = "at most %d immediate operands are allowed";\n      goto LAB_00047443;\n    }" { (if_statement "if ((*(byte *)((int)i.types + this_operand * 8 + 3) & 2) != 0) {\n        pcVar13 = (char *)dcgettext(0,"immediate operand illegal with absolute jump",5);\n        as_bad(pcVar13);\n        return 0;\n      }" if (parenthesized_expression "((*(byte *)((int)i.types + this_operand * 8 + 3) & 2) != 0)" ( (binary_expression "(*(byte *)((int)i.types + this_operand * 8 + 3) & 2) != 0" (parenthesized_expression "(*(byte *)((int)i.types + this_operand * 8 + 3) & 2)" ( (binary_expression "*(byte *)((int)i.types + this_operand * 8 + 3) & 2" (pointer_expression "*(byte *)((int)i.types + this_operand * 8 + 3)" * (cast_expression "(byte *)((int)i.types + this_operand * 8 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)i.types + this_operand * 8 + 3)" ( (binary_expression "(int)i.types + this_operand * 8 + 3" (binary_expression "(int)i.types + this_operand * 8" (cast_expression "(int)i.types" ( (type_descriptor "int" primitive_type) ) (field_expression "i.types" identifier . field_identifier)) + (binary_expression "this_operand * 8" identifier * number_literal)) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        pcVar13 = (char *)dcgettext(0,"immediate operand illegal with absolute jump",5);\n        as_bad(pcVar13);\n        return 0;\n      }" { (expression_statement "pcVar13 = (char *)dcgettext(0,"immediate operand illegal with absolute jump",5);" (assignment_expression "pcVar13 = (char *)dcgettext(0,"immediate operand illegal with absolute jump",5)" identifier = (cast_expression "(char *)dcgettext(0,"immediate operand illegal with absolute jump",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"immediate operand illegal with absolute jump",5)" identifier (argument_list "(0,"immediate operand illegal with absolute jump",5)" ( number_literal , (string_literal ""immediate operand illegal with absolute jump"" " 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 ;) })) (expression_statement "types.array[1] = 0xffffffff;" (assignment_expression "types.array[1] = 0xffffffff" (subscript_expression "types.array[1]" (field_expression "types.array" identifier . field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "types.array[0] = 0xffffffff;" (assignment_expression "types.array[0] = 0xffffffff" (subscript_expression "types.array[0]" (field_expression "types.array" identifier . field_identifier) [ number_literal ]) = number_literal) ;) (if_statement "if (i.imm_operands != 2) {\n        peVar6 = im_expressions + i.imm_operands;\n        i.imm_operands = i.imm_operands + 1;\n        i.op[this_operand].disps = peVar6;\n        pcVar13 = input_line_pointer;\n        piVar10 = (i386_operand_type *)((int)reg_string + 2);\n        if (*(byte *)((int)reg_string + 1) != 0x20) {\n          piVar10 = (i386_operand_type *)((int)reg_string + 1);\n        }\n        ppcVar20 = &input_line_pointer;\n        input_line_pointer = (char *)piVar10;\n        pcVar7 = lex_got(in_stack_ffffffb4,(int *)&input_line_pointer,piVar10);\n        if (pcVar7 != (char *)0x0) {\n          input_line_pointer = pcVar7;\n        }\n        paVar8 = expr(0,peVar6,expr_normal);\n        pcVar16 = *ppcVar20;\n        cVar4 = *pcVar16;\n        pcVar14 = pcVar16;\n        if (cVar4 == ' ') {\n          pcVar14 = pcVar16 + 1;\n          *ppcVar20 = pcVar14;\n          cVar4 = pcVar16[1];\n        }\n        if (cVar4 == '{') {\n          pcVar14 = check_VecOperations(pcVar14,(char *)0x0);\n          *ppcVar20 = pcVar14;\n          if (pcVar14 == (char *)0x0) {\n            return 0;\n          }\n          cVar4 = *pcVar14;\n        }\n        if (cVar4 != '\0') {\n          pcVar16 = (char *)dcgettext(0,"junk `%s\' after expression",5);\n          as_bad(pcVar16,pcVar14);\n        }\n        *ppcVar20 = pcVar13;\n        if (pcVar7 != (char *)0x0) {\n          free(pcVar7);\n          if ((im_expressions[uVar3].field_0x10 == '\x02') ||\n             (im_expressions[uVar3].field_0x10 == '\x05')) {\n            im_expressions[uVar3].field_0x10 = 0;\n          }\n        }\n        types_00.array[1] = types.array[1];\n        types_00.array[0] = types.array[0];\n        iVar12 = i386_finalize_immediate(paVar8,peVar6,types_00,(char *)piVar10->array);\n        return (uint)(iVar12 != 0);\n      }" if (parenthesized_expression "(i.imm_operands != 2)" ( (binary_expression "i.imm_operands != 2" (field_expression "i.imm_operands" identifier . field_identifier) != number_literal) )) (compound_statement "{\n        peVar6 = im_expressions + i.imm_operands;\n        i.imm_operands = i.imm_operands + 1;\n        i.op[this_operand].disps = peVar6;\n        pcVar13 = input_line_pointer;\n        piVar10 = (i386_operand_type *)((int)reg_string + 2);\n        if (*(byte *)((int)reg_string + 1) != 0x20) {\n          piVar10 = (i386_operand_type *)((int)reg_string + 1);\n        }\n        ppcVar20 = &input_line_pointer;\n        input_line_pointer = (char *)piVar10;\n        pcVar7 = lex_got(in_stack_ffffffb4,(int *)&input_line_pointer,piVar10);\n        if (pcVar7 != (char *)0x0) {\n          input_line_pointer = pcVar7;\n        }\n        paVar8 = expr(0,peVar6,expr_normal);\n        pcVar16 = *ppcVar20;\n        cVar4 = *pcVar16;\n        pcVar14 = pcVar16;\n        if (cVar4 == ' ') {\n          pcVar14 = pcVar16 + 1;\n          *ppcVar20 = pcVar14;\n          cVar4 = pcVar16[1];\n        }\n        if (cVar4 == '{') {\n          pcVar14 = check_VecOperations(pcVar14,(char *)0x0);\n          *ppcVar20 = pcVar14;\n          if (pcVar14 == (char *)0x0) {\n            return 0;\n          }\n          cVar4 = *pcVar14;\n        }\n        if (cVar4 != '\0') {\n          pcVar16 = (char *)dcgettext(0,"junk `%s\' after expression",5);\n          as_bad(pcVar16,pcVar14);\n        }\n        *ppcVar20 = pcVar13;\n        if (pcVar7 != (char *)0x0) {\n          free(pcVar7);\n          if ((im_expressions[uVar3].field_0x10 == '\x02') ||\n             (im_expressions[uVar3].field_0x10 == '\x05')) {\n            im_expressions[uVar3].field_0x10 = 0;\n          }\n        }\n        types_00.array[1] = types.array[1];\n        types_00.array[0] = types.array[0];\n        iVar12 = i386_finalize_immediate(paVar8,peVar6,types_00,(char *)piVar10->array);\n        return (uint)(iVar12 != 0);\n      }" { (expression_statement "peVar6 = im_expressions + i.imm_operands;" (assignment_expression "peVar6 = im_expressions + i.imm_operands" identifier = (binary_expression "im_expressions + i.imm_operands" identifier + (field_expression "i.imm_operands" identifier . field_identifier))) ;) (expression_statement "i.imm_operands = i.imm_operands + 1;" (assignment_expression "i.imm_operands = i.imm_operands + 1" (field_expression "i.imm_operands" identifier . field_identifier) = (binary_expression "i.imm_operands + 1" (field_expression "i.imm_operands" identifier . field_identifier) + number_literal)) ;) (expression_statement "i.op[this_operand].disps = peVar6;" (assignment_expression "i.op[this_operand].disps = peVar6" (field_expression "i.op[this_operand].disps" (subscript_expression "i.op[this_operand]" (field_expression "i.op" identifier . field_identifier) [ identifier ]) . field_identifier) = identifier) ;) (expression_statement "pcVar13 = input_line_pointer;" (assignment_expression "pcVar13 = input_line_pointer" identifier = identifier) ;) (expression_statement "piVar10 = (i386_operand_type *)((int)reg_string + 2);" (assignment_expression "piVar10 = (i386_operand_type *)((int)reg_string + 2)" identifier = (cast_expression "(i386_operand_type *)((int)reg_string + 2)" ( (type_descriptor "i386_operand_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)reg_string + 2)" ( (binary_expression "(int)reg_string + 2" (cast_expression "(int)reg_string" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (*(byte *)((int)reg_string + 1) != 0x20) {\n          piVar10 = (i386_operand_type *)((int)reg_string + 1);\n        }" if (parenthesized_expression "(*(byte *)((int)reg_string + 1) != 0x20)" ( (binary_expression "*(byte *)((int)reg_string + 1) != 0x20" (pointer_expression "*(byte *)((int)reg_string + 1)" * (cast_expression "(byte *)((int)reg_string + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)reg_string + 1)" ( (binary_expression "(int)reg_string + 1" (cast_expression "(int)reg_string" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n          piVar10 = (i386_operand_type *)((int)reg_string + 1);\n        }" { (expression_statement "piVar10 = (i386_operand_type *)((int)reg_string + 1);" (assignment_expression "piVar10 = (i386_operand_type *)((int)reg_string + 1)" identifier = (cast_expression "(i386_operand_type *)((int)reg_string + 1)" ( (type_descriptor "i386_operand_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)reg_string + 1)" ( (binary_expression "(int)reg_string + 1" (cast_expression "(int)reg_string" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "ppcVar20 = &input_line_pointer;" (assignment_expression "ppcVar20 = &input_line_pointer" identifier = (pointer_expression "&input_line_pointer" & identifier)) ;) (expression_statement "input_line_pointer = (char *)piVar10;" (assignment_expression "input_line_pointer = (char *)piVar10" identifier = (cast_expression "(char *)piVar10" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pcVar7 = lex_got(in_stack_ffffffb4,(int *)&input_line_pointer,piVar10);" (assignment_expression "pcVar7 = lex_got(in_stack_ffffffb4,(int *)&input_line_pointer,piVar10)" identifier = (call_expression "lex_got(in_stack_ffffffb4,(int *)&input_line_pointer,piVar10)" identifier (argument_list "(in_stack_ffffffb4,(int *)&input_line_pointer,piVar10)" ( identifier , (cast_expression "(int *)&input_line_pointer" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&input_line_pointer" & identifier)) , identifier )))) ;) (if_statement "if (pcVar7 != (char *)0x0) {\n          input_line_pointer = pcVar7;\n        }" if (parenthesized_expression "(pcVar7 != (char *)0x0)" ( (binary_expression "pcVar7 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          input_line_pointer = pcVar7;\n        }" { (expression_statement "input_line_pointer = pcVar7;" (assignment_expression "input_line_pointer = pcVar7" identifier = identifier) ;) })) (expression_statement "paVar8 = expr(0,peVar6,expr_normal);" (assignment_expression "paVar8 = expr(0,peVar6,expr_normal)" identifier = (call_expression "expr(0,peVar6,expr_normal)" identifier (argument_list "(0,peVar6,expr_normal)" ( number_literal , identifier , identifier )))) ;) (expression_statement "pcVar16 = *ppcVar20;" (assignment_expression "pcVar16 = *ppcVar20" identifier = (pointer_expression "*ppcVar20" * identifier)) ;) (expression_statement "cVar4 = *pcVar16;" (assignment_expression "cVar4 = *pcVar16" identifier = (pointer_expression "*pcVar16" * identifier)) ;) (expression_statement "pcVar14 = pcVar16;" (assignment_expression "pcVar14 = pcVar16" identifier = identifier) ;) (if_statement "if (cVar4 == ' ') {\n          pcVar14 = pcVar16 + 1;\n          *ppcVar20 = pcVar14;\n          cVar4 = pcVar16[1];\n        }" if (parenthesized_expression "(cVar4 == ' ')" ( (binary_expression "cVar4 == ' '" identifier == (char_literal "' '" ' character ')) )) (compound_statement "{\n          pcVar14 = pcVar16 + 1;\n          *ppcVar20 = pcVar14;\n          cVar4 = pcVar16[1];\n        }" { (expression_statement "pcVar14 = pcVar16 + 1;" (assignment_expression "pcVar14 = pcVar16 + 1" identifier = (binary_expression "pcVar16 + 1" identifier + number_literal)) ;) (expression_statement "*ppcVar20 = pcVar14;" (assignment_expression "*ppcVar20 = pcVar14" (pointer_expression "*ppcVar20" * identifier) = identifier) ;) (expression_statement "cVar4 = pcVar16[1];" (assignment_expression "cVar4 = pcVar16[1]" identifier = (subscript_expression "pcVar16[1]" identifier [ number_literal ])) ;) })) (if_statement "if (cVar4 == '{') {\n          pcVar14 = check_VecOperations(pcVar14,(char *)0x0);\n          *ppcVar20 = pcVar14;\n          if (pcVar14 == (char *)0x0) {\n            return 0;\n          }\n          cVar4 = *pcVar14;\n        }" if (parenthesized_expression "(cVar4 == '{')" ( (binary_expression "cVar4 == '{'" identifier == (char_literal "'{'" ' character ')) )) (compound_statement "{\n          pcVar14 = check_VecOperations(pcVar14,(char *)0x0);\n          *ppcVar20 = pcVar14;\n          if (pcVar14 == (char *)0x0) {\n            return 0;\n          }\n          cVar4 = *pcVar14;\n        }" { (expression_statement "pcVar14 = check_VecOperations(pcVar14,(char *)0x0);" (assignment_expression "pcVar14 = check_VecOperations(pcVar14,(char *)0x0)" identifier = (call_expression "check_VecOperations(pcVar14,(char *)0x0)" identifier (argument_list "(pcVar14,(char *)0x0)" ( identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (expression_statement "*ppcVar20 = pcVar14;" (assignment_expression "*ppcVar20 = pcVar14" (pointer_expression "*ppcVar20" * identifier) = identifier) ;) (if_statement "if (pcVar14 == (char *)0x0) {\n            return 0;\n          }" if (parenthesized_expression "(pcVar14 == (char *)0x0)" ( (binary_expression "pcVar14 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "cVar4 = *pcVar14;" (assignment_expression "cVar4 = *pcVar14" identifier = (pointer_expression "*pcVar14" * identifier)) ;) })) (if_statement "if (cVar4 != '\0') {\n          pcVar16 = (char *)dcgettext(0,"junk `%s\' after expression",5);\n          as_bad(pcVar16,pcVar14);\n        }" if (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          pcVar16 = (char *)dcgettext(0,"junk `%s\' after expression",5);\n          as_bad(pcVar16,pcVar14);\n        }" { (expression_statement "pcVar16 = (char *)dcgettext(0,"junk `%s\' after expression",5);" (assignment_expression "pcVar16 = (char *)dcgettext(0,"junk `%s\' after expression",5)" identifier = (cast_expression "(char *)dcgettext(0,"junk `%s\' after expression",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"junk `%s\' after expression",5)" identifier (argument_list "(0,"junk `%s\' after expression",5)" ( number_literal , (string_literal ""junk `%s\' after expression"" " string_content escape_sequence string_content ") , number_literal ))))) ;) (expression_statement "as_bad(pcVar16,pcVar14);" (call_expression "as_bad(pcVar16,pcVar14)" identifier (argument_list "(pcVar16,pcVar14)" ( identifier , identifier ))) ;) })) (expression_statement "*ppcVar20 = pcVar13;" (assignment_expression "*ppcVar20 = pcVar13" (pointer_expression "*ppcVar20" * identifier) = identifier) ;) (if_statement "if (pcVar7 != (char *)0x0) {\n          free(pcVar7);\n          if ((im_expressions[uVar3].field_0x10 == '\x02') ||\n             (im_expressions[uVar3].field_0x10 == '\x05')) {\n            im_expressions[uVar3].field_0x10 = 0;\n          }\n        }" if (parenthesized_expression "(pcVar7 != (char *)0x0)" ( (binary_expression "pcVar7 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          free(pcVar7);\n          if ((im_expressions[uVar3].field_0x10 == '\x02') ||\n             (im_expressions[uVar3].field_0x10 == '\x05')) {\n            im_expressions[uVar3].field_0x10 = 0;\n          }\n        }" { (expression_statement "free(pcVar7);" (call_expression "free(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier ))) ;) (if_statement "if ((im_expressions[uVar3].field_0x10 == '\x02') ||\n             (im_expressions[uVar3].field_0x10 == '\x05')) {\n            im_expressions[uVar3].field_0x10 = 0;\n          }" if (parenthesized_expression "((im_expressions[uVar3].field_0x10 == '\x02') ||\n             (im_expressions[uVar3].field_0x10 == '\x05'))" ( (binary_expression "(im_expressions[uVar3].field_0x10 == '\x02') ||\n             (im_expressions[uVar3].field_0x10 == '\x05')" (parenthesized_expression "(im_expressions[uVar3].field_0x10 == '\x02')" ( (binary_expression "im_expressions[uVar3].field_0x10 == '\x02'" (field_expression "im_expressions[uVar3].field_0x10" (subscript_expression "im_expressions[uVar3]" identifier [ identifier ]) . field_identifier) == (char_literal "'\x02'" ' escape_sequence ')) )) || (parenthesized_expression "(im_expressions[uVar3].field_0x10 == '\x05')" ( (binary_expression "im_expressions[uVar3].field_0x10 == '\x05'" (field_expression "im_expressions[uVar3].field_0x10" (subscript_expression "im_expressions[uVar3]" identifier [ identifier ]) . field_identifier) == (char_literal "'\x05'" ' escape_sequence ')) ))) )) (compound_statement "{\n            im_expressions[uVar3].field_0x10 = 0;\n          }" { (expression_statement "im_expressions[uVar3].field_0x10 = 0;" (assignment_expression "im_expressions[uVar3].field_0x10 = 0" (field_expression "im_expressions[uVar3].field_0x10" (subscript_expression "im_expressions[uVar3]" identifier [ identifier ]) . field_identifier) = number_literal) ;) })) })) (expression_statement "types_00.array[1] = types.array[1];" (assignment_expression "types_00.array[1] = types.array[1]" (subscript_expression "types_00.array[1]" (field_expression "types_00.array" identifier . field_identifier) [ number_literal ]) = (subscript_expression "types.array[1]" (field_expression "types.array" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "types_00.array[0] = types.array[0];" (assignment_expression "types_00.array[0] = types.array[0]" (subscript_expression "types_00.array[0]" (field_expression "types_00.array" identifier . field_identifier) [ number_literal ]) = (subscript_expression "types.array[0]" (field_expression "types.array" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "iVar12 = i386_finalize_immediate(paVar8,peVar6,types_00,(char *)piVar10->array);" (assignment_expression "iVar12 = i386_finalize_immediate(paVar8,peVar6,types_00,(char *)piVar10->array)" identifier = (call_expression "i386_finalize_immediate(paVar8,peVar6,types_00,(char *)piVar10->array)" identifier (argument_list "(paVar8,peVar6,types_00,(char *)piVar10->array)" ( identifier , identifier , identifier , (cast_expression "(char *)piVar10->array" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "piVar10->array" identifier -> field_identifier)) )))) ;) (return_statement "return (uint)(iVar12 != 0);" return (call_expression "(uint)(iVar12 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) ))) ;) })) (expression_statement "pcVar13 = "at most %d immediate operands are allowed";" (assignment_expression "pcVar13 = "at most %d immediate operands are allowed"" identifier = (string_literal ""at most %d immediate operands are allowed"" " string_content ")) ;) (goto_statement "goto LAB_00047443;" goto statement_identifier ;) })) (if_statement "if (*operand_string == '{') {\n      iVar12 = RC_SAE_immediate(operand_string);\n      if (iVar12 != 0) {\n        return 1;\n      }\n      bVar5 = *(byte *)reg_string;\n    }" if (parenthesized_expression "(*operand_string == '{')" ( (binary_expression "*operand_string == '{'" (pointer_expression "*operand_string" * identifier) == (char_literal "'{'" ' character ')) )) (compound_statement "{\n      iVar12 = RC_SAE_immediate(operand_string);\n      if (iVar12 != 0) {\n        return 1;\n      }\n      bVar5 = *(byte *)reg_string;\n    }" { (expression_statement "iVar12 = RC_SAE_immediate(operand_string);" (assignment_expression "iVar12 = RC_SAE_immediate(operand_string)" identifier = (call_expression "RC_SAE_immediate(operand_string)" identifier (argument_list "(operand_string)" ( identifier )))) ;) (if_statement "if (iVar12 != 0) {\n        return 1;\n      }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "bVar5 = *(byte *)reg_string;" (assignment_expression "bVar5 = *(byte *)reg_string" identifier = (pointer_expression "*(byte *)reg_string" * (cast_expression "(byte *)reg_string" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) })) (expression_statement "iVar12 = this_operand;" (assignment_expression "iVar12 = this_operand" identifier = identifier) ;) (if_statement "if (((digit_chars[bVar5] == '\0') && (bVar5 != 0x28 && bVar5 != 0x22)) &&\n       (identifier_chars[bVar5] == '\0')) {\n      pcVar13 = output_invalid((int)(char)bVar5);\n      pcVar7 = (char *)dcgettext(0,"invalid char %s beginning operand %d `%s\'",5);\n      as_bad(pcVar7,pcVar13,iVar12 + 1,reg_string);\n      return 0;\n    }" if (parenthesized_expression "(((digit_chars[bVar5] == '\0') && (bVar5 != 0x28 && bVar5 != 0x22)) &&\n       (identifier_chars[bVar5] == '\0'))" ( (binary_expression "((digit_chars[bVar5] == '\0') && (bVar5 != 0x28 && bVar5 != 0x22)) &&\n       (identifier_chars[bVar5] == '\0')" (parenthesized_expression "((digit_chars[bVar5] == '\0') && (bVar5 != 0x28 && bVar5 != 0x22))" ( (binary_expression "(digit_chars[bVar5] == '\0') && (bVar5 != 0x28 && bVar5 != 0x22)" (parenthesized_expression "(digit_chars[bVar5] == '\0')" ( (binary_expression "digit_chars[bVar5] == '\0'" (subscript_expression "digit_chars[bVar5]" identifier [ identifier ]) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(bVar5 != 0x28 && bVar5 != 0x22)" ( (binary_expression "bVar5 != 0x28 && bVar5 != 0x22" (binary_expression "bVar5 != 0x28" identifier != number_literal) && (binary_expression "bVar5 != 0x22" identifier != number_literal)) ))) )) && (parenthesized_expression "(identifier_chars[bVar5] == '\0')" ( (binary_expression "identifier_chars[bVar5] == '\0'" (subscript_expression "identifier_chars[bVar5]" identifier [ identifier ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      pcVar13 = output_invalid((int)(char)bVar5);\n      pcVar7 = (char *)dcgettext(0,"invalid char %s beginning operand %d `%s\'",5);\n      as_bad(pcVar7,pcVar13,iVar12 + 1,reg_string);\n      return 0;\n    }" { (expression_statement "pcVar13 = output_invalid((int)(char)bVar5);" (assignment_expression "pcVar13 = output_invalid((int)(char)bVar5)" identifier = (call_expression "output_invalid((int)(char)bVar5)" identifier (argument_list "((int)(char)bVar5)" ( (cast_expression "(int)(char)bVar5" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar5" ( (type_descriptor "char" primitive_type) ) identifier)) )))) ;) (expression_statement "pcVar7 = (char *)dcgettext(0,"invalid char %s beginning operand %d `%s\'",5);" (assignment_expression "pcVar7 = (char *)dcgettext(0,"invalid char %s beginning operand %d `%s\'",5)" identifier = (cast_expression "(char *)dcgettext(0,"invalid char %s beginning operand %d `%s\'",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"invalid char %s beginning operand %d `%s\'",5)" identifier (argument_list "(0,"invalid char %s beginning operand %d `%s\'",5)" ( number_literal , (string_literal ""invalid char %s beginning operand %d `%s\'"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "as_bad(pcVar7,pcVar13,iVar12 + 1,reg_string);" (call_expression "as_bad(pcVar7,pcVar13,iVar12 + 1,reg_string)" identifier (argument_list "(pcVar7,pcVar13,iVar12 + 1,reg_string)" ( identifier , identifier , (binary_expression "iVar12 + 1" identifier + number_literal) , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (goto_statement "goto LAB_00046c60;" goto statement_identifier ;) })) (expression_statement "cVar4 = *end_op;" (assignment_expression "cVar4 = *end_op" identifier = (pointer_expression "*end_op" * identifier)) ;) (expression_statement "pcVar13 = end_op;" (assignment_expression "pcVar13 = end_op" identifier = identifier) ;) (if_statement "if (cVar4 == ' ') {\n    cVar4 = end_op[1];\n    pcVar13 = end_op + 1;\n  }" if (parenthesized_expression "(cVar4 == ' ')" ( (binary_expression "cVar4 == ' '" identifier == (char_literal "' '" ' character ')) )) (compound_statement "{\n    cVar4 = end_op[1];\n    pcVar13 = end_op + 1;\n  }" { (expression_statement "cVar4 = end_op[1];" (assignment_expression "cVar4 = end_op[1]" identifier = (subscript_expression "end_op[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar13 = end_op + 1;" (assignment_expression "pcVar13 = end_op + 1" identifier = (binary_expression "end_op + 1" identifier + number_literal)) ;) })) (if_statement "if (cVar4 != ':') {\n    if (cVar4 == '{') {\n      pcVar13 = check_VecOperations(pcVar13,(char *)0x0);\n      if (pcVar13 == (char *)0x0) {\n        return 0;\n      }\n      cVar4 = *pcVar13;\n    }\n    iVar12 = this_operand;\n    if (cVar4 == '\0') {\n      oVar19 = peVar6->X_add_number;\n      iVar2 = this_operand * 8;\n      i.types[this_operand].array[0] =\n           i.types[this_operand].array[0] | (uint)peVar6->X_op_symbol & 0xffbfffff;\n      puVar1 = (uint *)((int)i.types + iVar2 + 4);\n      *puVar1 = *puVar1 | (uint)oVar19;\n      pbVar22 = (byte *)((int)i.types + iVar12 * 8 + 4);\n      *pbVar22 = *pbVar22 & 0xbf;\n      i.reg_operands = i.reg_operands + 1;\n      i.op[iVar12].disps = peVar6;\n      return 1;\n    }\nLAB_00046ad0:\n    pcVar7 = (char *)dcgettext(0,"junk `%s\' after register",5);\n    as_bad(pcVar7,pcVar13);\n    return 0;\n  }" if (parenthesized_expression "(cVar4 != ':')" ( (binary_expression "cVar4 != ':'" identifier != (char_literal "':'" ' character ')) )) (compound_statement "{\n    if (cVar4 == '{') {\n      pcVar13 = check_VecOperations(pcVar13,(char *)0x0);\n      if (pcVar13 == (char *)0x0) {\n        return 0;\n      }\n      cVar4 = *pcVar13;\n    }\n    iVar12 = this_operand;\n    if (cVar4 == '\0') {\n      oVar19 = peVar6->X_add_number;\n      iVar2 = this_operand * 8;\n      i.types[this_operand].array[0] =\n           i.types[this_operand].array[0] | (uint)peVar6->X_op_symbol & 0xffbfffff;\n      puVar1 = (uint *)((int)i.types + iVar2 + 4);\n      *puVar1 = *puVar1 | (uint)oVar19;\n      pbVar22 = (byte *)((int)i.types + iVar12 * 8 + 4);\n      *pbVar22 = *pbVar22 & 0xbf;\n      i.reg_operands = i.reg_operands + 1;\n      i.op[iVar12].disps = peVar6;\n      return 1;\n    }\nLAB_00046ad0:\n    pcVar7 = (char *)dcgettext(0,"junk `%s\' after register",5);\n    as_bad(pcVar7,pcVar13);\n    return 0;\n  }" { (if_statement "if (cVar4 == '{') {\n      pcVar13 = check_VecOperations(pcVar13,(char *)0x0);\n      if (pcVar13 == (char *)0x0) {\n        return 0;\n      }\n      cVar4 = *pcVar13;\n    }" if (parenthesized_expression "(cVar4 == '{')" ( (binary_expression "cVar4 == '{'" identifier == (char_literal "'{'" ' character ')) )) (compound_statement "{\n      pcVar13 = check_VecOperations(pcVar13,(char *)0x0);\n      if (pcVar13 == (char *)0x0) {\n        return 0;\n      }\n      cVar4 = *pcVar13;\n    }" { (expression_statement "pcVar13 = check_VecOperations(pcVar13,(char *)0x0);" (assignment_expression "pcVar13 = check_VecOperations(pcVar13,(char *)0x0)" identifier = (call_expression "check_VecOperations(pcVar13,(char *)0x0)" identifier (argument_list "(pcVar13,(char *)0x0)" ( identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (pcVar13 == (char *)0x0) {\n        return 0;\n      }" if (parenthesized_expression "(pcVar13 == (char *)0x0)" ( (binary_expression "pcVar13 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "cVar4 = *pcVar13;" (assignment_expression "cVar4 = *pcVar13" identifier = (pointer_expression "*pcVar13" * identifier)) ;) })) (expression_statement "iVar12 = this_operand;" (assignment_expression "iVar12 = this_operand" identifier = identifier) ;) (if_statement "if (cVar4 == '\0') {\n      oVar19 = peVar6->X_add_number;\n      iVar2 = this_operand * 8;\n      i.types[this_operand].array[0] =\n           i.types[this_operand].array[0] | (uint)peVar6->X_op_symbol & 0xffbfffff;\n      puVar1 = (uint *)((int)i.types + iVar2 + 4);\n      *puVar1 = *puVar1 | (uint)oVar19;\n      pbVar22 = (byte *)((int)i.types + iVar12 * 8 + 4);\n      *pbVar22 = *pbVar22 & 0xbf;\n      i.reg_operands = i.reg_operands + 1;\n      i.op[iVar12].disps = peVar6;\n      return 1;\n    }" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      oVar19 = peVar6->X_add_number;\n      iVar2 = this_operand * 8;\n      i.types[this_operand].array[0] =\n           i.types[this_operand].array[0] | (uint)peVar6->X_op_symbol & 0xffbfffff;\n      puVar1 = (uint *)((int)i.types + iVar2 + 4);\n      *puVar1 = *puVar1 | (uint)oVar19;\n      pbVar22 = (byte *)((int)i.types + iVar12 * 8 + 4);\n      *pbVar22 = *pbVar22 & 0xbf;\n      i.reg_operands = i.reg_operands + 1;\n      i.op[iVar12].disps = peVar6;\n      return 1;\n    }" { (expression_statement "oVar19 = peVar6->X_add_number;" (assignment_expression "oVar19 = peVar6->X_add_number" identifier = (field_expression "peVar6->X_add_number" identifier -> field_identifier)) ;) (expression_statement "iVar2 = this_operand * 8;" (assignment_expression "iVar2 = this_operand * 8" identifier = (binary_expression "this_operand * 8" identifier * number_literal)) ;) (expression_statement "i.types[this_operand].array[0] =\n           i.types[this_operand].array[0] | (uint)peVar6->X_op_symbol & 0xffbfffff;" (assignment_expression "i.types[this_operand].array[0] =\n           i.types[this_operand].array[0] | (uint)peVar6->X_op_symbol & 0xffbfffff" (subscript_expression "i.types[this_operand].array[0]" (field_expression "i.types[this_operand].array" (subscript_expression "i.types[this_operand]" (field_expression "i.types" identifier . field_identifier) [ identifier ]) . field_identifier) [ number_literal ]) = (binary_expression "i.types[this_operand].array[0] | (uint)peVar6->X_op_symbol & 0xffbfffff" (subscript_expression "i.types[this_operand].array[0]" (field_expression "i.types[this_operand].array" (subscript_expression "i.types[this_operand]" (field_expression "i.types" identifier . field_identifier) [ identifier ]) . field_identifier) [ number_literal ]) | (binary_expression "(uint)peVar6->X_op_symbol & 0xffbfffff" (cast_expression "(uint)peVar6->X_op_symbol" ( (type_descriptor "uint" type_identifier) ) (field_expression "peVar6->X_op_symbol" identifier -> field_identifier)) & number_literal))) ;) (expression_statement "puVar1 = (uint *)((int)i.types + iVar2 + 4);" (assignment_expression "puVar1 = (uint *)((int)i.types + iVar2 + 4)" identifier = (cast_expression "(uint *)((int)i.types + iVar2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)i.types + iVar2 + 4)" ( (binary_expression "(int)i.types + iVar2 + 4" (binary_expression "(int)i.types + iVar2" (cast_expression "(int)i.types" ( (type_descriptor "int" primitive_type) ) (field_expression "i.types" identifier . field_identifier)) + identifier) + number_literal) )))) ;) (expression_statement "*puVar1 = *puVar1 | (uint)oVar19;" (assignment_expression "*puVar1 = *puVar1 | (uint)oVar19" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 | (uint)oVar19" (pointer_expression "*puVar1" * identifier) | (cast_expression "(uint)oVar19" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "pbVar22 = (byte *)((int)i.types + iVar12 * 8 + 4);" (assignment_expression "pbVar22 = (byte *)((int)i.types + iVar12 * 8 + 4)" identifier = (cast_expression "(byte *)((int)i.types + iVar12 * 8 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)i.types + iVar12 * 8 + 4)" ( (binary_expression "(int)i.types + iVar12 * 8 + 4" (binary_expression "(int)i.types + iVar12 * 8" (cast_expression "(int)i.types" ( (type_descriptor "int" primitive_type) ) (field_expression "i.types" identifier . field_identifier)) + (binary_expression "iVar12 * 8" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "*pbVar22 = *pbVar22 & 0xbf;" (assignment_expression "*pbVar22 = *pbVar22 & 0xbf" (pointer_expression "*pbVar22" * identifier) = (binary_expression "*pbVar22 & 0xbf" (pointer_expression "*pbVar22" * identifier) & number_literal)) ;) (expression_statement "i.reg_operands = i.reg_operands + 1;" (assignment_expression "i.reg_operands = i.reg_operands + 1" (field_expression "i.reg_operands" identifier . field_identifier) = (binary_expression "i.reg_operands + 1" (field_expression "i.reg_operands" identifier . field_identifier) + number_literal)) ;) (expression_statement "i.op[iVar12].disps = peVar6;" (assignment_expression "i.op[iVar12].disps = peVar6" (field_expression "i.op[iVar12].disps" (subscript_expression "i.op[iVar12]" (field_expression "i.op" identifier . field_identifier) [ identifier ]) . field_identifier) = identifier) ;) (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00046ad0:\n    pcVar7 = (char *)dcgettext(0,"junk `%s\' after register",5);" statement_identifier : (expression_statement "pcVar7 = (char *)dcgettext(0,"junk `%s\' after register",5);" (assignment_expression "pcVar7 = (char *)dcgettext(0,"junk `%s\' after register",5)" identifier = (cast_expression "(char *)dcgettext(0,"junk `%s\' after register",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"junk `%s\' after register",5)" identifier (argument_list "(0,"junk `%s\' after register",5)" ( number_literal , (string_literal ""junk `%s\' after register"" " string_content escape_sequence string_content ") , number_literal ))))) ;)) (expression_statement "as_bad(pcVar7,pcVar13);" (call_expression "as_bad(pcVar7,pcVar13)" identifier (argument_list "(pcVar7,pcVar13)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (((uint)peVar6->X_op_symbol & 0x180) == 0) goto LAB_00046ad0;" if (parenthesized_expression "(((uint)peVar6->X_op_symbol & 0x180) == 0)" ( (binary_expression "((uint)peVar6->X_op_symbol & 0x180) == 0" (parenthesized_expression "((uint)peVar6->X_op_symbol & 0x180)" ( (binary_expression "(uint)peVar6->X_op_symbol & 0x180" (cast_expression "(uint)peVar6->X_op_symbol" ( (type_descriptor "uint" type_identifier) ) (field_expression "peVar6->X_op_symbol" identifier -> field_identifier)) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00046ad0;" goto statement_identifier ;)) (switch_statement "switch(*(undefined1 *)((int)&peVar6->X_add_number + 5)) {\n  case 0:\n    i.seg[i.mem_operands] = (seg_entry *)PTR_es_0007fff8;\n    break;\n  case 1:\n    i.seg[i.mem_operands] = (seg_entry *)PTR_cs_0007ffc8;\n    break;\n  case 2:\n    i.seg[i.mem_operands] = (seg_entry *)PTR_ss_0007ffcc;\n    break;\n  case 3:\n    i.seg[i.mem_operands] = (seg_entry *)PTR_ds_0007ff80;\n    break;\n  case 4:\n    i.seg[i.mem_operands] = (seg_entry *)PTR_fs_0007ffac;\n    break;\n  case 5:\n    i.seg[i.mem_operands] = (seg_entry *)PTR_gs_0007ff68;\n  }" switch (parenthesized_expression "(*(undefined1 *)((int)&peVar6->X_add_number + 5))" ( (pointer_expression "*(undefined1 *)((int)&peVar6->X_add_number + 5)" * (cast_expression "(undefined1 *)((int)&peVar6->X_add_number + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&peVar6->X_add_number + 5)" ( (binary_expression "(int)&peVar6->X_add_number + 5" (cast_expression "(int)&peVar6->X_add_number" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&peVar6->X_add_number" & (field_expression "peVar6->X_add_number" identifier -> field_identifier))) + number_literal) )))) )) (compound_statement "{\n  case 0:\n    i.seg[i.mem_operands] = (seg_entry *)PTR_es_0007fff8;\n    break;\n  case 1:\n    i.seg[i.mem_operands] = (seg_entry *)PTR_cs_0007ffc8;\n    break;\n  case 2:\n    i.seg[i.mem_operands] = (seg_entry *)PTR_ss_0007ffcc;\n    break;\n  case 3:\n    i.seg[i.mem_operands] = (seg_entry *)PTR_ds_0007ff80;\n    break;\n  case 4:\n    i.seg[i.mem_operands] = (seg_entry *)PTR_fs_0007ffac;\n    break;\n  case 5:\n    i.seg[i.mem_operands] = (seg_entry *)PTR_gs_0007ff68;\n  }" { (case_statement "case 0:\n    i.seg[i.mem_operands] = (seg_entry *)PTR_es_0007fff8;\n    break;" case number_literal : (expression_statement "i.seg[i.mem_operands] = (seg_entry *)PTR_es_0007fff8;" (assignment_expression "i.seg[i.mem_operands] = (seg_entry *)PTR_es_0007fff8" (subscript_expression "i.seg[i.mem_operands]" (field_expression "i.seg" identifier . field_identifier) [ (field_expression "i.mem_operands" identifier . field_identifier) ]) = (cast_expression "(seg_entry *)PTR_es_0007fff8" ( (type_descriptor "seg_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 1:\n    i.seg[i.mem_operands] = (seg_entry *)PTR_cs_0007ffc8;\n    break;" case number_literal : (expression_statement "i.seg[i.mem_operands] = (seg_entry *)PTR_cs_0007ffc8;" (assignment_expression "i.seg[i.mem_operands] = (seg_entry *)PTR_cs_0007ffc8" (subscript_expression "i.seg[i.mem_operands]" (field_expression "i.seg" identifier . field_identifier) [ (field_expression "i.mem_operands" identifier . field_identifier) ]) = (cast_expression "(seg_entry *)PTR_cs_0007ffc8" ( (type_descriptor "seg_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 2:\n    i.seg[i.mem_operands] = (seg_entry *)PTR_ss_0007ffcc;\n    break;" case number_literal : (expression_statement "i.seg[i.mem_operands] = (seg_entry *)PTR_ss_0007ffcc;" (assignment_expression "i.seg[i.mem_operands] = (seg_entry *)PTR_ss_0007ffcc" (subscript_expression "i.seg[i.mem_operands]" (field_expression "i.seg" identifier . field_identifier) [ (field_expression "i.mem_operands" identifier . field_identifier) ]) = (cast_expression "(seg_entry *)PTR_ss_0007ffcc" ( (type_descriptor "seg_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 3:\n    i.seg[i.mem_operands] = (seg_entry *)PTR_ds_0007ff80;\n    break;" case number_literal : (expression_statement "i.seg[i.mem_operands] = (seg_entry *)PTR_ds_0007ff80;" (assignment_expression "i.seg[i.mem_operands] = (seg_entry *)PTR_ds_0007ff80" (subscript_expression "i.seg[i.mem_operands]" (field_expression "i.seg" identifier . field_identifier) [ (field_expression "i.mem_operands" identifier . field_identifier) ]) = (cast_expression "(seg_entry *)PTR_ds_0007ff80" ( (type_descriptor "seg_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n    i.seg[i.mem_operands] = (seg_entry *)PTR_fs_0007ffac;\n    break;" case number_literal : (expression_statement "i.seg[i.mem_operands] = (seg_entry *)PTR_fs_0007ffac;" (assignment_expression "i.seg[i.mem_operands] = (seg_entry *)PTR_fs_0007ffac" (subscript_expression "i.seg[i.mem_operands]" (field_expression "i.seg" identifier . field_identifier) [ (field_expression "i.mem_operands" identifier . field_identifier) ]) = (cast_expression "(seg_entry *)PTR_fs_0007ffac" ( (type_descriptor "seg_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 5:\n    i.seg[i.mem_operands] = (seg_entry *)PTR_gs_0007ff68;" case number_literal : (expression_statement "i.seg[i.mem_operands] = (seg_entry *)PTR_gs_0007ff68;" (assignment_expression "i.seg[i.mem_operands] = (seg_entry *)PTR_gs_0007ff68" (subscript_expression "i.seg[i.mem_operands]" (field_expression "i.seg" identifier . field_identifier) [ (field_expression "i.mem_operands" identifier . field_identifier) ]) = (cast_expression "(seg_entry *)PTR_gs_0007ff68" ( (type_descriptor "seg_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) })) (expression_statement "bVar5 = pcVar13[1];" (assignment_expression "bVar5 = pcVar13[1]" identifier = (subscript_expression "pcVar13[1]" identifier [ number_literal ])) ;) (expression_statement "reg_string = (i386_operand_type *)(pcVar13 + 1);" (assignment_expression "reg_string = (i386_operand_type *)(pcVar13 + 1)" identifier = (cast_expression "(i386_operand_type *)(pcVar13 + 1)" ( (type_descriptor "i386_operand_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 1)" ( (binary_expression "pcVar13 + 1" identifier + number_literal) )))) ;) (if_statement "if (bVar5 == 0x20) {\n    bVar5 = pcVar13[2];\n    reg_string = (i386_operand_type *)(pcVar13 + 2);\n  }" if (parenthesized_expression "(bVar5 == 0x20)" ( (binary_expression "bVar5 == 0x20" identifier == number_literal) )) (compound_statement "{\n    bVar5 = pcVar13[2];\n    reg_string = (i386_operand_type *)(pcVar13 + 2);\n  }" { (expression_statement "bVar5 = pcVar13[2];" (assignment_expression "bVar5 = pcVar13[2]" identifier = (subscript_expression "pcVar13[2]" identifier [ number_literal ])) ;) (expression_statement "reg_string = (i386_operand_type *)(pcVar13 + 2);" (assignment_expression "reg_string = (i386_operand_type *)(pcVar13 + 2)" identifier = (cast_expression "(i386_operand_type *)(pcVar13 + 2)" ( (type_descriptor "i386_operand_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 2)" ( (binary_expression "pcVar13 + 2" identifier + number_literal) )))) ;) })) (if_statement "if ((digit_chars[bVar5] == '\0') && (identifier_chars[bVar5] == '\0')) {\n    if (bVar5 != 0x28) {\n      if (bVar5 != 0x2a) {\n        pcVar13 = "bad memory operand `%s\'";\n        goto LAB_00046f4c;\n      }\nLAB_00046c3c:\n      if (*(byte *)((int)reg_string + 1) == 0x20) {\n        reg_string = (i386_operand_type *)((int)reg_string + 2);\n      }\n      else {\n        reg_string = (i386_operand_type *)((int)reg_string + 1);\n      }\n      pbVar22 = (byte *)((int)i.types + this_operand * 8 + 3);\n      *pbVar22 = *pbVar22 | 2;\n    }\n  }\n  else if (bVar5 == 0x2a) goto LAB_00046c3c;" if (parenthesized_expression "((digit_chars[bVar5] == '\0') && (identifier_chars[bVar5] == '\0'))" ( (binary_expression "(digit_chars[bVar5] == '\0') && (identifier_chars[bVar5] == '\0')" (parenthesized_expression "(digit_chars[bVar5] == '\0')" ( (binary_expression "digit_chars[bVar5] == '\0'" (subscript_expression "digit_chars[bVar5]" identifier [ identifier ]) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(identifier_chars[bVar5] == '\0')" ( (binary_expression "identifier_chars[bVar5] == '\0'" (subscript_expression "identifier_chars[bVar5]" identifier [ identifier ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    if (bVar5 != 0x28) {\n      if (bVar5 != 0x2a) {\n        pcVar13 = "bad memory operand `%s\'";\n        goto LAB_00046f4c;\n      }\nLAB_00046c3c:\n      if (*(byte *)((int)reg_string + 1) == 0x20) {\n        reg_string = (i386_operand_type *)((int)reg_string + 2);\n      }\n      else {\n        reg_string = (i386_operand_type *)((int)reg_string + 1);\n      }\n      pbVar22 = (byte *)((int)i.types + this_operand * 8 + 3);\n      *pbVar22 = *pbVar22 | 2;\n    }\n  }" { (if_statement "if (bVar5 != 0x28) {\n      if (bVar5 != 0x2a) {\n        pcVar13 = "bad memory operand `%s\'";\n        goto LAB_00046f4c;\n      }\nLAB_00046c3c:\n      if (*(byte *)((int)reg_string + 1) == 0x20) {\n        reg_string = (i386_operand_type *)((int)reg_string + 2);\n      }\n      else {\n        reg_string = (i386_operand_type *)((int)reg_string + 1);\n      }\n      pbVar22 = (byte *)((int)i.types + this_operand * 8 + 3);\n      *pbVar22 = *pbVar22 | 2;\n    }" if (parenthesized_expression "(bVar5 != 0x28)" ( (binary_expression "bVar5 != 0x28" identifier != number_literal) )) (compound_statement "{\n      if (bVar5 != 0x2a) {\n        pcVar13 = "bad memory operand `%s\'";\n        goto LAB_00046f4c;\n      }\nLAB_00046c3c:\n      if (*(byte *)((int)reg_string + 1) == 0x20) {\n        reg_string = (i386_operand_type *)((int)reg_string + 2);\n      }\n      else {\n        reg_string = (i386_operand_type *)((int)reg_string + 1);\n      }\n      pbVar22 = (byte *)((int)i.types + this_operand * 8 + 3);\n      *pbVar22 = *pbVar22 | 2;\n    }" { (if_statement "if (bVar5 != 0x2a) {\n        pcVar13 = "bad memory operand `%s\'";\n        goto LAB_00046f4c;\n      }" if (parenthesized_expression "(bVar5 != 0x2a)" ( (binary_expression "bVar5 != 0x2a" identifier != number_literal) )) (compound_statement "{\n        pcVar13 = "bad memory operand `%s\'";\n        goto LAB_00046f4c;\n      }" { (expression_statement "pcVar13 = "bad memory operand `%s\'";" (assignment_expression "pcVar13 = "bad memory operand `%s\'"" identifier = (string_literal ""bad memory operand `%s\'"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_00046f4c;" goto statement_identifier ;) })) (labeled_statement "LAB_00046c3c:\n      if (*(byte *)((int)reg_string + 1) == 0x20) {\n        reg_string = (i386_operand_type *)((int)reg_string + 2);\n      }\n      else {\n        reg_string = (i386_operand_type *)((int)reg_string + 1);\n      }" statement_identifier : (if_statement "if (*(byte *)((int)reg_string + 1) == 0x20) {\n        reg_string = (i386_operand_type *)((int)reg_string + 2);\n      }\n      else {\n        reg_string = (i386_operand_type *)((int)reg_string + 1);\n      }" if (parenthesized_expression "(*(byte *)((int)reg_string + 1) == 0x20)" ( (binary_expression "*(byte *)((int)reg_string + 1) == 0x20" (pointer_expression "*(byte *)((int)reg_string + 1)" * (cast_expression "(byte *)((int)reg_string + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)reg_string + 1)" ( (binary_expression "(int)reg_string + 1" (cast_expression "(int)reg_string" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n        reg_string = (i386_operand_type *)((int)reg_string + 2);\n      }" { (expression_statement "reg_string = (i386_operand_type *)((int)reg_string + 2);" (assignment_expression "reg_string = (i386_operand_type *)((int)reg_string + 2)" identifier = (cast_expression "(i386_operand_type *)((int)reg_string + 2)" ( (type_descriptor "i386_operand_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)reg_string + 2)" ( (binary_expression "(int)reg_string + 2" (cast_expression "(int)reg_string" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) (else_clause "else {\n        reg_string = (i386_operand_type *)((int)reg_string + 1);\n      }" else (compound_statement "{\n        reg_string = (i386_operand_type *)((int)reg_string + 1);\n      }" { (expression_statement "reg_string = (i386_operand_type *)((int)reg_string + 1);" (assignment_expression "reg_string = (i386_operand_type *)((int)reg_string + 1)" identifier = (cast_expression "(i386_operand_type *)((int)reg_string + 1)" ( (type_descriptor "i386_operand_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)reg_string + 1)" ( (binary_expression "(int)reg_string + 1" (cast_expression "(int)reg_string" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })))) (expression_statement "pbVar22 = (byte *)((int)i.types + this_operand * 8 + 3);" (assignment_expression "pbVar22 = (byte *)((int)i.types + this_operand * 8 + 3)" identifier = (cast_expression "(byte *)((int)i.types + this_operand * 8 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)i.types + this_operand * 8 + 3)" ( (binary_expression "(int)i.types + this_operand * 8 + 3" (binary_expression "(int)i.types + this_operand * 8" (cast_expression "(int)i.types" ( (type_descriptor "int" primitive_type) ) (field_expression "i.types" identifier . field_identifier)) + (binary_expression "this_operand * 8" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "*pbVar22 = *pbVar22 | 2;" (assignment_expression "*pbVar22 = *pbVar22 | 2" (pointer_expression "*pbVar22" * identifier) = (binary_expression "*pbVar22 | 2" (pointer_expression "*pbVar22" * identifier) | number_literal)) ;) })) }) (else_clause "else if (bVar5 == 0x2a) goto LAB_00046c3c;" else (if_statement "if (bVar5 == 0x2a) goto LAB_00046c3c;" if (parenthesized_expression "(bVar5 == 0x2a)" ( (binary_expression "bVar5 == 0x2a" identifier == number_literal) )) (goto_statement "goto LAB_00046c3c;" goto statement_identifier ;)))) (labeled_statement "LAB_00046c60:\n  if (i.mem_operands == 1) {\n    iVar12 = maybe_adjust_templates();\n    if (iVar12 == 0) {\n      return 0;\n    }\n    if (i.mem_operands != 1) goto LAB_00046c6f;\n    piVar15 = current_templates->start;\n    if (((piVar15->opcode_modifier).field_0x3 & 1) == 0) goto LAB_0004729e;\n  }\n  else {\nLAB_00046c6f:\n    if (i.mem_operands == 2) {\n      piVar15 = current_templates->start;\nLAB_0004729e:\n      pcVar13 = piVar15->name;\n      pcVar7 = (char *)dcgettext(0,"too many memory references for `%s\'",5);\n      as_bad(pcVar7,pcVar13);\n      return 0;\n    }\n  }" statement_identifier : (if_statement "if (i.mem_operands == 1) {\n    iVar12 = maybe_adjust_templates();\n    if (iVar12 == 0) {\n      return 0;\n    }\n    if (i.mem_operands != 1) goto LAB_00046c6f;\n    piVar15 = current_templates->start;\n    if (((piVar15->opcode_modifier).field_0x3 & 1) == 0) goto LAB_0004729e;\n  }\n  else {\nLAB_00046c6f:\n    if (i.mem_operands == 2) {\n      piVar15 = current_templates->start;\nLAB_0004729e:\n      pcVar13 = piVar15->name;\n      pcVar7 = (char *)dcgettext(0,"too many memory references for `%s\'",5);\n      as_bad(pcVar7,pcVar13);\n      return 0;\n    }\n  }" if (parenthesized_expression "(i.mem_operands == 1)" ( (binary_expression "i.mem_operands == 1" (field_expression "i.mem_operands" identifier . field_identifier) == number_literal) )) (compound_statement "{\n    iVar12 = maybe_adjust_templates();\n    if (iVar12 == 0) {\n      return 0;\n    }\n    if (i.mem_operands != 1) goto LAB_00046c6f;\n    piVar15 = current_templates->start;\n    if (((piVar15->opcode_modifier).field_0x3 & 1) == 0) goto LAB_0004729e;\n  }" { (expression_statement "iVar12 = maybe_adjust_templates();" (assignment_expression "iVar12 = maybe_adjust_templates()" identifier = (call_expression "maybe_adjust_templates()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar12 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (i.mem_operands != 1) goto LAB_00046c6f;" if (parenthesized_expression "(i.mem_operands != 1)" ( (binary_expression "i.mem_operands != 1" (field_expression "i.mem_operands" identifier . field_identifier) != number_literal) )) (goto_statement "goto LAB_00046c6f;" goto statement_identifier ;)) (expression_statement "piVar15 = current_templates->start;" (assignment_expression "piVar15 = current_templates->start" identifier = (field_expression "current_templates->start" identifier -> field_identifier)) ;) (if_statement "if (((piVar15->opcode_modifier).field_0x3 & 1) == 0) goto LAB_0004729e;" if (parenthesized_expression "(((piVar15->opcode_modifier).field_0x3 & 1) == 0)" ( (binary_expression "((piVar15->opcode_modifier).field_0x3 & 1) == 0" (parenthesized_expression "((piVar15->opcode_modifier).field_0x3 & 1)" ( (binary_expression "(piVar15->opcode_modifier).field_0x3 & 1" (field_expression "(piVar15->opcode_modifier).field_0x3" (parenthesized_expression "(piVar15->opcode_modifier)" ( (field_expression "piVar15->opcode_modifier" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0004729e;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_00046c6f:\n    if (i.mem_operands == 2) {\n      piVar15 = current_templates->start;\nLAB_0004729e:\n      pcVar13 = piVar15->name;\n      pcVar7 = (char *)dcgettext(0,"too many memory references for `%s\'",5);\n      as_bad(pcVar7,pcVar13);\n      return 0;\n    }\n  }" else (compound_statement "{\nLAB_00046c6f:\n    if (i.mem_operands == 2) {\n      piVar15 = current_templates->start;\nLAB_0004729e:\n      pcVar13 = piVar15->name;\n      pcVar7 = (char *)dcgettext(0,"too many memory references for `%s\'",5);\n      as_bad(pcVar7,pcVar13);\n      return 0;\n    }\n  }" { (labeled_statement "LAB_00046c6f:\n    if (i.mem_operands == 2) {\n      piVar15 = current_templates->start;\nLAB_0004729e:\n      pcVar13 = piVar15->name;\n      pcVar7 = (char *)dcgettext(0,"too many memory references for `%s\'",5);\n      as_bad(pcVar7,pcVar13);\n      return 0;\n    }" statement_identifier : (if_statement "if (i.mem_operands == 2) {\n      piVar15 = current_templates->start;\nLAB_0004729e:\n      pcVar13 = piVar15->name;\n      pcVar7 = (char *)dcgettext(0,"too many memory references for `%s\'",5);\n      as_bad(pcVar7,pcVar13);\n      return 0;\n    }" if (parenthesized_expression "(i.mem_operands == 2)" ( (binary_expression "i.mem_operands == 2" (field_expression "i.mem_operands" identifier . field_identifier) == number_literal) )) (compound_statement "{\n      piVar15 = current_templates->start;\nLAB_0004729e:\n      pcVar13 = piVar15->name;\n      pcVar7 = (char *)dcgettext(0,"too many memory references for `%s\'",5);\n      as_bad(pcVar7,pcVar13);\n      return 0;\n    }" { (expression_statement "piVar15 = current_templates->start;" (assignment_expression "piVar15 = current_templates->start" identifier = (field_expression "current_templates->start" identifier -> field_identifier)) ;) (labeled_statement "LAB_0004729e:\n      pcVar13 = piVar15->name;" statement_identifier : (expression_statement "pcVar13 = piVar15->name;" (assignment_expression "pcVar13 = piVar15->name" identifier = (field_expression "piVar15->name" identifier -> field_identifier)) ;)) (expression_statement "pcVar7 = (char *)dcgettext(0,"too many memory references for `%s\'",5);" (assignment_expression "pcVar7 = (char *)dcgettext(0,"too many memory references for `%s\'",5)" identifier = (cast_expression "(char *)dcgettext(0,"too many memory references for `%s\'",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"too many memory references for `%s\'",5)" identifier (argument_list "(0,"too many memory references for `%s\'",5)" ( number_literal , (string_literal ""too many memory references for `%s\'"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "as_bad(pcVar7,pcVar13);" (call_expression "as_bad(pcVar7,pcVar13)" identifier (argument_list "(pcVar7,pcVar13)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) }))) })))) (expression_statement "sVar9 = strlen((char *)reg_string->array);" (assignment_expression "sVar9 = strlen((char *)reg_string->array)" identifier = (call_expression "strlen((char *)reg_string->array)" identifier (argument_list "((char *)reg_string->array)" ( (cast_expression "(char *)reg_string->array" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "reg_string->array" identifier -> field_identifier)) )))) ;) (expression_statement "piVar10 = (i386_operand_type *)(sVar9 + (int)reg_string);" (assignment_expression "piVar10 = (i386_operand_type *)(sVar9 + (int)reg_string)" identifier = (cast_expression "(i386_operand_type *)(sVar9 + (int)reg_string)" ( (type_descriptor "i386_operand_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(sVar9 + (int)reg_string)" ( (binary_expression "sVar9 + (int)reg_string" identifier + (cast_expression "(int)reg_string" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "piVar11 = (i386_operand_type *)strchr((char *)reg_string->array,0x7b);" (assignment_expression "piVar11 = (i386_operand_type *)strchr((char *)reg_string->array,0x7b)" identifier = (cast_expression "(i386_operand_type *)strchr((char *)reg_string->array,0x7b)" ( (type_descriptor "i386_operand_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "strchr((char *)reg_string->array,0x7b)" identifier (argument_list "((char *)reg_string->array,0x7b)" ( (cast_expression "(char *)reg_string->array" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "reg_string->array" identifier -> field_identifier)) , number_literal ))))) ;) (if_statement "if (((piVar11 != (i386_operand_type *)0x0) && (piVar11 < piVar10)) &&\n     (pcVar13 = check_VecOperations((char *)piVar11->array,(char *)piVar10->array),\n     piVar10 = piVar11, pcVar13 == (char *)0x0)) {\n    return 0;\n  }" if (parenthesized_expression "(((piVar11 != (i386_operand_type *)0x0) && (piVar11 < piVar10)) &&\n     (pcVar13 = check_VecOperations((char *)piVar11->array,(char *)piVar10->array),\n     piVar10 = piVar11, pcVar13 == (char *)0x0))" ( (binary_expression "((piVar11 != (i386_operand_type *)0x0) && (piVar11 < piVar10)) &&\n     (pcVar13 = check_VecOperations((char *)piVar11->array,(char *)piVar10->array),\n     piVar10 = piVar11, pcVar13 == (char *)0x0)" (parenthesized_expression "((piVar11 != (i386_operand_type *)0x0) && (piVar11 < piVar10))" ( (binary_expression "(piVar11 != (i386_operand_type *)0x0) && (piVar11 < piVar10)" (parenthesized_expression "(piVar11 != (i386_operand_type *)0x0)" ( (binary_expression "piVar11 != (i386_operand_type *)0x0" identifier != (cast_expression "(i386_operand_type *)0x0" ( (type_descriptor "i386_operand_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(piVar11 < piVar10)" ( (binary_expression "piVar11 < piVar10" identifier < identifier) ))) )) && (parenthesized_expression "(pcVar13 = check_VecOperations((char *)piVar11->array,(char *)piVar10->array),\n     piVar10 = piVar11, pcVar13 == (char *)0x0)" ( (comma_expression "pcVar13 = check_VecOperations((char *)piVar11->array,(char *)piVar10->array),\n     piVar10 = piVar11, pcVar13 == (char *)0x0" (assignment_expression "pcVar13 = check_VecOperations((char *)piVar11->array,(char *)piVar10->array)" identifier = (call_expression "check_VecOperations((char *)piVar11->array,(char *)piVar10->array)" identifier (argument_list "((char *)piVar11->array,(char *)piVar10->array)" ( (cast_expression "(char *)piVar11->array" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "piVar11->array" identifier -> field_identifier)) , (cast_expression "(char *)piVar10->array" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "piVar10->array" identifier -> field_identifier)) )))) , (comma_expression "piVar10 = piVar11, pcVar13 == (char *)0x0" (assignment_expression "piVar10 = piVar11" identifier = identifier) , (binary_expression "pcVar13 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)))) ))) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "piVar11 = (i386_operand_type *)((int)piVar10 + -1);" (assignment_expression "piVar11 = (i386_operand_type *)((int)piVar10 + -1)" identifier = (cast_expression "(i386_operand_type *)((int)piVar10 + -1)" ( (type_descriptor "i386_operand_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -1)" ( (binary_expression "(int)piVar10 + -1" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (*(byte *)((int)piVar10 + -1) == 0x20) {\n    piVar11 = (i386_operand_type *)((int)piVar10 + -2);\n    piVar10 = (i386_operand_type *)((int)piVar10 + -1);\n  }" if (parenthesized_expression "(*(byte *)((int)piVar10 + -1) == 0x20)" ( (binary_expression "*(byte *)((int)piVar10 + -1) == 0x20" (pointer_expression "*(byte *)((int)piVar10 + -1)" * (cast_expression "(byte *)((int)piVar10 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -1)" ( (binary_expression "(int)piVar10 + -1" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n    piVar11 = (i386_operand_type *)((int)piVar10 + -2);\n    piVar10 = (i386_operand_type *)((int)piVar10 + -1);\n  }" { (expression_statement "piVar11 = (i386_operand_type *)((int)piVar10 + -2);" (assignment_expression "piVar11 = (i386_operand_type *)((int)piVar10 + -2)" identifier = (cast_expression "(i386_operand_type *)((int)piVar10 + -2)" ( (type_descriptor "i386_operand_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -2)" ( (binary_expression "(int)piVar10 + -2" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar10 = (i386_operand_type *)((int)piVar10 + -1);" (assignment_expression "piVar10 = (i386_operand_type *)((int)piVar10 + -1)" identifier = (cast_expression "(i386_operand_type *)((int)piVar10 + -1)" ( (type_descriptor "i386_operand_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -1)" ( (binary_expression "(int)piVar10 + -1" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "piVar17 = piVar10;" (assignment_expression "piVar17 = piVar10" identifier = identifier) ;) (if_statement "if (*(byte *)piVar11 == 0x29) {\n    bVar5 = *(byte *)((int)piVar11 + -1);\n    iVar12 = 1;\n    piVar17 = (i386_operand_type *)((int)piVar11 + -1);\n    if (bVar5 == 0x29) goto LAB_000471f8;\nLAB_000471e0:\n    if (bVar5 != 0x28) goto LAB_000471eb;\n    iVar12 = iVar12 + -1;\n    do {\n      if (iVar12 == 0) {\n        bVar5 = *(byte *)((int)piVar17 + 1);\n        if (bVar5 == 0x20) {\n          bVar5 = *(byte *)((int)piVar11 + 1);\n          piVar11 = (i386_operand_type *)((int)piVar17 + 2);\n        }\n        if (bVar5 == 0x2c) {\n          pbVar22 = (byte *)((int)i.types + this_operand * 8 + 2);\n          *pbVar22 = *pbVar22 | 0x40;\n          if (i.base_reg != (reg_entry *)0x0) goto LAB_00047347;\n          bVar5 = *(byte *)piVar11;\n        }\n        else {\n          i.base_reg = parse_register((char *)piVar11->array,ppcVar20);\n          if (i.base_reg == (reg_entry *)0x0) {\n            if (*(byte *)piVar11 == 0x25) {\n              end_op = strchr((char *)piVar11->array,0x2c);\n              if (end_op != (char *)0x0) {\n                *end_op = '\0';\n              }\n              pcVar13 = (char *)dcgettext(0,"bad register name `%s\'",5);\n              as_bad(pcVar13,piVar11);\n              return 0;\n            }\n            if (reg_string != piVar10) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar22 = (byte *)((int)i.types + this_operand * 8 + 2);\n          *pbVar22 = *pbVar22 | 0x40;\nLAB_00047347:\n          bVar5 = *end_op;\n          piVar11 = (i386_operand_type *)end_op;\n          if (bVar5 == 0x20) {\n            bVar5 = end_op[1];\n            piVar11 = (i386_operand_type *)(end_op + 1);\n          }\n        }\n        if (bVar5 != 0x2c) {\n          if (bVar5 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }\n          break;\n        }\n        pbVar22 = (byte *)((int)piVar11 + 2);\n        if (*(byte *)((int)piVar11 + 1) != 0x20) {\n          pbVar22 = (byte *)((int)piVar11 + 1);\n        }\n        i.index_reg = parse_register((char *)pbVar22,ppcVar20);\n        pcVar13 = input_line_pointer;\n        if (i.index_reg == (reg_entry *)0x0) {\n          if (*pbVar22 == 0x25) {\n            end_op = strchr((char *)pbVar22,0x2c);\n            if (end_op != (char *)0x0) {\n              *end_op = '\0';\n            }\n            pcVar13 = (char *)dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            as_bad(pcVar13,pbVar22);\n            return 0;\n          }\n          if (*pbVar22 == 0x29) {\n            pcVar13 = (char *)dcgettext(0,\n                                        "expecting index register or scale factor after `,\'; got \'%c\'"\n                                        ,5,operand_string);\n            as_bad(pcVar13,0x29);\n            return 0;\n          }\n        }\n        else {\n          cVar4 = *end_op;\n          if (cVar4 == ' ') {\n            cVar4 = end_op[1];\n            end_op = end_op + 1;\n          }\n          if (cVar4 != ',') {\n            if (cVar4 != ')') {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          cVar4 = end_op[1];\n          pbVar22 = (byte *)(end_op + 1);\n          if (cVar4 == ' ') {\n            pbVar22 = (byte *)(end_op + 2);\n            cVar4 = end_op[2];\n          }\n          if (cVar4 == ')') break;\n        }\n        ppcVar20 = &input_line_pointer;\n        input_line_pointer = (char *)pbVar22;\n        oVar19 = get_absolute_expression();\n        if (oVar19 == 2) {\n          i.log2_scale_factor = 1;\n          bVar5 = 1;\nLAB_0004751e:\n          if (i.index_reg == (reg_entry *)0x0) {\n            pcVar7 = (char *)dcgettext(0,"scale factor of %d without an index register",5,bVar5);\n            as_warn(pcVar7,1 << (bVar5 & 0x1f));\n            i.log2_scale_factor = 0;\n          }\n        }\n        else {\n          if (-(int)((ulonglong)oVar19 >> 0x20) < (int)(uint)(2 < (uint)oVar19)) {\n            if (oVar19 == 4) {\n              i.log2_scale_factor = 2;\n              bVar5 = 2;\n            }\n            else {\n              if (oVar19 != 8) goto LAB_0004760c;\n              i.log2_scale_factor = 3;\n              bVar5 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (oVar19 != 1) {\nLAB_0004760c:\n            cVar4 = **ppcVar20;\n            **ppcVar20 = '\0';\n            pcVar7 = (char *)dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            as_bad(pcVar7,pbVar22);\n            **ppcVar20 = cVar4;\n            *ppcVar20 = pcVar13;\n            return 0;\n          }\n          i.log2_scale_factor = 0;\n        }\n        pcVar7 = *ppcVar20;\n        *ppcVar20 = pcVar13;\n        if (pcVar7 == (char *)0x0) {\n          return 0;\n        }\n        cVar4 = *pcVar7;\n        if (cVar4 == ' ') {\n          cVar4 = pcVar7[1];\n        }\n        if (cVar4 != ')') {\n          pcVar13 = "expecting `)\' after scale factor in `%s\'";\nLAB_00047255:\n          pcVar13 = (char *)dcgettext(0,pcVar13,5);\n          as_bad(pcVar13,operand_string);\n          return 0;\n        }\n        break;\n      }\nLAB_000471eb:\n      piVar11 = piVar17;\n      bVar5 = *(byte *)((int)piVar11 + -1);\n      piVar17 = (i386_operand_type *)((int)piVar11 + -1);\n      if (bVar5 != 0x29) goto LAB_000471e0;\nLAB_000471f8:\n      iVar12 = iVar12 + 1;\n    } while( true );\n  }" if (parenthesized_expression "(*(byte *)piVar11 == 0x29)" ( (binary_expression "*(byte *)piVar11 == 0x29" (pointer_expression "*(byte *)piVar11" * (cast_expression "(byte *)piVar11" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n    bVar5 = *(byte *)((int)piVar11 + -1);\n    iVar12 = 1;\n    piVar17 = (i386_operand_type *)((int)piVar11 + -1);\n    if (bVar5 == 0x29) goto LAB_000471f8;\nLAB_000471e0:\n    if (bVar5 != 0x28) goto LAB_000471eb;\n    iVar12 = iVar12 + -1;\n    do {\n      if (iVar12 == 0) {\n        bVar5 = *(byte *)((int)piVar17 + 1);\n        if (bVar5 == 0x20) {\n          bVar5 = *(byte *)((int)piVar11 + 1);\n          piVar11 = (i386_operand_type *)((int)piVar17 + 2);\n        }\n        if (bVar5 == 0x2c) {\n          pbVar22 = (byte *)((int)i.types + this_operand * 8 + 2);\n          *pbVar22 = *pbVar22 | 0x40;\n          if (i.base_reg != (reg_entry *)0x0) goto LAB_00047347;\n          bVar5 = *(byte *)piVar11;\n        }\n        else {\n          i.base_reg = parse_register((char *)piVar11->array,ppcVar20);\n          if (i.base_reg == (reg_entry *)0x0) {\n            if (*(byte *)piVar11 == 0x25) {\n              end_op = strchr((char *)piVar11->array,0x2c);\n              if (end_op != (char *)0x0) {\n                *end_op = '\0';\n              }\n              pcVar13 = (char *)dcgettext(0,"bad register name `%s\'",5);\n              as_bad(pcVar13,piVar11);\n              return 0;\n            }\n            if (reg_string != piVar10) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar22 = (byte *)((int)i.types + this_operand * 8 + 2);\n          *pbVar22 = *pbVar22 | 0x40;\nLAB_00047347:\n          bVar5 = *end_op;\n          piVar11 = (i386_operand_type *)end_op;\n          if (bVar5 == 0x20) {\n            bVar5 = end_op[1];\n            piVar11 = (i386_operand_type *)(end_op + 1);\n          }\n        }\n        if (bVar5 != 0x2c) {\n          if (bVar5 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }\n          break;\n        }\n        pbVar22 = (byte *)((int)piVar11 + 2);\n        if (*(byte *)((int)piVar11 + 1) != 0x20) {\n          pbVar22 = (byte *)((int)piVar11 + 1);\n        }\n        i.index_reg = parse_register((char *)pbVar22,ppcVar20);\n        pcVar13 = input_line_pointer;\n        if (i.index_reg == (reg_entry *)0x0) {\n          if (*pbVar22 == 0x25) {\n            end_op = strchr((char *)pbVar22,0x2c);\n            if (end_op != (char *)0x0) {\n              *end_op = '\0';\n            }\n            pcVar13 = (char *)dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            as_bad(pcVar13,pbVar22);\n            return 0;\n          }\n          if (*pbVar22 == 0x29) {\n            pcVar13 = (char *)dcgettext(0,\n                                        "expecting index register or scale factor after `,\'; got \'%c\'"\n                                        ,5,operand_string);\n            as_bad(pcVar13,0x29);\n            return 0;\n          }\n        }\n        else {\n          cVar4 = *end_op;\n          if (cVar4 == ' ') {\n            cVar4 = end_op[1];\n            end_op = end_op + 1;\n          }\n          if (cVar4 != ',') {\n            if (cVar4 != ')') {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          cVar4 = end_op[1];\n          pbVar22 = (byte *)(end_op + 1);\n          if (cVar4 == ' ') {\n            pbVar22 = (byte *)(end_op + 2);\n            cVar4 = end_op[2];\n          }\n          if (cVar4 == ')') break;\n        }\n        ppcVar20 = &input_line_pointer;\n        input_line_pointer = (char *)pbVar22;\n        oVar19 = get_absolute_expression();\n        if (oVar19 == 2) {\n          i.log2_scale_factor = 1;\n          bVar5 = 1;\nLAB_0004751e:\n          if (i.index_reg == (reg_entry *)0x0) {\n            pcVar7 = (char *)dcgettext(0,"scale factor of %d without an index register",5,bVar5);\n            as_warn(pcVar7,1 << (bVar5 & 0x1f));\n            i.log2_scale_factor = 0;\n          }\n        }\n        else {\n          if (-(int)((ulonglong)oVar19 >> 0x20) < (int)(uint)(2 < (uint)oVar19)) {\n            if (oVar19 == 4) {\n              i.log2_scale_factor = 2;\n              bVar5 = 2;\n            }\n            else {\n              if (oVar19 != 8) goto LAB_0004760c;\n              i.log2_scale_factor = 3;\n              bVar5 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (oVar19 != 1) {\nLAB_0004760c:\n            cVar4 = **ppcVar20;\n            **ppcVar20 = '\0';\n            pcVar7 = (char *)dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            as_bad(pcVar7,pbVar22);\n            **ppcVar20 = cVar4;\n            *ppcVar20 = pcVar13;\n            return 0;\n          }\n          i.log2_scale_factor = 0;\n        }\n        pcVar7 = *ppcVar20;\n        *ppcVar20 = pcVar13;\n        if (pcVar7 == (char *)0x0) {\n          return 0;\n        }\n        cVar4 = *pcVar7;\n        if (cVar4 == ' ') {\n          cVar4 = pcVar7[1];\n        }\n        if (cVar4 != ')') {\n          pcVar13 = "expecting `)\' after scale factor in `%s\'";\nLAB_00047255:\n          pcVar13 = (char *)dcgettext(0,pcVar13,5);\n          as_bad(pcVar13,operand_string);\n          return 0;\n        }\n        break;\n      }\nLAB_000471eb:\n      piVar11 = piVar17;\n      bVar5 = *(byte *)((int)piVar11 + -1);\n      piVar17 = (i386_operand_type *)((int)piVar11 + -1);\n      if (bVar5 != 0x29) goto LAB_000471e0;\nLAB_000471f8:\n      iVar12 = iVar12 + 1;\n    } while( true );\n  }" { (expression_statement "bVar5 = *(byte *)((int)piVar11 + -1);" (assignment_expression "bVar5 = *(byte *)((int)piVar11 + -1)" identifier = (pointer_expression "*(byte *)((int)piVar11 + -1)" * (cast_expression "(byte *)((int)piVar11 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + -1)" ( (binary_expression "(int)piVar11 + -1" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" identifier = number_literal) ;) (expression_statement "piVar17 = (i386_operand_type *)((int)piVar11 + -1);" (assignment_expression "piVar17 = (i386_operand_type *)((int)piVar11 + -1)" identifier = (cast_expression "(i386_operand_type *)((int)piVar11 + -1)" ( (type_descriptor "i386_operand_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + -1)" ( (binary_expression "(int)piVar11 + -1" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (bVar5 == 0x29) goto LAB_000471f8;" if (parenthesized_expression "(bVar5 == 0x29)" ( (binary_expression "bVar5 == 0x29" identifier == number_literal) )) (goto_statement "goto LAB_000471f8;" goto statement_identifier ;)) (labeled_statement "LAB_000471e0:\n    if (bVar5 != 0x28) goto LAB_000471eb;" statement_identifier : (if_statement "if (bVar5 != 0x28) goto LAB_000471eb;" if (parenthesized_expression "(bVar5 != 0x28)" ( (binary_expression "bVar5 != 0x28" identifier != number_literal) )) (goto_statement "goto LAB_000471eb;" goto statement_identifier ;))) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (do_statement "do {\n      if (iVar12 == 0) {\n        bVar5 = *(byte *)((int)piVar17 + 1);\n        if (bVar5 == 0x20) {\n          bVar5 = *(byte *)((int)piVar11 + 1);\n          piVar11 = (i386_operand_type *)((int)piVar17 + 2);\n        }\n        if (bVar5 == 0x2c) {\n          pbVar22 = (byte *)((int)i.types + this_operand * 8 + 2);\n          *pbVar22 = *pbVar22 | 0x40;\n          if (i.base_reg != (reg_entry *)0x0) goto LAB_00047347;\n          bVar5 = *(byte *)piVar11;\n        }\n        else {\n          i.base_reg = parse_register((char *)piVar11->array,ppcVar20);\n          if (i.base_reg == (reg_entry *)0x0) {\n            if (*(byte *)piVar11 == 0x25) {\n              end_op = strchr((char *)piVar11->array,0x2c);\n              if (end_op != (char *)0x0) {\n                *end_op = '\0';\n              }\n              pcVar13 = (char *)dcgettext(0,"bad register name `%s\'",5);\n              as_bad(pcVar13,piVar11);\n              return 0;\n            }\n            if (reg_string != piVar10) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar22 = (byte *)((int)i.types + this_operand * 8 + 2);\n          *pbVar22 = *pbVar22 | 0x40;\nLAB_00047347:\n          bVar5 = *end_op;\n          piVar11 = (i386_operand_type *)end_op;\n          if (bVar5 == 0x20) {\n            bVar5 = end_op[1];\n            piVar11 = (i386_operand_type *)(end_op + 1);\n          }\n        }\n        if (bVar5 != 0x2c) {\n          if (bVar5 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }\n          break;\n        }\n        pbVar22 = (byte *)((int)piVar11 + 2);\n        if (*(byte *)((int)piVar11 + 1) != 0x20) {\n          pbVar22 = (byte *)((int)piVar11 + 1);\n        }\n        i.index_reg = parse_register((char *)pbVar22,ppcVar20);\n        pcVar13 = input_line_pointer;\n        if (i.index_reg == (reg_entry *)0x0) {\n          if (*pbVar22 == 0x25) {\n            end_op = strchr((char *)pbVar22,0x2c);\n            if (end_op != (char *)0x0) {\n              *end_op = '\0';\n            }\n            pcVar13 = (char *)dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            as_bad(pcVar13,pbVar22);\n            return 0;\n          }\n          if (*pbVar22 == 0x29) {\n            pcVar13 = (char *)dcgettext(0,\n                                        "expecting index register or scale factor after `,\'; got \'%c\'"\n                                        ,5,operand_string);\n            as_bad(pcVar13,0x29);\n            return 0;\n          }\n        }\n        else {\n          cVar4 = *end_op;\n          if (cVar4 == ' ') {\n            cVar4 = end_op[1];\n            end_op = end_op + 1;\n          }\n          if (cVar4 != ',') {\n            if (cVar4 != ')') {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          cVar4 = end_op[1];\n          pbVar22 = (byte *)(end_op + 1);\n          if (cVar4 == ' ') {\n            pbVar22 = (byte *)(end_op + 2);\n            cVar4 = end_op[2];\n          }\n          if (cVar4 == ')') break;\n        }\n        ppcVar20 = &input_line_pointer;\n        input_line_pointer = (char *)pbVar22;\n        oVar19 = get_absolute_expression();\n        if (oVar19 == 2) {\n          i.log2_scale_factor = 1;\n          bVar5 = 1;\nLAB_0004751e:\n          if (i.index_reg == (reg_entry *)0x0) {\n            pcVar7 = (char *)dcgettext(0,"scale factor of %d without an index register",5,bVar5);\n            as_warn(pcVar7,1 << (bVar5 & 0x1f));\n            i.log2_scale_factor = 0;\n          }\n        }\n        else {\n          if (-(int)((ulonglong)oVar19 >> 0x20) < (int)(uint)(2 < (uint)oVar19)) {\n            if (oVar19 == 4) {\n              i.log2_scale_factor = 2;\n              bVar5 = 2;\n            }\n            else {\n              if (oVar19 != 8) goto LAB_0004760c;\n              i.log2_scale_factor = 3;\n              bVar5 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (oVar19 != 1) {\nLAB_0004760c:\n            cVar4 = **ppcVar20;\n            **ppcVar20 = '\0';\n            pcVar7 = (char *)dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            as_bad(pcVar7,pbVar22);\n            **ppcVar20 = cVar4;\n            *ppcVar20 = pcVar13;\n            return 0;\n          }\n          i.log2_scale_factor = 0;\n        }\n        pcVar7 = *ppcVar20;\n        *ppcVar20 = pcVar13;\n        if (pcVar7 == (char *)0x0) {\n          return 0;\n        }\n        cVar4 = *pcVar7;\n        if (cVar4 == ' ') {\n          cVar4 = pcVar7[1];\n        }\n        if (cVar4 != ')') {\n          pcVar13 = "expecting `)\' after scale factor in `%s\'";\nLAB_00047255:\n          pcVar13 = (char *)dcgettext(0,pcVar13,5);\n          as_bad(pcVar13,operand_string);\n          return 0;\n        }\n        break;\n      }\nLAB_000471eb:\n      piVar11 = piVar17;\n      bVar5 = *(byte *)((int)piVar11 + -1);\n      piVar17 = (i386_operand_type *)((int)piVar11 + -1);\n      if (bVar5 != 0x29) goto LAB_000471e0;\nLAB_000471f8:\n      iVar12 = iVar12 + 1;\n    } while( true );" do (compound_statement "{\n      if (iVar12 == 0) {\n        bVar5 = *(byte *)((int)piVar17 + 1);\n        if (bVar5 == 0x20) {\n          bVar5 = *(byte *)((int)piVar11 + 1);\n          piVar11 = (i386_operand_type *)((int)piVar17 + 2);\n        }\n        if (bVar5 == 0x2c) {\n          pbVar22 = (byte *)((int)i.types + this_operand * 8 + 2);\n          *pbVar22 = *pbVar22 | 0x40;\n          if (i.base_reg != (reg_entry *)0x0) goto LAB_00047347;\n          bVar5 = *(byte *)piVar11;\n        }\n        else {\n          i.base_reg = parse_register((char *)piVar11->array,ppcVar20);\n          if (i.base_reg == (reg_entry *)0x0) {\n            if (*(byte *)piVar11 == 0x25) {\n              end_op = strchr((char *)piVar11->array,0x2c);\n              if (end_op != (char *)0x0) {\n                *end_op = '\0';\n              }\n              pcVar13 = (char *)dcgettext(0,"bad register name `%s\'",5);\n              as_bad(pcVar13,piVar11);\n              return 0;\n            }\n            if (reg_string != piVar10) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar22 = (byte *)((int)i.types + this_operand * 8 + 2);\n          *pbVar22 = *pbVar22 | 0x40;\nLAB_00047347:\n          bVar5 = *end_op;\n          piVar11 = (i386_operand_type *)end_op;\n          if (bVar5 == 0x20) {\n            bVar5 = end_op[1];\n            piVar11 = (i386_operand_type *)(end_op + 1);\n          }\n        }\n        if (bVar5 != 0x2c) {\n          if (bVar5 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }\n          break;\n        }\n        pbVar22 = (byte *)((int)piVar11 + 2);\n        if (*(byte *)((int)piVar11 + 1) != 0x20) {\n          pbVar22 = (byte *)((int)piVar11 + 1);\n        }\n        i.index_reg = parse_register((char *)pbVar22,ppcVar20);\n        pcVar13 = input_line_pointer;\n        if (i.index_reg == (reg_entry *)0x0) {\n          if (*pbVar22 == 0x25) {\n            end_op = strchr((char *)pbVar22,0x2c);\n            if (end_op != (char *)0x0) {\n              *end_op = '\0';\n            }\n            pcVar13 = (char *)dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            as_bad(pcVar13,pbVar22);\n            return 0;\n          }\n          if (*pbVar22 == 0x29) {\n            pcVar13 = (char *)dcgettext(0,\n                                        "expecting index register or scale factor after `,\'; got \'%c\'"\n                                        ,5,operand_string);\n            as_bad(pcVar13,0x29);\n            return 0;\n          }\n        }\n        else {\n          cVar4 = *end_op;\n          if (cVar4 == ' ') {\n            cVar4 = end_op[1];\n            end_op = end_op + 1;\n          }\n          if (cVar4 != ',') {\n            if (cVar4 != ')') {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          cVar4 = end_op[1];\n          pbVar22 = (byte *)(end_op + 1);\n          if (cVar4 == ' ') {\n            pbVar22 = (byte *)(end_op + 2);\n            cVar4 = end_op[2];\n          }\n          if (cVar4 == ')') break;\n        }\n        ppcVar20 = &input_line_pointer;\n        input_line_pointer = (char *)pbVar22;\n        oVar19 = get_absolute_expression();\n        if (oVar19 == 2) {\n          i.log2_scale_factor = 1;\n          bVar5 = 1;\nLAB_0004751e:\n          if (i.index_reg == (reg_entry *)0x0) {\n            pcVar7 = (char *)dcgettext(0,"scale factor of %d without an index register",5,bVar5);\n            as_warn(pcVar7,1 << (bVar5 & 0x1f));\n            i.log2_scale_factor = 0;\n          }\n        }\n        else {\n          if (-(int)((ulonglong)oVar19 >> 0x20) < (int)(uint)(2 < (uint)oVar19)) {\n            if (oVar19 == 4) {\n              i.log2_scale_factor = 2;\n              bVar5 = 2;\n            }\n            else {\n              if (oVar19 != 8) goto LAB_0004760c;\n              i.log2_scale_factor = 3;\n              bVar5 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (oVar19 != 1) {\nLAB_0004760c:\n            cVar4 = **ppcVar20;\n            **ppcVar20 = '\0';\n            pcVar7 = (char *)dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            as_bad(pcVar7,pbVar22);\n            **ppcVar20 = cVar4;\n            *ppcVar20 = pcVar13;\n            return 0;\n          }\n          i.log2_scale_factor = 0;\n        }\n        pcVar7 = *ppcVar20;\n        *ppcVar20 = pcVar13;\n        if (pcVar7 == (char *)0x0) {\n          return 0;\n        }\n        cVar4 = *pcVar7;\n        if (cVar4 == ' ') {\n          cVar4 = pcVar7[1];\n        }\n        if (cVar4 != ')') {\n          pcVar13 = "expecting `)\' after scale factor in `%s\'";\nLAB_00047255:\n          pcVar13 = (char *)dcgettext(0,pcVar13,5);\n          as_bad(pcVar13,operand_string);\n          return 0;\n        }\n        break;\n      }\nLAB_000471eb:\n      piVar11 = piVar17;\n      bVar5 = *(byte *)((int)piVar11 + -1);\n      piVar17 = (i386_operand_type *)((int)piVar11 + -1);\n      if (bVar5 != 0x29) goto LAB_000471e0;\nLAB_000471f8:\n      iVar12 = iVar12 + 1;\n    }" { (if_statement "if (iVar12 == 0) {\n        bVar5 = *(byte *)((int)piVar17 + 1);\n        if (bVar5 == 0x20) {\n          bVar5 = *(byte *)((int)piVar11 + 1);\n          piVar11 = (i386_operand_type *)((int)piVar17 + 2);\n        }\n        if (bVar5 == 0x2c) {\n          pbVar22 = (byte *)((int)i.types + this_operand * 8 + 2);\n          *pbVar22 = *pbVar22 | 0x40;\n          if (i.base_reg != (reg_entry *)0x0) goto LAB_00047347;\n          bVar5 = *(byte *)piVar11;\n        }\n        else {\n          i.base_reg = parse_register((char *)piVar11->array,ppcVar20);\n          if (i.base_reg == (reg_entry *)0x0) {\n            if (*(byte *)piVar11 == 0x25) {\n              end_op = strchr((char *)piVar11->array,0x2c);\n              if (end_op != (char *)0x0) {\n                *end_op = '\0';\n              }\n              pcVar13 = (char *)dcgettext(0,"bad register name `%s\'",5);\n              as_bad(pcVar13,piVar11);\n              return 0;\n            }\n            if (reg_string != piVar10) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar22 = (byte *)((int)i.types + this_operand * 8 + 2);\n          *pbVar22 = *pbVar22 | 0x40;\nLAB_00047347:\n          bVar5 = *end_op;\n          piVar11 = (i386_operand_type *)end_op;\n          if (bVar5 == 0x20) {\n            bVar5 = end_op[1];\n            piVar11 = (i386_operand_type *)(end_op + 1);\n          }\n        }\n        if (bVar5 != 0x2c) {\n          if (bVar5 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }\n          break;\n        }\n        pbVar22 = (byte *)((int)piVar11 + 2);\n        if (*(byte *)((int)piVar11 + 1) != 0x20) {\n          pbVar22 = (byte *)((int)piVar11 + 1);\n        }\n        i.index_reg = parse_register((char *)pbVar22,ppcVar20);\n        pcVar13 = input_line_pointer;\n        if (i.index_reg == (reg_entry *)0x0) {\n          if (*pbVar22 == 0x25) {\n            end_op = strchr((char *)pbVar22,0x2c);\n            if (end_op != (char *)0x0) {\n              *end_op = '\0';\n            }\n            pcVar13 = (char *)dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            as_bad(pcVar13,pbVar22);\n            return 0;\n          }\n          if (*pbVar22 == 0x29) {\n            pcVar13 = (char *)dcgettext(0,\n                                        "expecting index register or scale factor after `,\'; got \'%c\'"\n                                        ,5,operand_string);\n            as_bad(pcVar13,0x29);\n            return 0;\n          }\n        }\n        else {\n          cVar4 = *end_op;\n          if (cVar4 == ' ') {\n            cVar4 = end_op[1];\n            end_op = end_op + 1;\n          }\n          if (cVar4 != ',') {\n            if (cVar4 != ')') {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          cVar4 = end_op[1];\n          pbVar22 = (byte *)(end_op + 1);\n          if (cVar4 == ' ') {\n            pbVar22 = (byte *)(end_op + 2);\n            cVar4 = end_op[2];\n          }\n          if (cVar4 == ')') break;\n        }\n        ppcVar20 = &input_line_pointer;\n        input_line_pointer = (char *)pbVar22;\n        oVar19 = get_absolute_expression();\n        if (oVar19 == 2) {\n          i.log2_scale_factor = 1;\n          bVar5 = 1;\nLAB_0004751e:\n          if (i.index_reg == (reg_entry *)0x0) {\n            pcVar7 = (char *)dcgettext(0,"scale factor of %d without an index register",5,bVar5);\n            as_warn(pcVar7,1 << (bVar5 & 0x1f));\n            i.log2_scale_factor = 0;\n          }\n        }\n        else {\n          if (-(int)((ulonglong)oVar19 >> 0x20) < (int)(uint)(2 < (uint)oVar19)) {\n            if (oVar19 == 4) {\n              i.log2_scale_factor = 2;\n              bVar5 = 2;\n            }\n            else {\n              if (oVar19 != 8) goto LAB_0004760c;\n              i.log2_scale_factor = 3;\n              bVar5 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (oVar19 != 1) {\nLAB_0004760c:\n            cVar4 = **ppcVar20;\n            **ppcVar20 = '\0';\n            pcVar7 = (char *)dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            as_bad(pcVar7,pbVar22);\n            **ppcVar20 = cVar4;\n            *ppcVar20 = pcVar13;\n            return 0;\n          }\n          i.log2_scale_factor = 0;\n        }\n        pcVar7 = *ppcVar20;\n        *ppcVar20 = pcVar13;\n        if (pcVar7 == (char *)0x0) {\n          return 0;\n        }\n        cVar4 = *pcVar7;\n        if (cVar4 == ' ') {\n          cVar4 = pcVar7[1];\n        }\n        if (cVar4 != ')') {\n          pcVar13 = "expecting `)\' after scale factor in `%s\'";\nLAB_00047255:\n          pcVar13 = (char *)dcgettext(0,pcVar13,5);\n          as_bad(pcVar13,operand_string);\n          return 0;\n        }\n        break;\n      }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n        bVar5 = *(byte *)((int)piVar17 + 1);\n        if (bVar5 == 0x20) {\n          bVar5 = *(byte *)((int)piVar11 + 1);\n          piVar11 = (i386_operand_type *)((int)piVar17 + 2);\n        }\n        if (bVar5 == 0x2c) {\n          pbVar22 = (byte *)((int)i.types + this_operand * 8 + 2);\n          *pbVar22 = *pbVar22 | 0x40;\n          if (i.base_reg != (reg_entry *)0x0) goto LAB_00047347;\n          bVar5 = *(byte *)piVar11;\n        }\n        else {\n          i.base_reg = parse_register((char *)piVar11->array,ppcVar20);\n          if (i.base_reg == (reg_entry *)0x0) {\n            if (*(byte *)piVar11 == 0x25) {\n              end_op = strchr((char *)piVar11->array,0x2c);\n              if (end_op != (char *)0x0) {\n                *end_op = '\0';\n              }\n              pcVar13 = (char *)dcgettext(0,"bad register name `%s\'",5);\n              as_bad(pcVar13,piVar11);\n              return 0;\n            }\n            if (reg_string != piVar10) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar22 = (byte *)((int)i.types + this_operand * 8 + 2);\n          *pbVar22 = *pbVar22 | 0x40;\nLAB_00047347:\n          bVar5 = *end_op;\n          piVar11 = (i386_operand_type *)end_op;\n          if (bVar5 == 0x20) {\n            bVar5 = end_op[1];\n            piVar11 = (i386_operand_type *)(end_op + 1);\n          }\n        }\n        if (bVar5 != 0x2c) {\n          if (bVar5 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }\n          break;\n        }\n        pbVar22 = (byte *)((int)piVar11 + 2);\n        if (*(byte *)((int)piVar11 + 1) != 0x20) {\n          pbVar22 = (byte *)((int)piVar11 + 1);\n        }\n        i.index_reg = parse_register((char *)pbVar22,ppcVar20);\n        pcVar13 = input_line_pointer;\n        if (i.index_reg == (reg_entry *)0x0) {\n          if (*pbVar22 == 0x25) {\n            end_op = strchr((char *)pbVar22,0x2c);\n            if (end_op != (char *)0x0) {\n              *end_op = '\0';\n            }\n            pcVar13 = (char *)dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            as_bad(pcVar13,pbVar22);\n            return 0;\n          }\n          if (*pbVar22 == 0x29) {\n            pcVar13 = (char *)dcgettext(0,\n                                        "expecting index register or scale factor after `,\'; got \'%c\'"\n                                        ,5,operand_string);\n            as_bad(pcVar13,0x29);\n            return 0;\n          }\n        }\n        else {\n          cVar4 = *end_op;\n          if (cVar4 == ' ') {\n            cVar4 = end_op[1];\n            end_op = end_op + 1;\n          }\n          if (cVar4 != ',') {\n            if (cVar4 != ')') {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          cVar4 = end_op[1];\n          pbVar22 = (byte *)(end_op + 1);\n          if (cVar4 == ' ') {\n            pbVar22 = (byte *)(end_op + 2);\n            cVar4 = end_op[2];\n          }\n          if (cVar4 == ')') break;\n        }\n        ppcVar20 = &input_line_pointer;\n        input_line_pointer = (char *)pbVar22;\n        oVar19 = get_absolute_expression();\n        if (oVar19 == 2) {\n          i.log2_scale_factor = 1;\n          bVar5 = 1;\nLAB_0004751e:\n          if (i.index_reg == (reg_entry *)0x0) {\n            pcVar7 = (char *)dcgettext(0,"scale factor of %d without an index register",5,bVar5);\n            as_warn(pcVar7,1 << (bVar5 & 0x1f));\n            i.log2_scale_factor = 0;\n          }\n        }\n        else {\n          if (-(int)((ulonglong)oVar19 >> 0x20) < (int)(uint)(2 < (uint)oVar19)) {\n            if (oVar19 == 4) {\n              i.log2_scale_factor = 2;\n              bVar5 = 2;\n            }\n            else {\n              if (oVar19 != 8) goto LAB_0004760c;\n              i.log2_scale_factor = 3;\n              bVar5 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (oVar19 != 1) {\nLAB_0004760c:\n            cVar4 = **ppcVar20;\n            **ppcVar20 = '\0';\n            pcVar7 = (char *)dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            as_bad(pcVar7,pbVar22);\n            **ppcVar20 = cVar4;\n            *ppcVar20 = pcVar13;\n            return 0;\n          }\n          i.log2_scale_factor = 0;\n        }\n        pcVar7 = *ppcVar20;\n        *ppcVar20 = pcVar13;\n        if (pcVar7 == (char *)0x0) {\n          return 0;\n        }\n        cVar4 = *pcVar7;\n        if (cVar4 == ' ') {\n          cVar4 = pcVar7[1];\n        }\n        if (cVar4 != ')') {\n          pcVar13 = "expecting `)\' after scale factor in `%s\'";\nLAB_00047255:\n          pcVar13 = (char *)dcgettext(0,pcVar13,5);\n          as_bad(pcVar13,operand_string);\n          return 0;\n        }\n        break;\n      }" { (expression_statement "bVar5 = *(byte *)((int)piVar17 + 1);" (assignment_expression "bVar5 = *(byte *)((int)piVar17 + 1)" identifier = (pointer_expression "*(byte *)((int)piVar17 + 1)" * (cast_expression "(byte *)((int)piVar17 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar17 + 1)" ( (binary_expression "(int)piVar17 + 1" (cast_expression "(int)piVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (bVar5 == 0x20) {\n          bVar5 = *(byte *)((int)piVar11 + 1);\n          piVar11 = (i386_operand_type *)((int)piVar17 + 2);\n        }" if (parenthesized_expression "(bVar5 == 0x20)" ( (binary_expression "bVar5 == 0x20" identifier == number_literal) )) (compound_statement "{\n          bVar5 = *(byte *)((int)piVar11 + 1);\n          piVar11 = (i386_operand_type *)((int)piVar17 + 2);\n        }" { (expression_statement "bVar5 = *(byte *)((int)piVar11 + 1);" (assignment_expression "bVar5 = *(byte *)((int)piVar11 + 1)" identifier = (pointer_expression "*(byte *)((int)piVar11 + 1)" * (cast_expression "(byte *)((int)piVar11 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 1)" ( (binary_expression "(int)piVar11 + 1" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "piVar11 = (i386_operand_type *)((int)piVar17 + 2);" (assignment_expression "piVar11 = (i386_operand_type *)((int)piVar17 + 2)" identifier = (cast_expression "(i386_operand_type *)((int)piVar17 + 2)" ( (type_descriptor "i386_operand_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar17 + 2)" ( (binary_expression "(int)piVar17 + 2" (cast_expression "(int)piVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (if_statement "if (bVar5 == 0x2c) {\n          pbVar22 = (byte *)((int)i.types + this_operand * 8 + 2);\n          *pbVar22 = *pbVar22 | 0x40;\n          if (i.base_reg != (reg_entry *)0x0) goto LAB_00047347;\n          bVar5 = *(byte *)piVar11;\n        }\n        else {\n          i.base_reg = parse_register((char *)piVar11->array,ppcVar20);\n          if (i.base_reg == (reg_entry *)0x0) {\n            if (*(byte *)piVar11 == 0x25) {\n              end_op = strchr((char *)piVar11->array,0x2c);\n              if (end_op != (char *)0x0) {\n                *end_op = '\0';\n              }\n              pcVar13 = (char *)dcgettext(0,"bad register name `%s\'",5);\n              as_bad(pcVar13,piVar11);\n              return 0;\n            }\n            if (reg_string != piVar10) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar22 = (byte *)((int)i.types + this_operand * 8 + 2);\n          *pbVar22 = *pbVar22 | 0x40;\nLAB_00047347:\n          bVar5 = *end_op;\n          piVar11 = (i386_operand_type *)end_op;\n          if (bVar5 == 0x20) {\n            bVar5 = end_op[1];\n            piVar11 = (i386_operand_type *)(end_op + 1);\n          }\n        }" if (parenthesized_expression "(bVar5 == 0x2c)" ( (binary_expression "bVar5 == 0x2c" identifier == number_literal) )) (compound_statement "{\n          pbVar22 = (byte *)((int)i.types + this_operand * 8 + 2);\n          *pbVar22 = *pbVar22 | 0x40;\n          if (i.base_reg != (reg_entry *)0x0) goto LAB_00047347;\n          bVar5 = *(byte *)piVar11;\n        }" { (expression_statement "pbVar22 = (byte *)((int)i.types + this_operand * 8 + 2);" (assignment_expression "pbVar22 = (byte *)((int)i.types + this_operand * 8 + 2)" identifier = (cast_expression "(byte *)((int)i.types + this_operand * 8 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)i.types + this_operand * 8 + 2)" ( (binary_expression "(int)i.types + this_operand * 8 + 2" (binary_expression "(int)i.types + this_operand * 8" (cast_expression "(int)i.types" ( (type_descriptor "int" primitive_type) ) (field_expression "i.types" identifier . field_identifier)) + (binary_expression "this_operand * 8" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "*pbVar22 = *pbVar22 | 0x40;" (assignment_expression "*pbVar22 = *pbVar22 | 0x40" (pointer_expression "*pbVar22" * identifier) = (binary_expression "*pbVar22 | 0x40" (pointer_expression "*pbVar22" * identifier) | number_literal)) ;) (if_statement "if (i.base_reg != (reg_entry *)0x0) goto LAB_00047347;" if (parenthesized_expression "(i.base_reg != (reg_entry *)0x0)" ( (binary_expression "i.base_reg != (reg_entry *)0x0" (field_expression "i.base_reg" identifier . field_identifier) != (cast_expression "(reg_entry *)0x0" ( (type_descriptor "reg_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00047347;" goto statement_identifier ;)) (expression_statement "bVar5 = *(byte *)piVar11;" (assignment_expression "bVar5 = *(byte *)piVar11" identifier = (pointer_expression "*(byte *)piVar11" * (cast_expression "(byte *)piVar11" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) }) (else_clause "else {\n          i.base_reg = parse_register((char *)piVar11->array,ppcVar20);\n          if (i.base_reg == (reg_entry *)0x0) {\n            if (*(byte *)piVar11 == 0x25) {\n              end_op = strchr((char *)piVar11->array,0x2c);\n              if (end_op != (char *)0x0) {\n                *end_op = '\0';\n              }\n              pcVar13 = (char *)dcgettext(0,"bad register name `%s\'",5);\n              as_bad(pcVar13,piVar11);\n              return 0;\n            }\n            if (reg_string != piVar10) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar22 = (byte *)((int)i.types + this_operand * 8 + 2);\n          *pbVar22 = *pbVar22 | 0x40;\nLAB_00047347:\n          bVar5 = *end_op;\n          piVar11 = (i386_operand_type *)end_op;\n          if (bVar5 == 0x20) {\n            bVar5 = end_op[1];\n            piVar11 = (i386_operand_type *)(end_op + 1);\n          }\n        }" else (compound_statement "{\n          i.base_reg = parse_register((char *)piVar11->array,ppcVar20);\n          if (i.base_reg == (reg_entry *)0x0) {\n            if (*(byte *)piVar11 == 0x25) {\n              end_op = strchr((char *)piVar11->array,0x2c);\n              if (end_op != (char *)0x0) {\n                *end_op = '\0';\n              }\n              pcVar13 = (char *)dcgettext(0,"bad register name `%s\'",5);\n              as_bad(pcVar13,piVar11);\n              return 0;\n            }\n            if (reg_string != piVar10) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar22 = (byte *)((int)i.types + this_operand * 8 + 2);\n          *pbVar22 = *pbVar22 | 0x40;\nLAB_00047347:\n          bVar5 = *end_op;\n          piVar11 = (i386_operand_type *)end_op;\n          if (bVar5 == 0x20) {\n            bVar5 = end_op[1];\n            piVar11 = (i386_operand_type *)(end_op + 1);\n          }\n        }" { (expression_statement "i.base_reg = parse_register((char *)piVar11->array,ppcVar20);" (assignment_expression "i.base_reg = parse_register((char *)piVar11->array,ppcVar20)" (field_expression "i.base_reg" identifier . field_identifier) = (call_expression "parse_register((char *)piVar11->array,ppcVar20)" identifier (argument_list "((char *)piVar11->array,ppcVar20)" ( (cast_expression "(char *)piVar11->array" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "piVar11->array" identifier -> field_identifier)) , identifier )))) ;) (if_statement "if (i.base_reg == (reg_entry *)0x0) {\n            if (*(byte *)piVar11 == 0x25) {\n              end_op = strchr((char *)piVar11->array,0x2c);\n              if (end_op != (char *)0x0) {\n                *end_op = '\0';\n              }\n              pcVar13 = (char *)dcgettext(0,"bad register name `%s\'",5);\n              as_bad(pcVar13,piVar11);\n              return 0;\n            }\n            if (reg_string != piVar10) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }" if (parenthesized_expression "(i.base_reg == (reg_entry *)0x0)" ( (binary_expression "i.base_reg == (reg_entry *)0x0" (field_expression "i.base_reg" identifier . field_identifier) == (cast_expression "(reg_entry *)0x0" ( (type_descriptor "reg_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (*(byte *)piVar11 == 0x25) {\n              end_op = strchr((char *)piVar11->array,0x2c);\n              if (end_op != (char *)0x0) {\n                *end_op = '\0';\n              }\n              pcVar13 = (char *)dcgettext(0,"bad register name `%s\'",5);\n              as_bad(pcVar13,piVar11);\n              return 0;\n            }\n            if (reg_string != piVar10) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }" { (if_statement "if (*(byte *)piVar11 == 0x25) {\n              end_op = strchr((char *)piVar11->array,0x2c);\n              if (end_op != (char *)0x0) {\n                *end_op = '\0';\n              }\n              pcVar13 = (char *)dcgettext(0,"bad register name `%s\'",5);\n              as_bad(pcVar13,piVar11);\n              return 0;\n            }" if (parenthesized_expression "(*(byte *)piVar11 == 0x25)" ( (binary_expression "*(byte *)piVar11 == 0x25" (pointer_expression "*(byte *)piVar11" * (cast_expression "(byte *)piVar11" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n              end_op = strchr((char *)piVar11->array,0x2c);\n              if (end_op != (char *)0x0) {\n                *end_op = '\0';\n              }\n              pcVar13 = (char *)dcgettext(0,"bad register name `%s\'",5);\n              as_bad(pcVar13,piVar11);\n              return 0;\n            }" { (expression_statement "end_op = strchr((char *)piVar11->array,0x2c);" (assignment_expression "end_op = strchr((char *)piVar11->array,0x2c)" identifier = (call_expression "strchr((char *)piVar11->array,0x2c)" identifier (argument_list "((char *)piVar11->array,0x2c)" ( (cast_expression "(char *)piVar11->array" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "piVar11->array" identifier -> field_identifier)) , number_literal )))) ;) (if_statement "if (end_op != (char *)0x0) {\n                *end_op = '\0';\n              }" if (parenthesized_expression "(end_op != (char *)0x0)" ( (binary_expression "end_op != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                *end_op = '\0';\n              }" { (expression_statement "*end_op = '\0';" (assignment_expression "*end_op = '\0'" (pointer_expression "*end_op" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "pcVar13 = (char *)dcgettext(0,"bad register name `%s\'",5);" (assignment_expression "pcVar13 = (char *)dcgettext(0,"bad register name `%s\'",5)" identifier = (cast_expression "(char *)dcgettext(0,"bad register name `%s\'",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"bad register name `%s\'",5)" identifier (argument_list "(0,"bad register name `%s\'",5)" ( number_literal , (string_literal ""bad register name `%s\'"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "as_bad(pcVar13,piVar11);" (call_expression "as_bad(pcVar13,piVar11)" identifier (argument_list "(pcVar13,piVar11)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (reg_string != piVar10) goto LAB_00046cd4;" if (parenthesized_expression "(reg_string != piVar10)" ( (binary_expression "reg_string != piVar10" identifier != identifier) )) (goto_statement "goto LAB_00046cd4;" goto statement_identifier ;)) (goto_statement "goto LAB_00046ea4;" goto statement_identifier ;) })) (expression_statement "pbVar22 = (byte *)((int)i.types + this_operand * 8 + 2);" (assignment_expression "pbVar22 = (byte *)((int)i.types + this_operand * 8 + 2)" identifier = (cast_expression "(byte *)((int)i.types + this_operand * 8 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)i.types + this_operand * 8 + 2)" ( (binary_expression "(int)i.types + this_operand * 8 + 2" (binary_expression "(int)i.types + this_operand * 8" (cast_expression "(int)i.types" ( (type_descriptor "int" primitive_type) ) (field_expression "i.types" identifier . field_identifier)) + (binary_expression "this_operand * 8" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "*pbVar22 = *pbVar22 | 0x40;" (assignment_expression "*pbVar22 = *pbVar22 | 0x40" (pointer_expression "*pbVar22" * identifier) = (binary_expression "*pbVar22 | 0x40" (pointer_expression "*pbVar22" * identifier) | number_literal)) ;) (labeled_statement "LAB_00047347:\n          bVar5 = *end_op;" statement_identifier : (expression_statement "bVar5 = *end_op;" (assignment_expression "bVar5 = *end_op" identifier = (pointer_expression "*end_op" * identifier)) ;)) (expression_statement "piVar11 = (i386_operand_type *)end_op;" (assignment_expression "piVar11 = (i386_operand_type *)end_op" identifier = (cast_expression "(i386_operand_type *)end_op" ( (type_descriptor "i386_operand_type *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (bVar5 == 0x20) {\n            bVar5 = end_op[1];\n            piVar11 = (i386_operand_type *)(end_op + 1);\n          }" if (parenthesized_expression "(bVar5 == 0x20)" ( (binary_expression "bVar5 == 0x20" identifier == number_literal) )) (compound_statement "{\n            bVar5 = end_op[1];\n            piVar11 = (i386_operand_type *)(end_op + 1);\n          }" { (expression_statement "bVar5 = end_op[1];" (assignment_expression "bVar5 = end_op[1]" identifier = (subscript_expression "end_op[1]" identifier [ number_literal ])) ;) (expression_statement "piVar11 = (i386_operand_type *)(end_op + 1);" (assignment_expression "piVar11 = (i386_operand_type *)(end_op + 1)" identifier = (cast_expression "(i386_operand_type *)(end_op + 1)" ( (type_descriptor "i386_operand_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(end_op + 1)" ( (binary_expression "end_op + 1" identifier + number_literal) )))) ;) })) }))) (if_statement "if (bVar5 != 0x2c) {\n          if (bVar5 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }\n          break;\n        }" if (parenthesized_expression "(bVar5 != 0x2c)" ( (binary_expression "bVar5 != 0x2c" identifier != number_literal) )) (compound_statement "{\n          if (bVar5 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }\n          break;\n        }" { (if_statement "if (bVar5 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }" if (parenthesized_expression "(bVar5 != 0x29)" ( (binary_expression "bVar5 != 0x29" identifier != number_literal) )) (compound_statement "{\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }" { (expression_statement "pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";" (assignment_expression "pcVar13 = "expecting `,\' or `)\' after base register in `%s\'"" identifier = (string_literal ""expecting `,\' or `)\' after base register in `%s\'"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (goto_statement "goto LAB_00047255;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "pbVar22 = (byte *)((int)piVar11 + 2);" (assignment_expression "pbVar22 = (byte *)((int)piVar11 + 2)" identifier = (cast_expression "(byte *)((int)piVar11 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 2)" ( (binary_expression "(int)piVar11 + 2" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (*(byte *)((int)piVar11 + 1) != 0x20) {\n          pbVar22 = (byte *)((int)piVar11 + 1);\n        }" if (parenthesized_expression "(*(byte *)((int)piVar11 + 1) != 0x20)" ( (binary_expression "*(byte *)((int)piVar11 + 1) != 0x20" (pointer_expression "*(byte *)((int)piVar11 + 1)" * (cast_expression "(byte *)((int)piVar11 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 1)" ( (binary_expression "(int)piVar11 + 1" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n          pbVar22 = (byte *)((int)piVar11 + 1);\n        }" { (expression_statement "pbVar22 = (byte *)((int)piVar11 + 1);" (assignment_expression "pbVar22 = (byte *)((int)piVar11 + 1)" identifier = (cast_expression "(byte *)((int)piVar11 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 1)" ( (binary_expression "(int)piVar11 + 1" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "i.index_reg = parse_register((char *)pbVar22,ppcVar20);" (assignment_expression "i.index_reg = parse_register((char *)pbVar22,ppcVar20)" (field_expression "i.index_reg" identifier . field_identifier) = (call_expression "parse_register((char *)pbVar22,ppcVar20)" identifier (argument_list "((char *)pbVar22,ppcVar20)" ( (cast_expression "(char *)pbVar22" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (expression_statement "pcVar13 = input_line_pointer;" (assignment_expression "pcVar13 = input_line_pointer" identifier = identifier) ;) (if_statement "if (i.index_reg == (reg_entry *)0x0) {\n          if (*pbVar22 == 0x25) {\n            end_op = strchr((char *)pbVar22,0x2c);\n            if (end_op != (char *)0x0) {\n              *end_op = '\0';\n            }\n            pcVar13 = (char *)dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            as_bad(pcVar13,pbVar22);\n            return 0;\n          }\n          if (*pbVar22 == 0x29) {\n            pcVar13 = (char *)dcgettext(0,\n                                        "expecting index register or scale factor after `,\'; got \'%c\'"\n                                        ,5,operand_string);\n            as_bad(pcVar13,0x29);\n            return 0;\n          }\n        }\n        else {\n          cVar4 = *end_op;\n          if (cVar4 == ' ') {\n            cVar4 = end_op[1];\n            end_op = end_op + 1;\n          }\n          if (cVar4 != ',') {\n            if (cVar4 != ')') {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          cVar4 = end_op[1];\n          pbVar22 = (byte *)(end_op + 1);\n          if (cVar4 == ' ') {\n            pbVar22 = (byte *)(end_op + 2);\n            cVar4 = end_op[2];\n          }\n          if (cVar4 == ')') break;\n        }" if (parenthesized_expression "(i.index_reg == (reg_entry *)0x0)" ( (binary_expression "i.index_reg == (reg_entry *)0x0" (field_expression "i.index_reg" identifier . field_identifier) == (cast_expression "(reg_entry *)0x0" ( (type_descriptor "reg_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (*pbVar22 == 0x25) {\n            end_op = strchr((char *)pbVar22,0x2c);\n            if (end_op != (char *)0x0) {\n              *end_op = '\0';\n            }\n            pcVar13 = (char *)dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            as_bad(pcVar13,pbVar22);\n            return 0;\n          }\n          if (*pbVar22 == 0x29) {\n            pcVar13 = (char *)dcgettext(0,\n                                        "expecting index register or scale factor after `,\'; got \'%c\'"\n                                        ,5,operand_string);\n            as_bad(pcVar13,0x29);\n            return 0;\n          }\n        }" { (if_statement "if (*pbVar22 == 0x25) {\n            end_op = strchr((char *)pbVar22,0x2c);\n            if (end_op != (char *)0x0) {\n              *end_op = '\0';\n            }\n            pcVar13 = (char *)dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            as_bad(pcVar13,pbVar22);\n            return 0;\n          }" if (parenthesized_expression "(*pbVar22 == 0x25)" ( (binary_expression "*pbVar22 == 0x25" (pointer_expression "*pbVar22" * identifier) == number_literal) )) (compound_statement "{\n            end_op = strchr((char *)pbVar22,0x2c);\n            if (end_op != (char *)0x0) {\n              *end_op = '\0';\n            }\n            pcVar13 = (char *)dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            as_bad(pcVar13,pbVar22);\n            return 0;\n          }" { (expression_statement "end_op = strchr((char *)pbVar22,0x2c);" (assignment_expression "end_op = strchr((char *)pbVar22,0x2c)" identifier = (call_expression "strchr((char *)pbVar22,0x2c)" identifier (argument_list "((char *)pbVar22,0x2c)" ( (cast_expression "(char *)pbVar22" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (end_op != (char *)0x0) {\n              *end_op = '\0';\n            }" if (parenthesized_expression "(end_op != (char *)0x0)" ( (binary_expression "end_op != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              *end_op = '\0';\n            }" { (expression_statement "*end_op = '\0';" (assignment_expression "*end_op = '\0'" (pointer_expression "*end_op" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "pcVar13 = (char *)dcgettext(0,"bad register name `%s\'",5,extraout_ECX);" (assignment_expression "pcVar13 = (char *)dcgettext(0,"bad register name `%s\'",5,extraout_ECX)" identifier = (cast_expression "(char *)dcgettext(0,"bad register name `%s\'",5,extraout_ECX)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"bad register name `%s\'",5,extraout_ECX)" identifier (argument_list "(0,"bad register name `%s\'",5,extraout_ECX)" ( number_literal , (string_literal ""bad register name `%s\'"" " string_content escape_sequence ") , number_literal , identifier ))))) ;) (expression_statement "as_bad(pcVar13,pbVar22);" (call_expression "as_bad(pcVar13,pbVar22)" identifier (argument_list "(pcVar13,pbVar22)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (*pbVar22 == 0x29) {\n            pcVar13 = (char *)dcgettext(0,\n                                        "expecting index register or scale factor after `,\'; got \'%c\'"\n                                        ,5,operand_string);\n            as_bad(pcVar13,0x29);\n            return 0;\n          }" if (parenthesized_expression "(*pbVar22 == 0x29)" ( (binary_expression "*pbVar22 == 0x29" (pointer_expression "*pbVar22" * identifier) == number_literal) )) (compound_statement "{\n            pcVar13 = (char *)dcgettext(0,\n                                        "expecting index register or scale factor after `,\'; got \'%c\'"\n                                        ,5,operand_string);\n            as_bad(pcVar13,0x29);\n            return 0;\n          }" { (expression_statement "pcVar13 = (char *)dcgettext(0,\n                                        "expecting index register or scale factor after `,\'; got \'%c\'"\n                                        ,5,operand_string);" (assignment_expression "pcVar13 = (char *)dcgettext(0,\n                                        "expecting index register or scale factor after `,\'; got \'%c\'"\n                                        ,5,operand_string)" identifier = (cast_expression "(char *)dcgettext(0,\n                                        "expecting index register or scale factor after `,\'; got \'%c\'"\n                                        ,5,operand_string)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                        "expecting index register or scale factor after `,\'; got \'%c\'"\n                                        ,5,operand_string)" identifier (argument_list "(0,\n                                        "expecting index register or scale factor after `,\'; got \'%c\'"\n                                        ,5,operand_string)" ( number_literal , (string_literal ""expecting index register or scale factor after `,\'; got \'%c\'"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal , identifier ))))) ;) (expression_statement "as_bad(pcVar13,0x29);" (call_expression "as_bad(pcVar13,0x29)" identifier (argument_list "(pcVar13,0x29)" ( identifier , number_literal ))) ;) (return_statement "return 0;" return number_literal ;) })) }) (else_clause "else {\n          cVar4 = *end_op;\n          if (cVar4 == ' ') {\n            cVar4 = end_op[1];\n            end_op = end_op + 1;\n          }\n          if (cVar4 != ',') {\n            if (cVar4 != ')') {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          cVar4 = end_op[1];\n          pbVar22 = (byte *)(end_op + 1);\n          if (cVar4 == ' ') {\n            pbVar22 = (byte *)(end_op + 2);\n            cVar4 = end_op[2];\n          }\n          if (cVar4 == ')') break;\n        }" else (compound_statement "{\n          cVar4 = *end_op;\n          if (cVar4 == ' ') {\n            cVar4 = end_op[1];\n            end_op = end_op + 1;\n          }\n          if (cVar4 != ',') {\n            if (cVar4 != ')') {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          cVar4 = end_op[1];\n          pbVar22 = (byte *)(end_op + 1);\n          if (cVar4 == ' ') {\n            pbVar22 = (byte *)(end_op + 2);\n            cVar4 = end_op[2];\n          }\n          if (cVar4 == ')') break;\n        }" { (expression_statement "cVar4 = *end_op;" (assignment_expression "cVar4 = *end_op" identifier = (pointer_expression "*end_op" * identifier)) ;) (if_statement "if (cVar4 == ' ') {\n            cVar4 = end_op[1];\n            end_op = end_op + 1;\n          }" if (parenthesized_expression "(cVar4 == ' ')" ( (binary_expression "cVar4 == ' '" identifier == (char_literal "' '" ' character ')) )) (compound_statement "{\n            cVar4 = end_op[1];\n            end_op = end_op + 1;\n          }" { (expression_statement "cVar4 = end_op[1];" (assignment_expression "cVar4 = end_op[1]" identifier = (subscript_expression "end_op[1]" identifier [ number_literal ])) ;) (expression_statement "end_op = end_op + 1;" (assignment_expression "end_op = end_op + 1" identifier = (binary_expression "end_op + 1" identifier + number_literal)) ;) })) (if_statement "if (cVar4 != ',') {\n            if (cVar4 != ')') {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }" if (parenthesized_expression "(cVar4 != ',')" ( (binary_expression "cVar4 != ','" identifier != (char_literal "','" ' character ')) )) (compound_statement "{\n            if (cVar4 != ')') {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }" { (if_statement "if (cVar4 != ')') {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }" if (parenthesized_expression "(cVar4 != ')')" ( (binary_expression "cVar4 != ')'" identifier != (char_literal "')'" ' character ')) )) (compound_statement "{\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }" { (expression_statement "pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";" (assignment_expression "pcVar13 = "expecting `,\' or `)\' after index register in `%s\'"" identifier = (string_literal ""expecting `,\' or `)\' after index register in `%s\'"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (goto_statement "goto LAB_00047255;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "cVar4 = end_op[1];" (assignment_expression "cVar4 = end_op[1]" identifier = (subscript_expression "end_op[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar22 = (byte *)(end_op + 1);" (assignment_expression "pbVar22 = (byte *)(end_op + 1)" identifier = (cast_expression "(byte *)(end_op + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(end_op + 1)" ( (binary_expression "end_op + 1" identifier + number_literal) )))) ;) (if_statement "if (cVar4 == ' ') {\n            pbVar22 = (byte *)(end_op + 2);\n            cVar4 = end_op[2];\n          }" if (parenthesized_expression "(cVar4 == ' ')" ( (binary_expression "cVar4 == ' '" identifier == (char_literal "' '" ' character ')) )) (compound_statement "{\n            pbVar22 = (byte *)(end_op + 2);\n            cVar4 = end_op[2];\n          }" { (expression_statement "pbVar22 = (byte *)(end_op + 2);" (assignment_expression "pbVar22 = (byte *)(end_op + 2)" identifier = (cast_expression "(byte *)(end_op + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(end_op + 2)" ( (binary_expression "end_op + 2" identifier + number_literal) )))) ;) (expression_statement "cVar4 = end_op[2];" (assignment_expression "cVar4 = end_op[2]" identifier = (subscript_expression "end_op[2]" identifier [ number_literal ])) ;) })) (if_statement "if (cVar4 == ')') break;" if (parenthesized_expression "(cVar4 == ')')" ( (binary_expression "cVar4 == ')'" identifier == (char_literal "')'" ' character ')) )) (break_statement "break;" break ;)) }))) (expression_statement "ppcVar20 = &input_line_pointer;" (assignment_expression "ppcVar20 = &input_line_pointer" identifier = (pointer_expression "&input_line_pointer" & identifier)) ;) (expression_statement "input_line_pointer = (char *)pbVar22;" (assignment_expression "input_line_pointer = (char *)pbVar22" identifier = (cast_expression "(char *)pbVar22" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "oVar19 = get_absolute_expression();" (assignment_expression "oVar19 = get_absolute_expression()" identifier = (call_expression "get_absolute_expression()" identifier (argument_list "()" ( )))) ;) (if_statement "if (oVar19 == 2) {\n          i.log2_scale_factor = 1;\n          bVar5 = 1;\nLAB_0004751e:\n          if (i.index_reg == (reg_entry *)0x0) {\n            pcVar7 = (char *)dcgettext(0,"scale factor of %d without an index register",5,bVar5);\n            as_warn(pcVar7,1 << (bVar5 & 0x1f));\n            i.log2_scale_factor = 0;\n          }\n        }\n        else {\n          if (-(int)((ulonglong)oVar19 >> 0x20) < (int)(uint)(2 < (uint)oVar19)) {\n            if (oVar19 == 4) {\n              i.log2_scale_factor = 2;\n              bVar5 = 2;\n            }\n            else {\n              if (oVar19 != 8) goto LAB_0004760c;\n              i.log2_scale_factor = 3;\n              bVar5 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (oVar19 != 1) {\nLAB_0004760c:\n            cVar4 = **ppcVar20;\n            **ppcVar20 = '\0';\n            pcVar7 = (char *)dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            as_bad(pcVar7,pbVar22);\n            **ppcVar20 = cVar4;\n            *ppcVar20 = pcVar13;\n            return 0;\n          }\n          i.log2_scale_factor = 0;\n        }" if (parenthesized_expression "(oVar19 == 2)" ( (binary_expression "oVar19 == 2" identifier == number_literal) )) (compound_statement "{\n          i.log2_scale_factor = 1;\n          bVar5 = 1;\nLAB_0004751e:\n          if (i.index_reg == (reg_entry *)0x0) {\n            pcVar7 = (char *)dcgettext(0,"scale factor of %d without an index register",5,bVar5);\n            as_warn(pcVar7,1 << (bVar5 & 0x1f));\n            i.log2_scale_factor = 0;\n          }\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) ;) (expression_statement "bVar5 = 1;" (assignment_expression "bVar5 = 1" identifier = number_literal) ;) (labeled_statement "LAB_0004751e:\n          if (i.index_reg == (reg_entry *)0x0) {\n            pcVar7 = (char *)dcgettext(0,"scale factor of %d without an index register",5,bVar5);\n            as_warn(pcVar7,1 << (bVar5 & 0x1f));\n            i.log2_scale_factor = 0;\n          }" statement_identifier : (if_statement "if (i.index_reg == (reg_entry *)0x0) {\n            pcVar7 = (char *)dcgettext(0,"scale factor of %d without an index register",5,bVar5);\n            as_warn(pcVar7,1 << (bVar5 & 0x1f));\n            i.log2_scale_factor = 0;\n          }" if (parenthesized_expression "(i.index_reg == (reg_entry *)0x0)" ( (binary_expression "i.index_reg == (reg_entry *)0x0" (field_expression "i.index_reg" identifier . field_identifier) == (cast_expression "(reg_entry *)0x0" ( (type_descriptor "reg_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pcVar7 = (char *)dcgettext(0,"scale factor of %d without an index register",5,bVar5);\n            as_warn(pcVar7,1 << (bVar5 & 0x1f));\n            i.log2_scale_factor = 0;\n          }" { (expression_statement "pcVar7 = (char *)dcgettext(0,"scale factor of %d without an index register",5,bVar5);" (assignment_expression "pcVar7 = (char *)dcgettext(0,"scale factor of %d without an index register",5,bVar5)" identifier = (cast_expression "(char *)dcgettext(0,"scale factor of %d without an index register",5,bVar5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"scale factor of %d without an index register",5,bVar5)" identifier (argument_list "(0,"scale factor of %d without an index register",5,bVar5)" ( number_literal , (string_literal ""scale factor of %d without an index register"" " string_content ") , number_literal , identifier ))))) ;) (expression_statement "as_warn(pcVar7,1 << (bVar5 & 0x1f));" (call_expression "as_warn(pcVar7,1 << (bVar5 & 0x1f))" identifier (argument_list "(pcVar7,1 << (bVar5 & 0x1f))" ( identifier , (binary_expression "1 << (bVar5 & 0x1f)" number_literal << (parenthesized_expression "(bVar5 & 0x1f)" ( (binary_expression "bVar5 & 0x1f" identifier & number_literal) ))) ))) ;) (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 {\n          if (-(int)((ulonglong)oVar19 >> 0x20) < (int)(uint)(2 < (uint)oVar19)) {\n            if (oVar19 == 4) {\n              i.log2_scale_factor = 2;\n              bVar5 = 2;\n            }\n            else {\n              if (oVar19 != 8) goto LAB_0004760c;\n              i.log2_scale_factor = 3;\n              bVar5 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (oVar19 != 1) {\nLAB_0004760c:\n            cVar4 = **ppcVar20;\n            **ppcVar20 = '\0';\n            pcVar7 = (char *)dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            as_bad(pcVar7,pbVar22);\n            **ppcVar20 = cVar4;\n            *ppcVar20 = pcVar13;\n            return 0;\n          }\n          i.log2_scale_factor = 0;\n        }" else (compound_statement "{\n          if (-(int)((ulonglong)oVar19 >> 0x20) < (int)(uint)(2 < (uint)oVar19)) {\n            if (oVar19 == 4) {\n              i.log2_scale_factor = 2;\n              bVar5 = 2;\n            }\n            else {\n              if (oVar19 != 8) goto LAB_0004760c;\n              i.log2_scale_factor = 3;\n              bVar5 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (oVar19 != 1) {\nLAB_0004760c:\n            cVar4 = **ppcVar20;\n            **ppcVar20 = '\0';\n            pcVar7 = (char *)dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            as_bad(pcVar7,pbVar22);\n            **ppcVar20 = cVar4;\n            *ppcVar20 = pcVar13;\n            return 0;\n          }\n          i.log2_scale_factor = 0;\n        }" { (if_statement "if (-(int)((ulonglong)oVar19 >> 0x20) < (int)(uint)(2 < (uint)oVar19)) {\n            if (oVar19 == 4) {\n              i.log2_scale_factor = 2;\n              bVar5 = 2;\n            }\n            else {\n              if (oVar19 != 8) goto LAB_0004760c;\n              i.log2_scale_factor = 3;\n              bVar5 = 3;\n            }\n            goto LAB_0004751e;\n          }" if (parenthesized_expression "(-(int)((ulonglong)oVar19 >> 0x20) < (int)(uint)(2 < (uint)oVar19))" ( (binary_expression "-(int)((ulonglong)oVar19 >> 0x20) < (int)(uint)(2 < (uint)oVar19)" (unary_expression "-(int)((ulonglong)oVar19 >> 0x20)" - (cast_expression "(int)((ulonglong)oVar19 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)oVar19 >> 0x20)" ( (binary_expression "(ulonglong)oVar19 >> 0x20" (cast_expression "(ulonglong)oVar19" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) < (cast_expression "(int)(uint)(2 < (uint)oVar19)" ( (type_descriptor "int" primitive_type) ) (call_expression "(uint)(2 < (uint)oVar19)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(2 < (uint)oVar19)" ( (binary_expression "2 < (uint)oVar19" number_literal < (cast_expression "(uint)oVar19" ( (type_descriptor "uint" type_identifier) ) identifier)) ))))) )) (compound_statement "{\n            if (oVar19 == 4) {\n              i.log2_scale_factor = 2;\n              bVar5 = 2;\n            }\n            else {\n              if (oVar19 != 8) goto LAB_0004760c;\n              i.log2_scale_factor = 3;\n              bVar5 = 3;\n            }\n            goto LAB_0004751e;\n          }" { (if_statement "if (oVar19 == 4) {\n              i.log2_scale_factor = 2;\n              bVar5 = 2;\n            }\n            else {\n              if (oVar19 != 8) goto LAB_0004760c;\n              i.log2_scale_factor = 3;\n              bVar5 = 3;\n            }" if (parenthesized_expression "(oVar19 == 4)" ( (binary_expression "oVar19 == 4" identifier == number_literal) )) (compound_statement "{\n              i.log2_scale_factor = 2;\n              bVar5 = 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) ;) (expression_statement "bVar5 = 2;" (assignment_expression "bVar5 = 2" identifier = number_literal) ;) }) (else_clause "else {\n              if (oVar19 != 8) goto LAB_0004760c;\n              i.log2_scale_factor = 3;\n              bVar5 = 3;\n            }" else (compound_statement "{\n              if (oVar19 != 8) goto LAB_0004760c;\n              i.log2_scale_factor = 3;\n              bVar5 = 3;\n            }" { (if_statement "if (oVar19 != 8) goto LAB_0004760c;" if (parenthesized_expression "(oVar19 != 8)" ( (binary_expression "oVar19 != 8" identifier != number_literal) )) (goto_statement "goto LAB_0004760c;" 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) ;) (expression_statement "bVar5 = 3;" (assignment_expression "bVar5 = 3" identifier = number_literal) ;) }))) (goto_statement "goto LAB_0004751e;" goto statement_identifier ;) })) (if_statement "if (oVar19 != 1) {\nLAB_0004760c:\n            cVar4 = **ppcVar20;\n            **ppcVar20 = '\0';\n            pcVar7 = (char *)dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            as_bad(pcVar7,pbVar22);\n            **ppcVar20 = cVar4;\n            *ppcVar20 = pcVar13;\n            return 0;\n          }" if (parenthesized_expression "(oVar19 != 1)" ( (binary_expression "oVar19 != 1" identifier != number_literal) )) (compound_statement "{\nLAB_0004760c:\n            cVar4 = **ppcVar20;\n            **ppcVar20 = '\0';\n            pcVar7 = (char *)dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            as_bad(pcVar7,pbVar22);\n            **ppcVar20 = cVar4;\n            *ppcVar20 = pcVar13;\n            return 0;\n          }" { (labeled_statement "LAB_0004760c:\n            cVar4 = **ppcVar20;" statement_identifier : (expression_statement "cVar4 = **ppcVar20;" (assignment_expression "cVar4 = **ppcVar20" identifier = (pointer_expression "**ppcVar20" * (pointer_expression "*ppcVar20" * identifier))) ;)) (expression_statement "**ppcVar20 = '\0';" (assignment_expression "**ppcVar20 = '\0'" (pointer_expression "**ppcVar20" * (pointer_expression "*ppcVar20" * identifier)) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar7 = (char *)dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);" (assignment_expression "pcVar7 = (char *)dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5)" identifier = (cast_expression "(char *)dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5)" identifier (argument_list "(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5)" ( number_literal , (string_literal ""expecting scale factor of 1, 2, 4, or 8: got `%s\'"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "as_bad(pcVar7,pbVar22);" (call_expression "as_bad(pcVar7,pbVar22)" identifier (argument_list "(pcVar7,pbVar22)" ( identifier , identifier ))) ;) (expression_statement "**ppcVar20 = cVar4;" (assignment_expression "**ppcVar20 = cVar4" (pointer_expression "**ppcVar20" * (pointer_expression "*ppcVar20" * identifier)) = identifier) ;) (expression_statement "*ppcVar20 = pcVar13;" (assignment_expression "*ppcVar20 = pcVar13" (pointer_expression "*ppcVar20" * identifier) = identifier) ;) (return_statement "return 0;" return number_literal ;) })) (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) ;) }))) (expression_statement "pcVar7 = *ppcVar20;" (assignment_expression "pcVar7 = *ppcVar20" identifier = (pointer_expression "*ppcVar20" * identifier)) ;) (expression_statement "*ppcVar20 = pcVar13;" (assignment_expression "*ppcVar20 = pcVar13" (pointer_expression "*ppcVar20" * identifier) = identifier) ;) (if_statement "if (pcVar7 == (char *)0x0) {\n          return 0;\n        }" if (parenthesized_expression "(pcVar7 == (char *)0x0)" ( (binary_expression "pcVar7 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "cVar4 = *pcVar7;" (assignment_expression "cVar4 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (if_statement "if (cVar4 == ' ') {\n          cVar4 = pcVar7[1];\n        }" if (parenthesized_expression "(cVar4 == ' ')" ( (binary_expression "cVar4 == ' '" identifier == (char_literal "' '" ' character ')) )) (compound_statement "{\n          cVar4 = pcVar7[1];\n        }" { (expression_statement "cVar4 = pcVar7[1];" (assignment_expression "cVar4 = pcVar7[1]" identifier = (subscript_expression "pcVar7[1]" identifier [ number_literal ])) ;) })) (if_statement "if (cVar4 != ')') {\n          pcVar13 = "expecting `)\' after scale factor in `%s\'";\nLAB_00047255:\n          pcVar13 = (char *)dcgettext(0,pcVar13,5);\n          as_bad(pcVar13,operand_string);\n          return 0;\n        }" if (parenthesized_expression "(cVar4 != ')')" ( (binary_expression "cVar4 != ')'" identifier != (char_literal "')'" ' character ')) )) (compound_statement "{\n          pcVar13 = "expecting `)\' after scale factor in `%s\'";\nLAB_00047255:\n          pcVar13 = (char *)dcgettext(0,pcVar13,5);\n          as_bad(pcVar13,operand_string);\n          return 0;\n        }" { (expression_statement "pcVar13 = "expecting `)\' after scale factor in `%s\'";" (assignment_expression "pcVar13 = "expecting `)\' after scale factor in `%s\'"" identifier = (string_literal ""expecting `)\' after scale factor in `%s\'"" " string_content escape_sequence string_content escape_sequence ")) ;) (labeled_statement "LAB_00047255:\n          pcVar13 = (char *)dcgettext(0,pcVar13,5);" statement_identifier : (expression_statement "pcVar13 = (char *)dcgettext(0,pcVar13,5);" (assignment_expression "pcVar13 = (char *)dcgettext(0,pcVar13,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar13,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar13,5)" identifier (argument_list "(0,pcVar13,5)" ( number_literal , identifier , number_literal ))))) ;)) (expression_statement "as_bad(pcVar13,operand_string);" (call_expression "as_bad(pcVar13,operand_string)" identifier (argument_list "(pcVar13,operand_string)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (break_statement "break;" break ;) })) (labeled_statement "LAB_000471eb:\n      piVar11 = piVar17;" statement_identifier : (expression_statement "piVar11 = piVar17;" (assignment_expression "piVar11 = piVar17" identifier = identifier) ;)) (expression_statement "bVar5 = *(byte *)((int)piVar11 + -1);" (assignment_expression "bVar5 = *(byte *)((int)piVar11 + -1)" identifier = (pointer_expression "*(byte *)((int)piVar11 + -1)" * (cast_expression "(byte *)((int)piVar11 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + -1)" ( (binary_expression "(int)piVar11 + -1" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "piVar17 = (i386_operand_type *)((int)piVar11 + -1);" (assignment_expression "piVar17 = (i386_operand_type *)((int)piVar11 + -1)" identifier = (cast_expression "(i386_operand_type *)((int)piVar11 + -1)" ( (type_descriptor "i386_operand_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + -1)" ( (binary_expression "(int)piVar11 + -1" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (bVar5 != 0x29) goto LAB_000471e0;" if (parenthesized_expression "(bVar5 != 0x29)" ( (binary_expression "bVar5 != 0x29" identifier != number_literal) )) (goto_statement "goto LAB_000471e0;" goto statement_identifier ;)) (labeled_statement "LAB_000471f8:\n      iVar12 = iVar12 + 1;" statement_identifier : (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "piVar10 = piVar17;" (assignment_expression "piVar10 = piVar17" identifier = identifier) ;) (if_statement "if (reg_string == piVar17) goto LAB_00046e80;" if (parenthesized_expression "(reg_string == piVar17)" ( (binary_expression "reg_string == piVar17" identifier == identifier) )) (goto_statement "goto LAB_00046e80;" goto statement_identifier ;)) (labeled_statement "LAB_00046cd4:\n  uVar3 = i.disp_operands;" statement_identifier : (expression_statement "uVar3 = i.disp_operands;" (assignment_expression "uVar3 = i.disp_operands" identifier = (field_expression "i.disp_operands" identifier . field_identifier)) ;)) (expression_statement "iVar12 = this_operand;" (assignment_expression "iVar12 = this_operand" identifier = identifier) ;) (expression_statement "types.array[1] = 0;" (assignment_expression "types.array[1] = 0" (subscript_expression "types.array[1]" (field_expression "types.array" identifier . field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "types.array[0] = 0x1f0000;" (assignment_expression "types.array[0] = 0x1f0000" (subscript_expression "types.array[0]" (field_expression "types.array" identifier . field_identifier) [ number_literal ]) = number_literal) ;) (if_statement "if (i.disp_operands == 2) {\n    pcVar13 = "at most %d displacement operands are allowed";\nLAB_00047443:\n    pcVar13 = (char *)dcgettext(0,pcVar13,5);\n    as_bad(pcVar13,2);\n    return 0;\n  }" if (parenthesized_expression "(i.disp_operands == 2)" ( (binary_expression "i.disp_operands == 2" (field_expression "i.disp_operands" identifier . field_identifier) == number_literal) )) (compound_statement "{\n    pcVar13 = "at most %d displacement operands are allowed";\nLAB_00047443:\n    pcVar13 = (char *)dcgettext(0,pcVar13,5);\n    as_bad(pcVar13,2);\n    return 0;\n  }" { (expression_statement "pcVar13 = "at most %d displacement operands are allowed";" (assignment_expression "pcVar13 = "at most %d displacement operands are allowed"" identifier = (string_literal ""at most %d displacement operands are allowed"" " string_content ")) ;) (labeled_statement "LAB_00047443:\n    pcVar13 = (char *)dcgettext(0,pcVar13,5);" statement_identifier : (expression_statement "pcVar13 = (char *)dcgettext(0,pcVar13,5);" (assignment_expression "pcVar13 = (char *)dcgettext(0,pcVar13,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar13,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar13,5)" identifier (argument_list "(0,pcVar13,5)" ( number_literal , identifier , number_literal ))))) ;)) (expression_statement "as_bad(pcVar13,2);" (call_expression "as_bad(pcVar13,2)" identifier (argument_list "(pcVar13,2)" ( identifier , number_literal ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (((*(byte *)((int)i.types + this_operand * 8 + 3) & 2) == 0) &&\n     ((undefined1  [12])\n      ((undefined1  [12])current_templates->start->opcode_modifier & (undefined1  [12])0x60) !=\n      (undefined1  [12])0x0)) {\n    if (flag_code == CODE_64BIT) {\n      if ((i.prefix[3] != '\0') || (uVar21 = 0xc0000, i.suffix == 'w')) goto LAB_00046d4f;\n    }\n    else {\n      bVar18 = true;\n      if (i.prefix[3] == '\0') {\n        cVar4 = 'l';\n        if (flag_code != CODE_16BIT) {\n          cVar4 = 'w';\n        }\n        bVar18 = i.suffix == cVar4;\n      }\n      uVar21 = 0x40000;\n      if ((flag_code == CODE_16BIT) != bVar18) {\nLAB_00046d4f:\n        uVar21 = 0x20000;\n      }\n    }\n  }\n  else if (flag_code == CODE_64BIT) {\n    uVar21 = 0x1c0000;\n    if (i.prefix[2] != '\0') {\n      uVar21 = 0x40000;\n    }\n  }\n  else {\n    uVar21 = 0x40000;\n    if ((i.prefix[2] != '\0') != (flag_code == CODE_16BIT)) goto LAB_00046d4f;\n  }" if (parenthesized_expression "(((*(byte *)((int)i.types + this_operand * 8 + 3) & 2) == 0) &&\n     ((undefined1  [12])\n      ((undefined1  [12])current_templates->start->opcode_modifier & (undefined1  [12])0x60) !=\n      (undefined1  [12])0x0))" ( (binary_expression "((*(byte *)((int)i.types + this_operand * 8 + 3) & 2) == 0) &&\n     ((undefined1  [12])\n      ((undefined1  [12])current_templates->start->opcode_modifier & (undefined1  [12])0x60) !=\n      (undefined1  [12])0x0)" (parenthesized_expression "((*(byte *)((int)i.types + this_operand * 8 + 3) & 2) == 0)" ( (binary_expression "(*(byte *)((int)i.types + this_operand * 8 + 3) & 2) == 0" (parenthesized_expression "(*(byte *)((int)i.types + this_operand * 8 + 3) & 2)" ( (binary_expression "*(byte *)((int)i.types + this_operand * 8 + 3) & 2" (pointer_expression "*(byte *)((int)i.types + this_operand * 8 + 3)" * (cast_expression "(byte *)((int)i.types + this_operand * 8 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)i.types + this_operand * 8 + 3)" ( (binary_expression "(int)i.types + this_operand * 8 + 3" (binary_expression "(int)i.types + this_operand * 8" (cast_expression "(int)i.types" ( (type_descriptor "int" primitive_type) ) (field_expression "i.types" identifier . field_identifier)) + (binary_expression "this_operand * 8" identifier * number_literal)) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "((undefined1  [12])\n      ((undefined1  [12])current_templates->start->opcode_modifier & (undefined1  [12])0x60) !=\n      (undefined1  [12])0x0)" ( (binary_expression "(undefined1  [12])\n      ((undefined1  [12])current_templates->start->opcode_modifier & (undefined1  [12])0x60) !=\n      (undefined1  [12])0x0" (call_expression "(undefined1  [12])\n      ((undefined1  [12])current_templates->start->opcode_modifier & (undefined1  [12])0x60)" (parenthesized_expression "(undefined1  [12])" ( (subscript_expression "undefined1  [12]" identifier [ number_literal ]) )) (argument_list "((undefined1  [12])current_templates->start->opcode_modifier & (undefined1  [12])0x60)" ( (binary_expression "(undefined1  [12])current_templates->start->opcode_modifier & (undefined1  [12])0x60" (cast_expression "(undefined1  [12])current_templates->start->opcode_modifier" ( (type_descriptor "undefined1  [12]" type_identifier (abstract_array_declarator "[12]" [ number_literal ])) ) (field_expression "current_templates->start->opcode_modifier" (field_expression "current_templates->start" identifier -> field_identifier) -> field_identifier)) & (cast_expression "(undefined1  [12])0x60" ( (type_descriptor "undefined1  [12]" type_identifier (abstract_array_declarator "[12]" [ number_literal ])) ) number_literal)) ))) != (cast_expression "(undefined1  [12])0x0" ( (type_descriptor "undefined1  [12]" type_identifier (abstract_array_declarator "[12]" [ number_literal ])) ) number_literal)) ))) )) (compound_statement "{\n    if (flag_code == CODE_64BIT) {\n      if ((i.prefix[3] != '\0') || (uVar21 = 0xc0000, i.suffix == 'w')) goto LAB_00046d4f;\n    }\n    else {\n      bVar18 = true;\n      if (i.prefix[3] == '\0') {\n        cVar4 = 'l';\n        if (flag_code != CODE_16BIT) {\n          cVar4 = 'w';\n        }\n        bVar18 = i.suffix == cVar4;\n      }\n      uVar21 = 0x40000;\n      if ((flag_code == CODE_16BIT) != bVar18) {\nLAB_00046d4f:\n        uVar21 = 0x20000;\n      }\n    }\n  }" { (if_statement "if (flag_code == CODE_64BIT) {\n      if ((i.prefix[3] != '\0') || (uVar21 = 0xc0000, i.suffix == 'w')) goto LAB_00046d4f;\n    }\n    else {\n      bVar18 = true;\n      if (i.prefix[3] == '\0') {\n        cVar4 = 'l';\n        if (flag_code != CODE_16BIT) {\n          cVar4 = 'w';\n        }\n        bVar18 = i.suffix == cVar4;\n      }\n      uVar21 = 0x40000;\n      if ((flag_code == CODE_16BIT) != bVar18) {\nLAB_00046d4f:\n        uVar21 = 0x20000;\n      }\n    }" if (parenthesized_expression "(flag_code == CODE_64BIT)" ( (binary_expression "flag_code == CODE_64BIT" identifier == identifier) )) (compound_statement "{\n      if ((i.prefix[3] != '\0') || (uVar21 = 0xc0000, i.suffix == 'w')) goto LAB_00046d4f;\n    }" { (if_statement "if ((i.prefix[3] != '\0') || (uVar21 = 0xc0000, i.suffix == 'w')) goto LAB_00046d4f;" if (parenthesized_expression "((i.prefix[3] != '\0') || (uVar21 = 0xc0000, i.suffix == 'w'))" ( (binary_expression "(i.prefix[3] != '\0') || (uVar21 = 0xc0000, i.suffix == 'w')" (parenthesized_expression "(i.prefix[3] != '\0')" ( (binary_expression "i.prefix[3] != '\0'" (subscript_expression "i.prefix[3]" (field_expression "i.prefix" identifier . field_identifier) [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(uVar21 = 0xc0000, i.suffix == 'w')" ( (comma_expression "uVar21 = 0xc0000, i.suffix == 'w'" (assignment_expression "uVar21 = 0xc0000" identifier = number_literal) , (binary_expression "i.suffix == 'w'" (field_expression "i.suffix" identifier . field_identifier) == (char_literal "'w'" ' character '))) ))) )) (goto_statement "goto LAB_00046d4f;" goto statement_identifier ;)) }) (else_clause "else {\n      bVar18 = true;\n      if (i.prefix[3] == '\0') {\n        cVar4 = 'l';\n        if (flag_code != CODE_16BIT) {\n          cVar4 = 'w';\n        }\n        bVar18 = i.suffix == cVar4;\n      }\n      uVar21 = 0x40000;\n      if ((flag_code == CODE_16BIT) != bVar18) {\nLAB_00046d4f:\n        uVar21 = 0x20000;\n      }\n    }" else (compound_statement "{\n      bVar18 = true;\n      if (i.prefix[3] == '\0') {\n        cVar4 = 'l';\n        if (flag_code != CODE_16BIT) {\n          cVar4 = 'w';\n        }\n        bVar18 = i.suffix == cVar4;\n      }\n      uVar21 = 0x40000;\n      if ((flag_code == CODE_16BIT) != bVar18) {\nLAB_00046d4f:\n        uVar21 = 0x20000;\n      }\n    }" { (expression_statement "bVar18 = true;" (assignment_expression "bVar18 = true" identifier = true) ;) (if_statement "if (i.prefix[3] == '\0') {\n        cVar4 = 'l';\n        if (flag_code != CODE_16BIT) {\n          cVar4 = 'w';\n        }\n        bVar18 = i.suffix == cVar4;\n      }" if (parenthesized_expression "(i.prefix[3] == '\0')" ( (binary_expression "i.prefix[3] == '\0'" (subscript_expression "i.prefix[3]" (field_expression "i.prefix" identifier . field_identifier) [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        cVar4 = 'l';\n        if (flag_code != CODE_16BIT) {\n          cVar4 = 'w';\n        }\n        bVar18 = i.suffix == cVar4;\n      }" { (expression_statement "cVar4 = 'l';" (assignment_expression "cVar4 = 'l'" identifier = (char_literal "'l'" ' character ')) ;) (if_statement "if (flag_code != CODE_16BIT) {\n          cVar4 = 'w';\n        }" if (parenthesized_expression "(flag_code != CODE_16BIT)" ( (binary_expression "flag_code != CODE_16BIT" identifier != identifier) )) (compound_statement "{\n          cVar4 = 'w';\n        }" { (expression_statement "cVar4 = 'w';" (assignment_expression "cVar4 = 'w'" identifier = (char_literal "'w'" ' character ')) ;) })) (expression_statement "bVar18 = i.suffix == cVar4;" (assignment_expression "bVar18 = i.suffix == cVar4" identifier = (binary_expression "i.suffix == cVar4" (field_expression "i.suffix" identifier . field_identifier) == identifier)) ;) })) (expression_statement "uVar21 = 0x40000;" (assignment_expression "uVar21 = 0x40000" identifier = number_literal) ;) (if_statement "if ((flag_code == CODE_16BIT) != bVar18) {\nLAB_00046d4f:\n        uVar21 = 0x20000;\n      }" if (parenthesized_expression "((flag_code == CODE_16BIT) != bVar18)" ( (binary_expression "(flag_code == CODE_16BIT) != bVar18" (parenthesized_expression "(flag_code == CODE_16BIT)" ( (binary_expression "flag_code == CODE_16BIT" identifier == identifier) )) != identifier) )) (compound_statement "{\nLAB_00046d4f:\n        uVar21 = 0x20000;\n      }" { (labeled_statement "LAB_00046d4f:\n        uVar21 = 0x20000;" statement_identifier : (expression_statement "uVar21 = 0x20000;" (assignment_expression "uVar21 = 0x20000" identifier = number_literal) ;)) })) }))) }) (else_clause "else if (flag_code == CODE_64BIT) {\n    uVar21 = 0x1c0000;\n    if (i.prefix[2] != '\0') {\n      uVar21 = 0x40000;\n    }\n  }\n  else {\n    uVar21 = 0x40000;\n    if ((i.prefix[2] != '\0') != (flag_code == CODE_16BIT)) goto LAB_00046d4f;\n  }" else (if_statement "if (flag_code == CODE_64BIT) {\n    uVar21 = 0x1c0000;\n    if (i.prefix[2] != '\0') {\n      uVar21 = 0x40000;\n    }\n  }\n  else {\n    uVar21 = 0x40000;\n    if ((i.prefix[2] != '\0') != (flag_code == CODE_16BIT)) goto LAB_00046d4f;\n  }" if (parenthesized_expression "(flag_code == CODE_64BIT)" ( (binary_expression "flag_code == CODE_64BIT" identifier == identifier) )) (compound_statement "{\n    uVar21 = 0x1c0000;\n    if (i.prefix[2] != '\0') {\n      uVar21 = 0x40000;\n    }\n  }" { (expression_statement "uVar21 = 0x1c0000;" (assignment_expression "uVar21 = 0x1c0000" identifier = number_literal) ;) (if_statement "if (i.prefix[2] != '\0') {\n      uVar21 = 0x40000;\n    }" if (parenthesized_expression "(i.prefix[2] != '\0')" ( (binary_expression "i.prefix[2] != '\0'" (subscript_expression "i.prefix[2]" (field_expression "i.prefix" identifier . field_identifier) [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar21 = 0x40000;\n    }" { (expression_statement "uVar21 = 0x40000;" (assignment_expression "uVar21 = 0x40000" identifier = number_literal) ;) })) }) (else_clause "else {\n    uVar21 = 0x40000;\n    if ((i.prefix[2] != '\0') != (flag_code == CODE_16BIT)) goto LAB_00046d4f;\n  }" else (compound_statement "{\n    uVar21 = 0x40000;\n    if ((i.prefix[2] != '\0') != (flag_code == CODE_16BIT)) goto LAB_00046d4f;\n  }" { (expression_statement "uVar21 = 0x40000;" (assignment_expression "uVar21 = 0x40000" identifier = number_literal) ;) (if_statement "if ((i.prefix[2] != '\0') != (flag_code == CODE_16BIT)) goto LAB_00046d4f;" if (parenthesized_expression "((i.prefix[2] != '\0') != (flag_code == CODE_16BIT))" ( (binary_expression "(i.prefix[2] != '\0') != (flag_code == CODE_16BIT)" (parenthesized_expression "(i.prefix[2] != '\0')" ( (binary_expression "i.prefix[2] != '\0'" (subscript_expression "i.prefix[2]" (field_expression "i.prefix" identifier . field_identifier) [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) != (parenthesized_expression "(flag_code == CODE_16BIT)" ( (binary_expression "flag_code == CODE_16BIT" identifier == identifier) ))) )) (goto_statement "goto LAB_00046d4f;" goto statement_identifier ;)) }))))) (expression_statement "i.types[this_operand].array[0] = i.types[this_operand].array[0] | uVar21;" (assignment_expression "i.types[this_operand].array[0] = i.types[this_operand].array[0] | uVar21" (subscript_expression "i.types[this_operand].array[0]" (field_expression "i.types[this_operand].array" (subscript_expression "i.types[this_operand]" (field_expression "i.types" identifier . field_identifier) [ identifier ]) . field_identifier) [ number_literal ]) = (binary_expression "i.types[this_operand].array[0] | uVar21" (subscript_expression "i.types[this_operand].array[0]" (field_expression "i.types[this_operand].array" (subscript_expression "i.types[this_operand]" (field_expression "i.types" identifier . field_identifier) [ identifier ]) . field_identifier) [ number_literal ]) | identifier)) ;) (expression_statement "paVar8 = (segT)(disp_expressions + i.disp_operands);" (assignment_expression "paVar8 = (segT)(disp_expressions + i.disp_operands)" identifier = (call_expression "(segT)(disp_expressions + i.disp_operands)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(disp_expressions + i.disp_operands)" ( (binary_expression "disp_expressions + i.disp_operands" identifier + (field_expression "i.disp_operands" identifier . field_identifier)) )))) ;) (expression_statement "i.op[iVar12].disps = (expressionS *)paVar8;" (assignment_expression "i.op[iVar12].disps = (expressionS *)paVar8" (field_expression "i.op[iVar12].disps" (subscript_expression "i.op[iVar12]" (field_expression "i.op" identifier . field_identifier) [ identifier ]) . field_identifier) = (cast_expression "(expressionS *)paVar8" ( (type_descriptor "expressionS *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pcVar13 = input_line_pointer;" (assignment_expression "pcVar13 = input_line_pointer" identifier = identifier) ;) (expression_statement "i.disp_operands = i.disp_operands + 1;" (assignment_expression "i.disp_operands = i.disp_operands + 1" (field_expression "i.disp_operands" identifier . field_identifier) = (binary_expression "i.disp_operands + 1" (field_expression "i.disp_operands" identifier . field_identifier) + number_literal)) ;) (expression_statement "ppcVar20 = &input_line_pointer;" (assignment_expression "ppcVar20 = &input_line_pointer" identifier = (pointer_expression "&input_line_pointer" & identifier)) ;) (expression_statement "pcVar7 = save_stack_p + 1;" (assignment_expression "pcVar7 = save_stack_p + 1" identifier = (binary_expression "save_stack_p + 1" identifier + number_literal)) ;) (expression_statement "input_line_pointer = (char *)reg_string;" (assignment_expression "input_line_pointer = (char *)reg_string" identifier = (cast_expression "(char *)reg_string" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "*save_stack_p = *(char *)piVar10;" (assignment_expression "*save_stack_p = *(char *)piVar10" (pointer_expression "*save_stack_p" * identifier) = (pointer_expression "*(char *)piVar10" * (cast_expression "(char *)piVar10" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "save_stack_p = pcVar7;" (assignment_expression "save_stack_p = pcVar7" identifier = identifier) ;) (expression_statement "*(undefined1 *)piVar10 = 0;" (assignment_expression "*(undefined1 *)piVar10 = 0" (pointer_expression "*(undefined1 *)piVar10" * (cast_expression "(undefined1 *)piVar10" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "pcVar7 = lex_got(in_stack_ffffffb4,(int *)&input_line_pointer,piVar10);" (assignment_expression "pcVar7 = lex_got(in_stack_ffffffb4,(int *)&input_line_pointer,piVar10)" identifier = (call_expression "lex_got(in_stack_ffffffb4,(int *)&input_line_pointer,piVar10)" identifier (argument_list "(in_stack_ffffffb4,(int *)&input_line_pointer,piVar10)" ( identifier , (cast_expression "(int *)&input_line_pointer" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&input_line_pointer" & identifier)) , identifier )))) ;) (if_statement "if (pcVar7 != (char *)0x0) {\n    *ppcVar20 = pcVar7;\n  }" if (parenthesized_expression "(pcVar7 != (char *)0x0)" ( (binary_expression "pcVar7 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *ppcVar20 = pcVar7;\n  }" { (expression_statement "*ppcVar20 = pcVar7;" (assignment_expression "*ppcVar20 = pcVar7" (pointer_expression "*ppcVar20" * identifier) = identifier) ;) })) (expression_statement "expr(0,(expressionS *)paVar8,expr_normal);" (call_expression "expr(0,(expressionS *)paVar8,expr_normal)" identifier (argument_list "(0,(expressionS *)paVar8,expr_normal)" ( number_literal , (cast_expression "(expressionS *)paVar8" ( (type_descriptor "expressionS *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "pcVar16 = *ppcVar20;" (assignment_expression "pcVar16 = *ppcVar20" identifier = (pointer_expression "*ppcVar20" * identifier)) ;) (expression_statement "cVar4 = *pcVar16;" (assignment_expression "cVar4 = *pcVar16" identifier = (pointer_expression "*pcVar16" * identifier)) ;) (expression_statement "pcVar14 = pcVar16;" (assignment_expression "pcVar14 = pcVar16" identifier = identifier) ;) (if_statement "if (cVar4 == ' ') {\n    pcVar14 = pcVar16 + 1;\n    *ppcVar20 = pcVar14;\n    cVar4 = pcVar16[1];\n  }" if (parenthesized_expression "(cVar4 == ' ')" ( (binary_expression "cVar4 == ' '" identifier == (char_literal "' '" ' character ')) )) (compound_statement "{\n    pcVar14 = pcVar16 + 1;\n    *ppcVar20 = pcVar14;\n    cVar4 = pcVar16[1];\n  }" { (expression_statement "pcVar14 = pcVar16 + 1;" (assignment_expression "pcVar14 = pcVar16 + 1" identifier = (binary_expression "pcVar16 + 1" identifier + number_literal)) ;) (expression_statement "*ppcVar20 = pcVar14;" (assignment_expression "*ppcVar20 = pcVar14" (pointer_expression "*ppcVar20" * identifier) = identifier) ;) (expression_statement "cVar4 = pcVar16[1];" (assignment_expression "cVar4 = pcVar16[1]" identifier = (subscript_expression "pcVar16[1]" identifier [ number_literal ])) ;) })) (if_statement "if (cVar4 != '\0') {\n    pcVar16 = (char *)dcgettext(0,"junk `%s\' after expression",5);\n    as_bad(pcVar16,pcVar14);\n  }" if (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    pcVar16 = (char *)dcgettext(0,"junk `%s\' after expression",5);\n    as_bad(pcVar16,pcVar14);\n  }" { (expression_statement "pcVar16 = (char *)dcgettext(0,"junk `%s\' after expression",5);" (assignment_expression "pcVar16 = (char *)dcgettext(0,"junk `%s\' after expression",5)" identifier = (cast_expression "(char *)dcgettext(0,"junk `%s\' after expression",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"junk `%s\' after expression",5)" identifier (argument_list "(0,"junk `%s\' after expression",5)" ( number_literal , (string_literal ""junk `%s\' after expression"" " string_content escape_sequence string_content ") , number_literal ))))) ;) (expression_statement "as_bad(pcVar16,pcVar14);" (call_expression "as_bad(pcVar16,pcVar14)" identifier (argument_list "(pcVar16,pcVar14)" ( identifier , identifier ))) ;) })) (expression_statement "*ppcVar20 = pcVar13;" (assignment_expression "*ppcVar20 = pcVar13" (pointer_expression "*ppcVar20" * identifier) = identifier) ;) (if_statement "if (pcVar7 != (char *)0x0) {\n    free(pcVar7);\n    if ((disp_expressions[uVar3].field_0x10 == '\x02') ||\n       (disp_expressions[uVar3].field_0x10 == '\x05')) {\n      disp_expressions[uVar3].field_0x10 = 0;\n    }\n  }" if (parenthesized_expression "(pcVar7 != (char *)0x0)" ( (binary_expression "pcVar7 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    free(pcVar7);\n    if ((disp_expressions[uVar3].field_0x10 == '\x02') ||\n       (disp_expressions[uVar3].field_0x10 == '\x05')) {\n      disp_expressions[uVar3].field_0x10 = 0;\n    }\n  }" { (expression_statement "free(pcVar7);" (call_expression "free(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier ))) ;) (if_statement "if ((disp_expressions[uVar3].field_0x10 == '\x02') ||\n       (disp_expressions[uVar3].field_0x10 == '\x05')) {\n      disp_expressions[uVar3].field_0x10 = 0;\n    }" if (parenthesized_expression "((disp_expressions[uVar3].field_0x10 == '\x02') ||\n       (disp_expressions[uVar3].field_0x10 == '\x05'))" ( (binary_expression "(disp_expressions[uVar3].field_0x10 == '\x02') ||\n       (disp_expressions[uVar3].field_0x10 == '\x05')" (parenthesized_expression "(disp_expressions[uVar3].field_0x10 == '\x02')" ( (binary_expression "disp_expressions[uVar3].field_0x10 == '\x02'" (field_expression "disp_expressions[uVar3].field_0x10" (subscript_expression "disp_expressions[uVar3]" identifier [ identifier ]) . field_identifier) == (char_literal "'\x02'" ' escape_sequence ')) )) || (parenthesized_expression "(disp_expressions[uVar3].field_0x10 == '\x05')" ( (binary_expression "disp_expressions[uVar3].field_0x10 == '\x05'" (field_expression "disp_expressions[uVar3].field_0x10" (subscript_expression "disp_expressions[uVar3]" identifier [ identifier ]) . field_identifier) == (char_literal "'\x05'" ' escape_sequence ')) ))) )) (compound_statement "{\n      disp_expressions[uVar3].field_0x10 = 0;\n    }" { (expression_statement "disp_expressions[uVar3].field_0x10 = 0;" (assignment_expression "disp_expressions[uVar3].field_0x10 = 0" (field_expression "disp_expressions[uVar3].field_0x10" (subscript_expression "disp_expressions[uVar3]" identifier [ identifier ]) . field_identifier) = number_literal) ;) })) })) (expression_statement "types_01.array[1] = (uint)ppcVar20;" (assignment_expression "types_01.array[1] = (uint)ppcVar20" (subscript_expression "types_01.array[1]" (field_expression "types_01.array" identifier . field_identifier) [ number_literal ]) = (cast_expression "(uint)ppcVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "types_01.array[0] = (uint)in_stack_ffffffb4;" (assignment_expression "types_01.array[0] = (uint)in_stack_ffffffb4" (subscript_expression "types_01.array[0]" (field_expression "types_01.array" identifier . field_identifier) [ number_literal ]) = (cast_expression "(uint)in_stack_ffffffb4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "iVar12 = i386_finalize_displacement\n                     (paVar8,(expressionS *)types.array[0],types_01,(char *)reg_string->array);" (assignment_expression "iVar12 = i386_finalize_displacement\n                     (paVar8,(expressionS *)types.array[0],types_01,(char *)reg_string->array)" identifier = (call_expression "i386_finalize_displacement\n                     (paVar8,(expressionS *)types.array[0],types_01,(char *)reg_string->array)" identifier (argument_list "(paVar8,(expressionS *)types.array[0],types_01,(char *)reg_string->array)" ( identifier , (cast_expression "(expressionS *)types.array[0]" ( (type_descriptor "expressionS *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "types.array[0]" (field_expression "types.array" identifier . field_identifier) [ number_literal ])) , identifier , (cast_expression "(char *)reg_string->array" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "reg_string->array" identifier -> field_identifier)) )))) ;) (expression_statement "pcVar13 = save_stack_p + -1;" (assignment_expression "pcVar13 = save_stack_p + -1" identifier = (binary_expression "save_stack_p + -1" identifier + number_literal)) ;) (expression_statement "save_stack_p = save_stack_p + -1;" (assignment_expression "save_stack_p = save_stack_p + -1" identifier = (binary_expression "save_stack_p + -1" identifier + number_literal)) ;) (expression_statement "*(char *)piVar10 = *pcVar13;" (assignment_expression "*(char *)piVar10 = *pcVar13" (pointer_expression "*(char *)piVar10" * (cast_expression "(char *)piVar10" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*pcVar13" * identifier)) ;) (if_statement "if (iVar12 == 0) {\n    return 0;\n  }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (labeled_statement "LAB_00046e80:\n  iVar12 = this_operand;" statement_identifier : (expression_statement "iVar12 = this_operand;" (assignment_expression "iVar12 = this_operand" identifier = identifier) ;)) (if_statement "if (((((i.base_reg != (reg_entry *)0x0) &&\n        (((i.base_reg)->reg_type).array[1] == reg16_inoutportreg.array[1])) &&\n       (((i.base_reg)->reg_type).array[0] == reg16_inoutportreg.array[0])) &&\n      ((i.index_reg == (reg_entry *)0x0 && (i.log2_scale_factor == 0)))) &&\n     ((i.seg[i.mem_operands] == (seg_entry *)0x0 &&\n      ((*(byte *)((int)i.types + this_operand * 8 + 2) & 0x1f) == 0)))) {\n    i.types[this_operand].array[0] = 0;\n    *(undefined4 *)((int)i.types + iVar12 * 8 + 4) = 0;\n    pbVar22 = (byte *)((int)i.types + iVar12 * 8 + 2);\n    *pbVar22 = *pbVar22 | 0x80;\n    return 1;\n  }" if (parenthesized_expression "(((((i.base_reg != (reg_entry *)0x0) &&\n        (((i.base_reg)->reg_type).array[1] == reg16_inoutportreg.array[1])) &&\n       (((i.base_reg)->reg_type).array[0] == reg16_inoutportreg.array[0])) &&\n      ((i.index_reg == (reg_entry *)0x0 && (i.log2_scale_factor == 0)))) &&\n     ((i.seg[i.mem_operands] == (seg_entry *)0x0 &&\n      ((*(byte *)((int)i.types + this_operand * 8 + 2) & 0x1f) == 0))))" ( (binary_expression "((((i.base_reg != (reg_entry *)0x0) &&\n        (((i.base_reg)->reg_type).array[1] == reg16_inoutportreg.array[1])) &&\n       (((i.base_reg)->reg_type).array[0] == reg16_inoutportreg.array[0])) &&\n      ((i.index_reg == (reg_entry *)0x0 && (i.log2_scale_factor == 0)))) &&\n     ((i.seg[i.mem_operands] == (seg_entry *)0x0 &&\n      ((*(byte *)((int)i.types + this_operand * 8 + 2) & 0x1f) == 0)))" (parenthesized_expression "((((i.base_reg != (reg_entry *)0x0) &&\n        (((i.base_reg)->reg_type).array[1] == reg16_inoutportreg.array[1])) &&\n       (((i.base_reg)->reg_type).array[0] == reg16_inoutportreg.array[0])) &&\n      ((i.index_reg == (reg_entry *)0x0 && (i.log2_scale_factor == 0))))" ( (binary_expression "(((i.base_reg != (reg_entry *)0x0) &&\n        (((i.base_reg)->reg_type).array[1] == reg16_inoutportreg.array[1])) &&\n       (((i.base_reg)->reg_type).array[0] == reg16_inoutportreg.array[0])) &&\n      ((i.index_reg == (reg_entry *)0x0 && (i.log2_scale_factor == 0)))" (parenthesized_expression "(((i.base_reg != (reg_entry *)0x0) &&\n        (((i.base_reg)->reg_type).array[1] == reg16_inoutportreg.array[1])) &&\n       (((i.base_reg)->reg_type).array[0] == reg16_inoutportreg.array[0]))" ( (binary_expression "((i.base_reg != (reg_entry *)0x0) &&\n        (((i.base_reg)->reg_type).array[1] == reg16_inoutportreg.array[1])) &&\n       (((i.base_reg)->reg_type).array[0] == reg16_inoutportreg.array[0])" (parenthesized_expression "((i.base_reg != (reg_entry *)0x0) &&\n        (((i.base_reg)->reg_type).array[1] == reg16_inoutportreg.array[1]))" ( (binary_expression "(i.base_reg != (reg_entry *)0x0) &&\n        (((i.base_reg)->reg_type).array[1] == reg16_inoutportreg.array[1])" (parenthesized_expression "(i.base_reg != (reg_entry *)0x0)" ( (binary_expression "i.base_reg != (reg_entry *)0x0" (field_expression "i.base_reg" identifier . field_identifier) != (cast_expression "(reg_entry *)0x0" ( (type_descriptor "reg_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(((i.base_reg)->reg_type).array[1] == reg16_inoutportreg.array[1])" ( (binary_expression "((i.base_reg)->reg_type).array[1] == reg16_inoutportreg.array[1]" (subscript_expression "((i.base_reg)->reg_type).array[1]" (field_expression "((i.base_reg)->reg_type).array" (parenthesized_expression "((i.base_reg)->reg_type)" ( (field_expression "(i.base_reg)->reg_type" (parenthesized_expression "(i.base_reg)" ( (field_expression "i.base_reg" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) [ number_literal ]) == (subscript_expression "reg16_inoutportreg.array[1]" (field_expression "reg16_inoutportreg.array" identifier . field_identifier) [ number_literal ])) ))) )) && (parenthesized_expression "(((i.base_reg)->reg_type).array[0] == reg16_inoutportreg.array[0])" ( (binary_expression "((i.base_reg)->reg_type).array[0] == reg16_inoutportreg.array[0]" (subscript_expression "((i.base_reg)->reg_type).array[0]" (field_expression "((i.base_reg)->reg_type).array" (parenthesized_expression "((i.base_reg)->reg_type)" ( (field_expression "(i.base_reg)->reg_type" (parenthesized_expression "(i.base_reg)" ( (field_expression "i.base_reg" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) [ number_literal ]) == (subscript_expression "reg16_inoutportreg.array[0]" (field_expression "reg16_inoutportreg.array" identifier . field_identifier) [ number_literal ])) ))) )) && (parenthesized_expression "((i.index_reg == (reg_entry *)0x0 && (i.log2_scale_factor == 0)))" ( (parenthesized_expression "(i.index_reg == (reg_entry *)0x0 && (i.log2_scale_factor == 0))" ( (binary_expression "i.index_reg == (reg_entry *)0x0 && (i.log2_scale_factor == 0)" (binary_expression "i.index_reg == (reg_entry *)0x0" (field_expression "i.index_reg" identifier . field_identifier) == (cast_expression "(reg_entry *)0x0" ( (type_descriptor "reg_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(i.log2_scale_factor == 0)" ( (binary_expression "i.log2_scale_factor == 0" (field_expression "i.log2_scale_factor" identifier . field_identifier) == number_literal) ))) )) ))) )) && (parenthesized_expression "((i.seg[i.mem_operands] == (seg_entry *)0x0 &&\n      ((*(byte *)((int)i.types + this_operand * 8 + 2) & 0x1f) == 0)))" ( (parenthesized_expression "(i.seg[i.mem_operands] == (seg_entry *)0x0 &&\n      ((*(byte *)((int)i.types + this_operand * 8 + 2) & 0x1f) == 0))" ( (binary_expression "i.seg[i.mem_operands] == (seg_entry *)0x0 &&\n      ((*(byte *)((int)i.types + this_operand * 8 + 2) & 0x1f) == 0)" (binary_expression "i.seg[i.mem_operands] == (seg_entry *)0x0" (subscript_expression "i.seg[i.mem_operands]" (field_expression "i.seg" identifier . field_identifier) [ (field_expression "i.mem_operands" identifier . field_identifier) ]) == (cast_expression "(seg_entry *)0x0" ( (type_descriptor "seg_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "((*(byte *)((int)i.types + this_operand * 8 + 2) & 0x1f) == 0)" ( (binary_expression "(*(byte *)((int)i.types + this_operand * 8 + 2) & 0x1f) == 0" (parenthesized_expression "(*(byte *)((int)i.types + this_operand * 8 + 2) & 0x1f)" ( (binary_expression "*(byte *)((int)i.types + this_operand * 8 + 2) & 0x1f" (pointer_expression "*(byte *)((int)i.types + this_operand * 8 + 2)" * (cast_expression "(byte *)((int)i.types + this_operand * 8 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)i.types + this_operand * 8 + 2)" ( (binary_expression "(int)i.types + this_operand * 8 + 2" (binary_expression "(int)i.types + this_operand * 8" (cast_expression "(int)i.types" ( (type_descriptor "int" primitive_type) ) (field_expression "i.types" identifier . field_identifier)) + (binary_expression "this_operand * 8" identifier * number_literal)) + number_literal) )))) & number_literal) )) == number_literal) ))) )) ))) )) (compound_statement "{\n    i.types[this_operand].array[0] = 0;\n    *(undefined4 *)((int)i.types + iVar12 * 8 + 4) = 0;\n    pbVar22 = (byte *)((int)i.types + iVar12 * 8 + 2);\n    *pbVar22 = *pbVar22 | 0x80;\n    return 1;\n  }" { (expression_statement "i.types[this_operand].array[0] = 0;" (assignment_expression "i.types[this_operand].array[0] = 0" (subscript_expression "i.types[this_operand].array[0]" (field_expression "i.types[this_operand].array" (subscript_expression "i.types[this_operand]" (field_expression "i.types" identifier . field_identifier) [ identifier ]) . field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)((int)i.types + iVar12 * 8 + 4) = 0;" (assignment_expression "*(undefined4 *)((int)i.types + iVar12 * 8 + 4) = 0" (pointer_expression "*(undefined4 *)((int)i.types + iVar12 * 8 + 4)" * (cast_expression "(undefined4 *)((int)i.types + iVar12 * 8 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)i.types + iVar12 * 8 + 4)" ( (binary_expression "(int)i.types + iVar12 * 8 + 4" (binary_expression "(int)i.types + iVar12 * 8" (cast_expression "(int)i.types" ( (type_descriptor "int" primitive_type) ) (field_expression "i.types" identifier . field_identifier)) + (binary_expression "iVar12 * 8" identifier * number_literal)) + number_literal) )))) = number_literal) ;) (expression_statement "pbVar22 = (byte *)((int)i.types + iVar12 * 8 + 2);" (assignment_expression "pbVar22 = (byte *)((int)i.types + iVar12 * 8 + 2)" identifier = (cast_expression "(byte *)((int)i.types + iVar12 * 8 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)i.types + iVar12 * 8 + 2)" ( (binary_expression "(int)i.types + iVar12 * 8 + 2" (binary_expression "(int)i.types + iVar12 * 8" (cast_expression "(int)i.types" ( (type_descriptor "int" primitive_type) ) (field_expression "i.types" identifier . field_identifier)) + (binary_expression "iVar12 * 8" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "*pbVar22 = *pbVar22 | 0x80;" (assignment_expression "*pbVar22 = *pbVar22 | 0x80" (pointer_expression "*pbVar22" * identifier) = (binary_expression "*pbVar22 | 0x80" (pointer_expression "*pbVar22" * identifier) | number_literal)) ;) (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00046ea4:\n  iVar12 = i386_index_check(operand_string);" statement_identifier : (expression_statement "iVar12 = i386_index_check(operand_string);" (assignment_expression "iVar12 = i386_index_check(operand_string)" identifier = (call_expression "i386_index_check(operand_string)" identifier (argument_list "(operand_string)" ( identifier )))) ;)) (if_statement "if (iVar12 == 0) {\n    return 0;\n  }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pbVar22 = (byte *)((int)i.types + this_operand * 8 + 3);" (assignment_expression "pbVar22 = (byte *)((int)i.types + this_operand * 8 + 3)" identifier = (cast_expression "(byte *)((int)i.types + this_operand * 8 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)i.types + this_operand * 8 + 3)" ( (binary_expression "(int)i.types + this_operand * 8 + 3" (binary_expression "(int)i.types + this_operand * 8" (cast_expression "(int)i.types" ( (type_descriptor "int" primitive_type) ) (field_expression "i.types" identifier . field_identifier)) + (binary_expression "this_operand * 8" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "*pbVar22 = *pbVar22 | 0x10;" (assignment_expression "*pbVar22 = *pbVar22 | 0x10" (pointer_expression "*pbVar22" * identifier) = (binary_expression "*pbVar22 | 0x10" (pointer_expression "*pbVar22" * identifier) | number_literal)) ;) (if_statement "if (i.mem_operands == 0) {\n    i.memop1_string = (char *)xstrdup(operand_string);\n  }" if (parenthesized_expression "(i.mem_operands == 0)" ( (binary_expression "i.mem_operands == 0" (field_expression "i.mem_operands" identifier . field_identifier) == number_literal) )) (compound_statement "{\n    i.memop1_string = (char *)xstrdup(operand_string);\n  }" { (expression_statement "i.memop1_string = (char *)xstrdup(operand_string);" (assignment_expression "i.memop1_string = (char *)xstrdup(operand_string)" (field_expression "i.memop1_string" identifier . field_identifier) = (cast_expression "(char *)xstrdup(operand_string)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xstrdup(operand_string)" identifier (argument_list "(operand_string)" ( identifier ))))) ;) })) (expression_statement "i.mem_operands = i.mem_operands + 1;" (assignment_expression "i.mem_operands = i.mem_operands + 1" (field_expression "i.mem_operands" identifier . field_identifier) = (binary_expression "i.mem_operands + 1" (field_expression "i.mem_operands" identifier . field_identifier) + number_literal)) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "bool __regparm3 FUN_00046910(byte *param_1)\n\n{\n  int iVar1;\n  byte *pbVar2;\n  uint uVar3;\n  byte bVar4;\n  char cVar5;\n  int iVar6;\n  undefined4 uVar7;\n  size_t sVar8;\n  int iVar9;\n  byte *pbVar10;\n  undefined4 *puVar11;\n  undefined4 uVar12;\n  char *pcVar13;\n  sbyte sVar14;\n  undefined4 extraout_ECX;\n  byte *pbVar15;\n  byte *pbVar16;\n  bool bVar17;\n  longlong lVar18;\n  uint local_48;\n  byte *local_44;\n  byte *local_28;\n  \n  bVar4 = *param_1;\n  pbVar16 = param_1;\n  if (bVar4 == 0x20) {\n    bVar4 = param_1[1];\n    pbVar16 = param_1 + 1;\n  }\n  if (bVar4 == 0x2a) {\n    if (pbVar16[1] == 0x20) {\n      pbVar16 = pbVar16 + 2;\n    }\n    else {\n      pbVar16 = pbVar16 + 1;\n    }\n    pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);\n    *pbVar10 = *pbVar10 | 2;\n  }\n  iVar6 = FUN_00044f30();\n  iVar9 = DAT_0008900c;\n  if (iVar6 == 0) {\n    bVar4 = *pbVar16;\n    if (bVar4 == 0x25) {\n      pcVar13 = "bad register name `%s\'";\nLAB_00046f4c:\n      uVar7 = dcgettext(0,pcVar13,5);\n      FUN_0002bd60(uVar7,pbVar16);\n      return false;\n    }\n    if (bVar4 == 0x24) {\n      if ((*(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3) & 2) != 0) {\n        uVar7 = dcgettext(0,"immediate operand illegal with absolute jump",5);\n        FUN_0002bd60(uVar7);\n        return false;\n      }\n      if (DAT_0008900c != 2) {\n        iVar6 = DAT_0008900c * 5;\n        DAT_0008900c = DAT_0008900c + 1;\n        (&DAT_00089038)[DAT_00080558] = &DAT_00088f20 + iVar6;\n        uVar7 = DAT_00089978;\n        local_44 = pbVar16 + 2;\n        if (pbVar16[1] != 0x20) {\n          local_44 = pbVar16 + 1;\n        }\n        DAT_00089978 = local_44;\n        pbVar16 = (byte *)FUN_000453b0();\n        if (pbVar16 != (byte *)0x0) {\n          DAT_00089978 = pbVar16;\n        }\n        FUN_000221d0(0,&DAT_00088f20 + iVar6,1);\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n          DAT_00089978 = DAT_00089978 + 1;\n        }\n        if (bVar4 == 0x7b) {\n          DAT_00089978 = (byte *)FUN_00045070();\n          if (DAT_00089978 == (byte *)0x0) {\n            return false;\n          }\n          bVar4 = *DAT_00089978;\n        }\n        pbVar10 = DAT_00089978;\n        if (bVar4 != 0) {\n          uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n          FUN_0002bd60(uVar12,pbVar10);\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (pbVar16 != (byte *)0x0) {\n          free(pbVar16);\n          if (((&DAT_00088f30)[iVar9 * 0x14] == '\x02') || ((&DAT_00088f30)[iVar9 * 0x14] == '\x05')\n             ) {\n            (&DAT_00088f30)[iVar9 * 0x14] = 0;\n          }\n        }\n        iVar9 = FUN_00041f60(0xffffffff,0xffffffff,local_44);\n        return iVar9 != 0;\n      }\n      pcVar13 = "at most %d immediate operands are allowed";\n      goto LAB_00047443;\n    }\n    if (*param_1 == 0x7b) {\n      iVar9 = FUN_000464f0();\n      if (iVar9 != 0) {\n        return true;\n      }\n      bVar4 = *pbVar16;\n    }\n    iVar9 = DAT_00080558;\n    if ((((&DAT_00089120)[bVar4] == '\0') && (bVar4 != 0x28 && bVar4 != 0x22)) &&\n       ((&DAT_00089220)[bVar4] == '\0')) {\n      uVar7 = FUN_00046660();\n      uVar12 = dcgettext(0,"invalid char %s beginning operand %d `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7,iVar9 + 1,pbVar16);\n      return false;\n    }\n    goto LAB_00046c60;\n  }\n  bVar4 = *local_28;\n  pbVar10 = local_28;\n  if (bVar4 == 0x20) {\n    bVar4 = local_28[1];\n    pbVar10 = local_28 + 1;\n  }\n  if (bVar4 != 0x3a) {\n    if (bVar4 == 0x7b) {\n      pbVar10 = (byte *)FUN_00045070();\n      if (pbVar10 == (byte *)0x0) {\n        return false;\n      }\n      bVar4 = *pbVar10;\n    }\n    iVar9 = DAT_00080558;\n    if (bVar4 == 0) {\n      uVar3 = *(uint *)(iVar6 + 8);\n      iVar1 = DAT_00080558 + 0xe;\n      (&DAT_00088fa0)[iVar1 * 2] = (&DAT_00088fa0)[iVar1 * 2] | *(uint *)(iVar6 + 4) & 0xffbfffff;\n      *(uint *)(&DAT_00088fa4 + iVar1 * 8) = *(uint *)(&DAT_00088fa4 + iVar1 * 8) | uVar3;\n      (&DAT_00088fa4)[iVar1 * 8] = (&DAT_00088fa4)[iVar1 * 8] & 0xbf;\n      DAT_00089000 = DAT_00089000 + 1;\n      (&DAT_00089038)[iVar9] = iVar6;\n      return true;\n    }\nLAB_00046ad0:\n    uVar7 = dcgettext(0,"junk `%s\' after register",5);\n    FUN_0002bd60(uVar7,pbVar10);\n    return false;\n  }\n  if ((*(ushort *)(iVar6 + 4) & 0x180) == 0) goto LAB_00046ad0;\n  switch(*(undefined1 *)(iVar6 + 0xd)) {\n  case 0:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_es_0007fff8;\n    break;\n  case 1:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_cs_0007ffc8;\n    break;\n  case 2:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ss_0007ffcc;\n    break;\n  case 3:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ds_0007ff80;\n    break;\n  case 4:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_fs_0007ffac;\n    break;\n  case 5:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_gs_0007ff68;\n  }\n  bVar4 = pbVar10[1];\n  pbVar16 = pbVar10 + 1;\n  if (bVar4 == 0x20) {\n    bVar4 = pbVar10[2];\n    pbVar16 = pbVar10 + 2;\n  }\n  if (((&DAT_00089120)[bVar4] == '\0') && ((&DAT_00089220)[bVar4] == '\0')) {\n    if (bVar4 != 0x28) {\n      if (bVar4 != 0x2a) {\n        pcVar13 = "bad memory operand `%s\'";\n        goto LAB_00046f4c;\n      }\nLAB_00046c3c:\n      if (pbVar16[1] == 0x20) {\n        pbVar16 = pbVar16 + 2;\n      }\n      else {\n        pbVar16 = pbVar16 + 1;\n      }\n      pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);\n      *pbVar10 = *pbVar10 | 2;\n    }\n  }\n  else if (bVar4 == 0x2a) goto LAB_00046c3c;\nLAB_00046c60:\n  if (DAT_00089008 == 1) {\n    iVar9 = FUN_00046270();\n    if (iVar9 == 0) {\n      return false;\n    }\n    if (DAT_00089008 != 1) goto LAB_00046c6f;\n    puVar11 = (undefined4 *)*DAT_00088f88;\n    if ((*(byte *)((int)puVar11 + 0x27) & 1) == 0) goto LAB_0004729e;\n  }\n  else {\nLAB_00046c6f:\n    if (DAT_00089008 == 2) {\n      puVar11 = (undefined4 *)*DAT_00088f88;\nLAB_0004729e:\n      uVar7 = *puVar11;\n      uVar12 = dcgettext(0,"too many memory references for `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7);\n      return false;\n    }\n  }\n  sVar8 = strlen((char *)pbVar16);\n  local_44 = pbVar16 + sVar8;\n  pbVar10 = (byte *)strchr((char *)pbVar16,0x7b);\n  if (((pbVar10 != (byte *)0x0) && (pbVar10 < local_44)) &&\n     (iVar9 = FUN_00045070(), local_44 = pbVar10, iVar9 == 0)) {\n    return false;\n  }\n  pbVar10 = local_44 + -1;\n  if (local_44[-1] == 0x20) {\n    pbVar10 = local_44 + -2;\n    local_44 = local_44 + -1;\n  }\n  pbVar15 = local_44;\n  if (*pbVar10 == 0x29) {\n    bVar4 = pbVar10[-1];\n    iVar9 = 1;\n    pbVar15 = pbVar10 + -1;\n    if (bVar4 == 0x29) goto LAB_000471f8;\nLAB_000471e0:\n    if (bVar4 != 0x28) goto LAB_000471eb;\n    iVar9 = iVar9 + -1;\n    do {\n      if (iVar9 == 0) {\n        bVar4 = pbVar15[1];\n        if (bVar4 == 0x20) {\n          bVar4 = pbVar10[1];\n          pbVar10 = pbVar15 + 2;\n        }\n        if (bVar4 == 0x2c) {\n          pbVar2 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar2 = *pbVar2 | 0x40;\n          if (DAT_00089074 != 0) goto LAB_00047347;\n          bVar4 = *pbVar10;\n        }\n        else {\n          DAT_00089074 = FUN_00044f30();\n          if (DAT_00089074 == 0) {\n            if (*pbVar10 == 0x25) {\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }\n            if (pbVar16 != local_44) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar10 = *pbVar10 | 0x40;\nLAB_00047347:\n          bVar4 = *local_28;\n          pbVar10 = local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            pbVar10 = local_28 + 1;\n          }\n        }\n        if (bVar4 != 0x2c) {\n          if (bVar4 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }\n          break;\n        }\n        local_44 = pbVar10 + 2;\n        if (pbVar10[1] != 0x20) {\n          local_44 = pbVar10 + 1;\n        }\n        DAT_00089078 = FUN_00044f30();\n        uVar7 = DAT_00089978;\n        if (DAT_00089078 == 0) {\n          if (*local_44 == 0x25) {\n            pcVar13 = strchr((char *)local_44,0x2c);\n            if (pcVar13 != (char *)0x0) {\n              *pcVar13 = '\0';\n            }\n            uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            FUN_0002bd60(uVar7,local_44);\n            return false;\n          }\n          if (*local_44 == 0x29) {\n            uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1);\n            FUN_0002bd60(uVar7,0x29);\n            return false;\n          }\n        }\n        else {\n          bVar4 = *local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            local_28 = local_28 + 1;\n          }\n          if (bVar4 != 0x2c) {\n            DAT_00089978 = (byte *)uVar7;\n            if (bVar4 != 0x29) {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          bVar4 = local_28[1];\n          local_44 = local_28 + 1;\n          if (bVar4 == 0x20) {\n            local_44 = local_28 + 2;\n            bVar4 = local_28[2];\n          }\n          DAT_00089978 = (byte *)uVar7;\n          if (bVar4 == 0x29) break;\n        }\n        DAT_00089978 = local_44;\n        lVar18 = FUN_0002d860();\n        if (lVar18 == 2) {\n          DAT_0008907c = 1;\n          sVar14 = 1;\nLAB_0004751e:\n          if (DAT_00089078 == 0) {\n            uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);\n            FUN_0002bc80(uVar12,1 << sVar14);\n            DAT_0008907c = 0;\n          }\n        }\n        else {\n          if (-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18)) {\n            if (lVar18 == 4) {\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }\n            else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (lVar18 != 1) {\nLAB_0004760c:\n            bVar4 = *DAT_00089978;\n            *DAT_00089978 = 0;\n            uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            FUN_0002bd60(uVar12,local_44);\n            *DAT_00089978 = bVar4;\n            DAT_00089978 = (byte *)uVar7;\n            return false;\n          }\n          DAT_0008907c = 0;\n        }\n        if (DAT_00089978 == (byte *)0x0) {\n          DAT_00089978 = (byte *)uVar7;\n          return false;\n        }\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (bVar4 != 0x29) {\n          pcVar13 = "expecting `)\' after scale factor in `%s\'";\nLAB_00047255:\n          uVar7 = dcgettext(0,pcVar13,5);\n          FUN_0002bd60(uVar7,param_1);\n          return false;\n        }\n        break;\n      }\nLAB_000471eb:\n      pbVar10 = pbVar15;\n      bVar4 = pbVar10[-1];\n      pbVar15 = pbVar10 + -1;\n      if (bVar4 != 0x29) goto LAB_000471e0;\nLAB_000471f8:\n      iVar9 = iVar9 + 1;\n    } while( true );\n  }\n  local_44 = pbVar15;\n  if (pbVar16 == local_44) goto LAB_00046e80;\nLAB_00046cd4:\n  iVar6 = DAT_00089004;\n  iVar9 = DAT_00080558;\n  if (DAT_00089004 == 2) {\n    pcVar13 = "at most %d displacement operands are allowed";\nLAB_00047443:\n    uVar7 = dcgettext(0,pcVar13,5);\n    FUN_0002bd60(uVar7,2);\n    return false;\n  }\n  if (((*(byte *)((int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8 + 3) & 2) == 0) &&\n     ((*(byte *)(*DAT_00088f88 + 0x24) & 0x60) != 0)) {\n    if (DAT_00088f0c == 2) {\n      if ((DAT_00089093 != '\0') || (local_48 = 0xc0000, DAT_00088ff8 == 'w')) goto LAB_00046d4f;\n    }\n    else {\n      bVar17 = true;\n      if (DAT_00089093 == '\0') {\n        cVar5 = 'l';\n        if (DAT_00088f0c != 1) {\n          cVar5 = 'w';\n        }\n        bVar17 = DAT_00088ff8 == cVar5;\n      }\n      local_48 = 0x40000;\n      if ((DAT_00088f0c == 1) != bVar17) {\nLAB_00046d4f:\n        local_48 = 0x20000;\n      }\n    }\n  }\n  else {\n    local_48 = 0x40000;\n    if (DAT_00088f0c == 2) {\n      local_48 = 0x1c0000;\n      if (DAT_00089092 != '\0') {\n        local_48 = 0x40000;\n      }\n    }\n    else if ((DAT_00089092 != '\0') != (DAT_00088f0c == 1)) goto LAB_00046d4f;\n  }\n  (&DAT_00088fa0)[(DAT_00080558 + 0xe) * 2] = (&DAT_00088fa0)[(DAT_00080558 + 0xe) * 2] | local_48;\n  iVar1 = DAT_00089004 * 0x14;\n  (&DAT_00089038)[iVar9] = &DAT_00088f60 + iVar1;\n  uVar7 = DAT_00089978;\n  DAT_00089004 = DAT_00089004 + 1;\n  pbVar10 = DAT_000890fc + 1;\n  DAT_00089978 = pbVar16;\n  *DAT_000890fc = *local_44;\n  DAT_000890fc = pbVar10;\n  *local_44 = 0;\n  pbVar16 = (byte *)FUN_000453b0();\n  if (pbVar16 != (byte *)0x0) {\n    DAT_00089978 = pbVar16;\n  }\n  FUN_000221d0(0,&DAT_00088f60 + iVar1,1);\n  bVar4 = *DAT_00089978;\n  if (bVar4 == 0x20) {\n    bVar4 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }\n  pbVar10 = DAT_00089978;\n  if (bVar4 != 0) {\n    uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n    FUN_0002bd60(uVar12,pbVar10);\n  }\n  DAT_00089978 = (byte *)uVar7;\n  if (pbVar16 != (byte *)0x0) {\n    free(pbVar16);\n    if (((&DAT_00088f70)[iVar6 * 0x14] == '\x02') || ((&DAT_00088f70)[iVar6 * 0x14] == '\x05')) {\n      (&DAT_00088f70)[iVar6 * 0x14] = 0;\n    }\n  }\n  iVar9 = FUN_000466b0();\n  pbVar16 = DAT_000890fc + -1;\n  DAT_000890fc = DAT_000890fc + -1;\n  *local_44 = *pbVar16;\n  if (iVar9 == 0) {\n    return false;\n  }\nLAB_00046e80:\n  if (((((DAT_00089074 != 0) && (*(int *)(DAT_00089074 + 8) == DAT_000654e4)) &&\n       (*(int *)(DAT_00089074 + 4) == DAT_000654e0)) && ((DAT_00089078 == 0 && (DAT_0008907c == 0)))\n      ) && ((*(int *)(&DAT_00089080 + DAT_00089008 * 4) == 0 &&\n            (iVar9 = DAT_00080558 + 0xe, (*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f) == 0\n            )))) {\n    (&DAT_00088fa0)[iVar9 * 2] = 0;\n    *(undefined4 *)(&DAT_00088fa4 + iVar9 * 8) = 0;\n    pbVar16 = (byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2);\n    *pbVar16 = *pbVar16 | 0x80;\n    return true;\n  }\nLAB_00046ea4:\n  iVar9 = FUN_00045de0();\n  if (iVar9 == 0) {\n    return false;\n  }\n  pbVar16 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);\n  *pbVar16 = *pbVar16 | 0x10;\n  if (DAT_00089008 == 0) {\n    DAT_00089088 = xstrdup(param_1);\n  }\n  DAT_00089008 = DAT_00089008 + 1;\n  return true;\n}\n\n" (function_definition "bool __regparm3 FUN_00046910(byte *param_1)\n\n{\n  int iVar1;\n  byte *pbVar2;\n  uint uVar3;\n  byte bVar4;\n  char cVar5;\n  int iVar6;\n  undefined4 uVar7;\n  size_t sVar8;\n  int iVar9;\n  byte *pbVar10;\n  undefined4 *puVar11;\n  undefined4 uVar12;\n  char *pcVar13;\n  sbyte sVar14;\n  undefined4 extraout_ECX;\n  byte *pbVar15;\n  byte *pbVar16;\n  bool bVar17;\n  longlong lVar18;\n  uint local_48;\n  byte *local_44;\n  byte *local_28;\n  \n  bVar4 = *param_1;\n  pbVar16 = param_1;\n  if (bVar4 == 0x20) {\n    bVar4 = param_1[1];\n    pbVar16 = param_1 + 1;\n  }\n  if (bVar4 == 0x2a) {\n    if (pbVar16[1] == 0x20) {\n      pbVar16 = pbVar16 + 2;\n    }\n    else {\n      pbVar16 = pbVar16 + 1;\n    }\n    pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);\n    *pbVar10 = *pbVar10 | 2;\n  }\n  iVar6 = FUN_00044f30();\n  iVar9 = DAT_0008900c;\n  if (iVar6 == 0) {\n    bVar4 = *pbVar16;\n    if (bVar4 == 0x25) {\n      pcVar13 = "bad register name `%s\'";\nLAB_00046f4c:\n      uVar7 = dcgettext(0,pcVar13,5);\n      FUN_0002bd60(uVar7,pbVar16);\n      return false;\n    }\n    if (bVar4 == 0x24) {\n      if ((*(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3) & 2) != 0) {\n        uVar7 = dcgettext(0,"immediate operand illegal with absolute jump",5);\n        FUN_0002bd60(uVar7);\n        return false;\n      }\n      if (DAT_0008900c != 2) {\n        iVar6 = DAT_0008900c * 5;\n        DAT_0008900c = DAT_0008900c + 1;\n        (&DAT_00089038)[DAT_00080558] = &DAT_00088f20 + iVar6;\n        uVar7 = DAT_00089978;\n        local_44 = pbVar16 + 2;\n        if (pbVar16[1] != 0x20) {\n          local_44 = pbVar16 + 1;\n        }\n        DAT_00089978 = local_44;\n        pbVar16 = (byte *)FUN_000453b0();\n        if (pbVar16 != (byte *)0x0) {\n          DAT_00089978 = pbVar16;\n        }\n        FUN_000221d0(0,&DAT_00088f20 + iVar6,1);\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n          DAT_00089978 = DAT_00089978 + 1;\n        }\n        if (bVar4 == 0x7b) {\n          DAT_00089978 = (byte *)FUN_00045070();\n          if (DAT_00089978 == (byte *)0x0) {\n            return false;\n          }\n          bVar4 = *DAT_00089978;\n        }\n        pbVar10 = DAT_00089978;\n        if (bVar4 != 0) {\n          uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n          FUN_0002bd60(uVar12,pbVar10);\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (pbVar16 != (byte *)0x0) {\n          free(pbVar16);\n          if (((&DAT_00088f30)[iVar9 * 0x14] == '\x02') || ((&DAT_00088f30)[iVar9 * 0x14] == '\x05')\n             ) {\n            (&DAT_00088f30)[iVar9 * 0x14] = 0;\n          }\n        }\n        iVar9 = FUN_00041f60(0xffffffff,0xffffffff,local_44);\n        return iVar9 != 0;\n      }\n      pcVar13 = "at most %d immediate operands are allowed";\n      goto LAB_00047443;\n    }\n    if (*param_1 == 0x7b) {\n      iVar9 = FUN_000464f0();\n      if (iVar9 != 0) {\n        return true;\n      }\n      bVar4 = *pbVar16;\n    }\n    iVar9 = DAT_00080558;\n    if ((((&DAT_00089120)[bVar4] == '\0') && (bVar4 != 0x28 && bVar4 != 0x22)) &&\n       ((&DAT_00089220)[bVar4] == '\0')) {\n      uVar7 = FUN_00046660();\n      uVar12 = dcgettext(0,"invalid char %s beginning operand %d `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7,iVar9 + 1,pbVar16);\n      return false;\n    }\n    goto LAB_00046c60;\n  }\n  bVar4 = *local_28;\n  pbVar10 = local_28;\n  if (bVar4 == 0x20) {\n    bVar4 = local_28[1];\n    pbVar10 = local_28 + 1;\n  }\n  if (bVar4 != 0x3a) {\n    if (bVar4 == 0x7b) {\n      pbVar10 = (byte *)FUN_00045070();\n      if (pbVar10 == (byte *)0x0) {\n        return false;\n      }\n      bVar4 = *pbVar10;\n    }\n    iVar9 = DAT_00080558;\n    if (bVar4 == 0) {\n      uVar3 = *(uint *)(iVar6 + 8);\n      iVar1 = DAT_00080558 + 0xe;\n      (&DAT_00088fa0)[iVar1 * 2] = (&DAT_00088fa0)[iVar1 * 2] | *(uint *)(iVar6 + 4) & 0xffbfffff;\n      *(uint *)(&DAT_00088fa4 + iVar1 * 8) = *(uint *)(&DAT_00088fa4 + iVar1 * 8) | uVar3;\n      (&DAT_00088fa4)[iVar1 * 8] = (&DAT_00088fa4)[iVar1 * 8] & 0xbf;\n      DAT_00089000 = DAT_00089000 + 1;\n      (&DAT_00089038)[iVar9] = iVar6;\n      return true;\n    }\nLAB_00046ad0:\n    uVar7 = dcgettext(0,"junk `%s\' after register",5);\n    FUN_0002bd60(uVar7,pbVar10);\n    return false;\n  }\n  if ((*(ushort *)(iVar6 + 4) & 0x180) == 0) goto LAB_00046ad0;\n  switch(*(undefined1 *)(iVar6 + 0xd)) {\n  case 0:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_es_0007fff8;\n    break;\n  case 1:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_cs_0007ffc8;\n    break;\n  case 2:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ss_0007ffcc;\n    break;\n  case 3:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ds_0007ff80;\n    break;\n  case 4:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_fs_0007ffac;\n    break;\n  case 5:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_gs_0007ff68;\n  }\n  bVar4 = pbVar10[1];\n  pbVar16 = pbVar10 + 1;\n  if (bVar4 == 0x20) {\n    bVar4 = pbVar10[2];\n    pbVar16 = pbVar10 + 2;\n  }\n  if (((&DAT_00089120)[bVar4] == '\0') && ((&DAT_00089220)[bVar4] == '\0')) {\n    if (bVar4 != 0x28) {\n      if (bVar4 != 0x2a) {\n        pcVar13 = "bad memory operand `%s\'";\n        goto LAB_00046f4c;\n      }\nLAB_00046c3c:\n      if (pbVar16[1] == 0x20) {\n        pbVar16 = pbVar16 + 2;\n      }\n      else {\n        pbVar16 = pbVar16 + 1;\n      }\n      pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);\n      *pbVar10 = *pbVar10 | 2;\n    }\n  }\n  else if (bVar4 == 0x2a) goto LAB_00046c3c;\nLAB_00046c60:\n  if (DAT_00089008 == 1) {\n    iVar9 = FUN_00046270();\n    if (iVar9 == 0) {\n      return false;\n    }\n    if (DAT_00089008 != 1) goto LAB_00046c6f;\n    puVar11 = (undefined4 *)*DAT_00088f88;\n    if ((*(byte *)((int)puVar11 + 0x27) & 1) == 0) goto LAB_0004729e;\n  }\n  else {\nLAB_00046c6f:\n    if (DAT_00089008 == 2) {\n      puVar11 = (undefined4 *)*DAT_00088f88;\nLAB_0004729e:\n      uVar7 = *puVar11;\n      uVar12 = dcgettext(0,"too many memory references for `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7);\n      return false;\n    }\n  }\n  sVar8 = strlen((char *)pbVar16);\n  local_44 = pbVar16 + sVar8;\n  pbVar10 = (byte *)strchr((char *)pbVar16,0x7b);\n  if (((pbVar10 != (byte *)0x0) && (pbVar10 < local_44)) &&\n     (iVar9 = FUN_00045070(), local_44 = pbVar10, iVar9 == 0)) {\n    return false;\n  }\n  pbVar10 = local_44 + -1;\n  if (local_44[-1] == 0x20) {\n    pbVar10 = local_44 + -2;\n    local_44 = local_44 + -1;\n  }\n  pbVar15 = local_44;\n  if (*pbVar10 == 0x29) {\n    bVar4 = pbVar10[-1];\n    iVar9 = 1;\n    pbVar15 = pbVar10 + -1;\n    if (bVar4 == 0x29) goto LAB_000471f8;\nLAB_000471e0:\n    if (bVar4 != 0x28) goto LAB_000471eb;\n    iVar9 = iVar9 + -1;\n    do {\n      if (iVar9 == 0) {\n        bVar4 = pbVar15[1];\n        if (bVar4 == 0x20) {\n          bVar4 = pbVar10[1];\n          pbVar10 = pbVar15 + 2;\n        }\n        if (bVar4 == 0x2c) {\n          pbVar2 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar2 = *pbVar2 | 0x40;\n          if (DAT_00089074 != 0) goto LAB_00047347;\n          bVar4 = *pbVar10;\n        }\n        else {\n          DAT_00089074 = FUN_00044f30();\n          if (DAT_00089074 == 0) {\n            if (*pbVar10 == 0x25) {\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }\n            if (pbVar16 != local_44) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar10 = *pbVar10 | 0x40;\nLAB_00047347:\n          bVar4 = *local_28;\n          pbVar10 = local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            pbVar10 = local_28 + 1;\n          }\n        }\n        if (bVar4 != 0x2c) {\n          if (bVar4 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }\n          break;\n        }\n        local_44 = pbVar10 + 2;\n        if (pbVar10[1] != 0x20) {\n          local_44 = pbVar10 + 1;\n        }\n        DAT_00089078 = FUN_00044f30();\n        uVar7 = DAT_00089978;\n        if (DAT_00089078 == 0) {\n          if (*local_44 == 0x25) {\n            pcVar13 = strchr((char *)local_44,0x2c);\n            if (pcVar13 != (char *)0x0) {\n              *pcVar13 = '\0';\n            }\n            uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            FUN_0002bd60(uVar7,local_44);\n            return false;\n          }\n          if (*local_44 == 0x29) {\n            uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1);\n            FUN_0002bd60(uVar7,0x29);\n            return false;\n          }\n        }\n        else {\n          bVar4 = *local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            local_28 = local_28 + 1;\n          }\n          if (bVar4 != 0x2c) {\n            DAT_00089978 = (byte *)uVar7;\n            if (bVar4 != 0x29) {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          bVar4 = local_28[1];\n          local_44 = local_28 + 1;\n          if (bVar4 == 0x20) {\n            local_44 = local_28 + 2;\n            bVar4 = local_28[2];\n          }\n          DAT_00089978 = (byte *)uVar7;\n          if (bVar4 == 0x29) break;\n        }\n        DAT_00089978 = local_44;\n        lVar18 = FUN_0002d860();\n        if (lVar18 == 2) {\n          DAT_0008907c = 1;\n          sVar14 = 1;\nLAB_0004751e:\n          if (DAT_00089078 == 0) {\n            uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);\n            FUN_0002bc80(uVar12,1 << sVar14);\n            DAT_0008907c = 0;\n          }\n        }\n        else {\n          if (-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18)) {\n            if (lVar18 == 4) {\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }\n            else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (lVar18 != 1) {\nLAB_0004760c:\n            bVar4 = *DAT_00089978;\n            *DAT_00089978 = 0;\n            uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            FUN_0002bd60(uVar12,local_44);\n            *DAT_00089978 = bVar4;\n            DAT_00089978 = (byte *)uVar7;\n            return false;\n          }\n          DAT_0008907c = 0;\n        }\n        if (DAT_00089978 == (byte *)0x0) {\n          DAT_00089978 = (byte *)uVar7;\n          return false;\n        }\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (bVar4 != 0x29) {\n          pcVar13 = "expecting `)\' after scale factor in `%s\'";\nLAB_00047255:\n          uVar7 = dcgettext(0,pcVar13,5);\n          FUN_0002bd60(uVar7,param_1);\n          return false;\n        }\n        break;\n      }\nLAB_000471eb:\n      pbVar10 = pbVar15;\n      bVar4 = pbVar10[-1];\n      pbVar15 = pbVar10 + -1;\n      if (bVar4 != 0x29) goto LAB_000471e0;\nLAB_000471f8:\n      iVar9 = iVar9 + 1;\n    } while( true );\n  }\n  local_44 = pbVar15;\n  if (pbVar16 == local_44) goto LAB_00046e80;\nLAB_00046cd4:\n  iVar6 = DAT_00089004;\n  iVar9 = DAT_00080558;\n  if (DAT_00089004 == 2) {\n    pcVar13 = "at most %d displacement operands are allowed";\nLAB_00047443:\n    uVar7 = dcgettext(0,pcVar13,5);\n    FUN_0002bd60(uVar7,2);\n    return false;\n  }\n  if (((*(byte *)((int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8 + 3) & 2) == 0) &&\n     ((*(byte *)(*DAT_00088f88 + 0x24) & 0x60) != 0)) {\n    if (DAT_00088f0c == 2) {\n      if ((DAT_00089093 != '\0') || (local_48 = 0xc0000, DAT_00088ff8 == 'w')) goto LAB_00046d4f;\n    }\n    else {\n      bVar17 = true;\n      if (DAT_00089093 == '\0') {\n        cVar5 = 'l';\n        if (DAT_00088f0c != 1) {\n          cVar5 = 'w';\n        }\n        bVar17 = DAT_00088ff8 == cVar5;\n      }\n      local_48 = 0x40000;\n      if ((DAT_00088f0c == 1) != bVar17) {\nLAB_00046d4f:\n        local_48 = 0x20000;\n      }\n    }\n  }\n  else {\n    local_48 = 0x40000;\n    if (DAT_00088f0c == 2) {\n      local_48 = 0x1c0000;\n      if (DAT_00089092 != '\0') {\n        local_48 = 0x40000;\n      }\n    }\n    else if ((DAT_00089092 != '\0') != (DAT_00088f0c == 1)) goto LAB_00046d4f;\n  }\n  (&DAT_00088fa0)[(DAT_00080558 + 0xe) * 2] = (&DAT_00088fa0)[(DAT_00080558 + 0xe) * 2] | local_48;\n  iVar1 = DAT_00089004 * 0x14;\n  (&DAT_00089038)[iVar9] = &DAT_00088f60 + iVar1;\n  uVar7 = DAT_00089978;\n  DAT_00089004 = DAT_00089004 + 1;\n  pbVar10 = DAT_000890fc + 1;\n  DAT_00089978 = pbVar16;\n  *DAT_000890fc = *local_44;\n  DAT_000890fc = pbVar10;\n  *local_44 = 0;\n  pbVar16 = (byte *)FUN_000453b0();\n  if (pbVar16 != (byte *)0x0) {\n    DAT_00089978 = pbVar16;\n  }\n  FUN_000221d0(0,&DAT_00088f60 + iVar1,1);\n  bVar4 = *DAT_00089978;\n  if (bVar4 == 0x20) {\n    bVar4 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }\n  pbVar10 = DAT_00089978;\n  if (bVar4 != 0) {\n    uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n    FUN_0002bd60(uVar12,pbVar10);\n  }\n  DAT_00089978 = (byte *)uVar7;\n  if (pbVar16 != (byte *)0x0) {\n    free(pbVar16);\n    if (((&DAT_00088f70)[iVar6 * 0x14] == '\x02') || ((&DAT_00088f70)[iVar6 * 0x14] == '\x05')) {\n      (&DAT_00088f70)[iVar6 * 0x14] = 0;\n    }\n  }\n  iVar9 = FUN_000466b0();\n  pbVar16 = DAT_000890fc + -1;\n  DAT_000890fc = DAT_000890fc + -1;\n  *local_44 = *pbVar16;\n  if (iVar9 == 0) {\n    return false;\n  }\nLAB_00046e80:\n  if (((((DAT_00089074 != 0) && (*(int *)(DAT_00089074 + 8) == DAT_000654e4)) &&\n       (*(int *)(DAT_00089074 + 4) == DAT_000654e0)) && ((DAT_00089078 == 0 && (DAT_0008907c == 0)))\n      ) && ((*(int *)(&DAT_00089080 + DAT_00089008 * 4) == 0 &&\n            (iVar9 = DAT_00080558 + 0xe, (*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f) == 0\n            )))) {\n    (&DAT_00088fa0)[iVar9 * 2] = 0;\n    *(undefined4 *)(&DAT_00088fa4 + iVar9 * 8) = 0;\n    pbVar16 = (byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2);\n    *pbVar16 = *pbVar16 | 0x80;\n    return true;\n  }\nLAB_00046ea4:\n  iVar9 = FUN_00045de0();\n  if (iVar9 == 0) {\n    return false;\n  }\n  pbVar16 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);\n  *pbVar16 = *pbVar16 | 0x10;\n  if (DAT_00089008 == 0) {\n    DAT_00089088 = xstrdup(param_1);\n  }\n  DAT_00089008 = DAT_00089008 + 1;\n  return true;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00046910(byte *param_1)" identifier (parameter_list "(byte *param_1)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  byte *pbVar2;\n  uint uVar3;\n  byte bVar4;\n  char cVar5;\n  int iVar6;\n  undefined4 uVar7;\n  size_t sVar8;\n  int iVar9;\n  byte *pbVar10;\n  undefined4 *puVar11;\n  undefined4 uVar12;\n  char *pcVar13;\n  sbyte sVar14;\n  undefined4 extraout_ECX;\n  byte *pbVar15;\n  byte *pbVar16;\n  bool bVar17;\n  longlong lVar18;\n  uint local_48;\n  byte *local_44;\n  byte *local_28;\n  \n  bVar4 = *param_1;\n  pbVar16 = param_1;\n  if (bVar4 == 0x20) {\n    bVar4 = param_1[1];\n    pbVar16 = param_1 + 1;\n  }\n  if (bVar4 == 0x2a) {\n    if (pbVar16[1] == 0x20) {\n      pbVar16 = pbVar16 + 2;\n    }\n    else {\n      pbVar16 = pbVar16 + 1;\n    }\n    pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);\n    *pbVar10 = *pbVar10 | 2;\n  }\n  iVar6 = FUN_00044f30();\n  iVar9 = DAT_0008900c;\n  if (iVar6 == 0) {\n    bVar4 = *pbVar16;\n    if (bVar4 == 0x25) {\n      pcVar13 = "bad register name `%s\'";\nLAB_00046f4c:\n      uVar7 = dcgettext(0,pcVar13,5);\n      FUN_0002bd60(uVar7,pbVar16);\n      return false;\n    }\n    if (bVar4 == 0x24) {\n      if ((*(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3) & 2) != 0) {\n        uVar7 = dcgettext(0,"immediate operand illegal with absolute jump",5);\n        FUN_0002bd60(uVar7);\n        return false;\n      }\n      if (DAT_0008900c != 2) {\n        iVar6 = DAT_0008900c * 5;\n        DAT_0008900c = DAT_0008900c + 1;\n        (&DAT_00089038)[DAT_00080558] = &DAT_00088f20 + iVar6;\n        uVar7 = DAT_00089978;\n        local_44 = pbVar16 + 2;\n        if (pbVar16[1] != 0x20) {\n          local_44 = pbVar16 + 1;\n        }\n        DAT_00089978 = local_44;\n        pbVar16 = (byte *)FUN_000453b0();\n        if (pbVar16 != (byte *)0x0) {\n          DAT_00089978 = pbVar16;\n        }\n        FUN_000221d0(0,&DAT_00088f20 + iVar6,1);\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n          DAT_00089978 = DAT_00089978 + 1;\n        }\n        if (bVar4 == 0x7b) {\n          DAT_00089978 = (byte *)FUN_00045070();\n          if (DAT_00089978 == (byte *)0x0) {\n            return false;\n          }\n          bVar4 = *DAT_00089978;\n        }\n        pbVar10 = DAT_00089978;\n        if (bVar4 != 0) {\n          uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n          FUN_0002bd60(uVar12,pbVar10);\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (pbVar16 != (byte *)0x0) {\n          free(pbVar16);\n          if (((&DAT_00088f30)[iVar9 * 0x14] == '\x02') || ((&DAT_00088f30)[iVar9 * 0x14] == '\x05')\n             ) {\n            (&DAT_00088f30)[iVar9 * 0x14] = 0;\n          }\n        }\n        iVar9 = FUN_00041f60(0xffffffff,0xffffffff,local_44);\n        return iVar9 != 0;\n      }\n      pcVar13 = "at most %d immediate operands are allowed";\n      goto LAB_00047443;\n    }\n    if (*param_1 == 0x7b) {\n      iVar9 = FUN_000464f0();\n      if (iVar9 != 0) {\n        return true;\n      }\n      bVar4 = *pbVar16;\n    }\n    iVar9 = DAT_00080558;\n    if ((((&DAT_00089120)[bVar4] == '\0') && (bVar4 != 0x28 && bVar4 != 0x22)) &&\n       ((&DAT_00089220)[bVar4] == '\0')) {\n      uVar7 = FUN_00046660();\n      uVar12 = dcgettext(0,"invalid char %s beginning operand %d `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7,iVar9 + 1,pbVar16);\n      return false;\n    }\n    goto LAB_00046c60;\n  }\n  bVar4 = *local_28;\n  pbVar10 = local_28;\n  if (bVar4 == 0x20) {\n    bVar4 = local_28[1];\n    pbVar10 = local_28 + 1;\n  }\n  if (bVar4 != 0x3a) {\n    if (bVar4 == 0x7b) {\n      pbVar10 = (byte *)FUN_00045070();\n      if (pbVar10 == (byte *)0x0) {\n        return false;\n      }\n      bVar4 = *pbVar10;\n    }\n    iVar9 = DAT_00080558;\n    if (bVar4 == 0) {\n      uVar3 = *(uint *)(iVar6 + 8);\n      iVar1 = DAT_00080558 + 0xe;\n      (&DAT_00088fa0)[iVar1 * 2] = (&DAT_00088fa0)[iVar1 * 2] | *(uint *)(iVar6 + 4) & 0xffbfffff;\n      *(uint *)(&DAT_00088fa4 + iVar1 * 8) = *(uint *)(&DAT_00088fa4 + iVar1 * 8) | uVar3;\n      (&DAT_00088fa4)[iVar1 * 8] = (&DAT_00088fa4)[iVar1 * 8] & 0xbf;\n      DAT_00089000 = DAT_00089000 + 1;\n      (&DAT_00089038)[iVar9] = iVar6;\n      return true;\n    }\nLAB_00046ad0:\n    uVar7 = dcgettext(0,"junk `%s\' after register",5);\n    FUN_0002bd60(uVar7,pbVar10);\n    return false;\n  }\n  if ((*(ushort *)(iVar6 + 4) & 0x180) == 0) goto LAB_00046ad0;\n  switch(*(undefined1 *)(iVar6 + 0xd)) {\n  case 0:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_es_0007fff8;\n    break;\n  case 1:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_cs_0007ffc8;\n    break;\n  case 2:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ss_0007ffcc;\n    break;\n  case 3:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ds_0007ff80;\n    break;\n  case 4:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_fs_0007ffac;\n    break;\n  case 5:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_gs_0007ff68;\n  }\n  bVar4 = pbVar10[1];\n  pbVar16 = pbVar10 + 1;\n  if (bVar4 == 0x20) {\n    bVar4 = pbVar10[2];\n    pbVar16 = pbVar10 + 2;\n  }\n  if (((&DAT_00089120)[bVar4] == '\0') && ((&DAT_00089220)[bVar4] == '\0')) {\n    if (bVar4 != 0x28) {\n      if (bVar4 != 0x2a) {\n        pcVar13 = "bad memory operand `%s\'";\n        goto LAB_00046f4c;\n      }\nLAB_00046c3c:\n      if (pbVar16[1] == 0x20) {\n        pbVar16 = pbVar16 + 2;\n      }\n      else {\n        pbVar16 = pbVar16 + 1;\n      }\n      pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);\n      *pbVar10 = *pbVar10 | 2;\n    }\n  }\n  else if (bVar4 == 0x2a) goto LAB_00046c3c;\nLAB_00046c60:\n  if (DAT_00089008 == 1) {\n    iVar9 = FUN_00046270();\n    if (iVar9 == 0) {\n      return false;\n    }\n    if (DAT_00089008 != 1) goto LAB_00046c6f;\n    puVar11 = (undefined4 *)*DAT_00088f88;\n    if ((*(byte *)((int)puVar11 + 0x27) & 1) == 0) goto LAB_0004729e;\n  }\n  else {\nLAB_00046c6f:\n    if (DAT_00089008 == 2) {\n      puVar11 = (undefined4 *)*DAT_00088f88;\nLAB_0004729e:\n      uVar7 = *puVar11;\n      uVar12 = dcgettext(0,"too many memory references for `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7);\n      return false;\n    }\n  }\n  sVar8 = strlen((char *)pbVar16);\n  local_44 = pbVar16 + sVar8;\n  pbVar10 = (byte *)strchr((char *)pbVar16,0x7b);\n  if (((pbVar10 != (byte *)0x0) && (pbVar10 < local_44)) &&\n     (iVar9 = FUN_00045070(), local_44 = pbVar10, iVar9 == 0)) {\n    return false;\n  }\n  pbVar10 = local_44 + -1;\n  if (local_44[-1] == 0x20) {\n    pbVar10 = local_44 + -2;\n    local_44 = local_44 + -1;\n  }\n  pbVar15 = local_44;\n  if (*pbVar10 == 0x29) {\n    bVar4 = pbVar10[-1];\n    iVar9 = 1;\n    pbVar15 = pbVar10 + -1;\n    if (bVar4 == 0x29) goto LAB_000471f8;\nLAB_000471e0:\n    if (bVar4 != 0x28) goto LAB_000471eb;\n    iVar9 = iVar9 + -1;\n    do {\n      if (iVar9 == 0) {\n        bVar4 = pbVar15[1];\n        if (bVar4 == 0x20) {\n          bVar4 = pbVar10[1];\n          pbVar10 = pbVar15 + 2;\n        }\n        if (bVar4 == 0x2c) {\n          pbVar2 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar2 = *pbVar2 | 0x40;\n          if (DAT_00089074 != 0) goto LAB_00047347;\n          bVar4 = *pbVar10;\n        }\n        else {\n          DAT_00089074 = FUN_00044f30();\n          if (DAT_00089074 == 0) {\n            if (*pbVar10 == 0x25) {\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }\n            if (pbVar16 != local_44) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar10 = *pbVar10 | 0x40;\nLAB_00047347:\n          bVar4 = *local_28;\n          pbVar10 = local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            pbVar10 = local_28 + 1;\n          }\n        }\n        if (bVar4 != 0x2c) {\n          if (bVar4 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }\n          break;\n        }\n        local_44 = pbVar10 + 2;\n        if (pbVar10[1] != 0x20) {\n          local_44 = pbVar10 + 1;\n        }\n        DAT_00089078 = FUN_00044f30();\n        uVar7 = DAT_00089978;\n        if (DAT_00089078 == 0) {\n          if (*local_44 == 0x25) {\n            pcVar13 = strchr((char *)local_44,0x2c);\n            if (pcVar13 != (char *)0x0) {\n              *pcVar13 = '\0';\n            }\n            uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            FUN_0002bd60(uVar7,local_44);\n            return false;\n          }\n          if (*local_44 == 0x29) {\n            uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1);\n            FUN_0002bd60(uVar7,0x29);\n            return false;\n          }\n        }\n        else {\n          bVar4 = *local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            local_28 = local_28 + 1;\n          }\n          if (bVar4 != 0x2c) {\n            DAT_00089978 = (byte *)uVar7;\n            if (bVar4 != 0x29) {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          bVar4 = local_28[1];\n          local_44 = local_28 + 1;\n          if (bVar4 == 0x20) {\n            local_44 = local_28 + 2;\n            bVar4 = local_28[2];\n          }\n          DAT_00089978 = (byte *)uVar7;\n          if (bVar4 == 0x29) break;\n        }\n        DAT_00089978 = local_44;\n        lVar18 = FUN_0002d860();\n        if (lVar18 == 2) {\n          DAT_0008907c = 1;\n          sVar14 = 1;\nLAB_0004751e:\n          if (DAT_00089078 == 0) {\n            uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);\n            FUN_0002bc80(uVar12,1 << sVar14);\n            DAT_0008907c = 0;\n          }\n        }\n        else {\n          if (-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18)) {\n            if (lVar18 == 4) {\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }\n            else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (lVar18 != 1) {\nLAB_0004760c:\n            bVar4 = *DAT_00089978;\n            *DAT_00089978 = 0;\n            uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            FUN_0002bd60(uVar12,local_44);\n            *DAT_00089978 = bVar4;\n            DAT_00089978 = (byte *)uVar7;\n            return false;\n          }\n          DAT_0008907c = 0;\n        }\n        if (DAT_00089978 == (byte *)0x0) {\n          DAT_00089978 = (byte *)uVar7;\n          return false;\n        }\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (bVar4 != 0x29) {\n          pcVar13 = "expecting `)\' after scale factor in `%s\'";\nLAB_00047255:\n          uVar7 = dcgettext(0,pcVar13,5);\n          FUN_0002bd60(uVar7,param_1);\n          return false;\n        }\n        break;\n      }\nLAB_000471eb:\n      pbVar10 = pbVar15;\n      bVar4 = pbVar10[-1];\n      pbVar15 = pbVar10 + -1;\n      if (bVar4 != 0x29) goto LAB_000471e0;\nLAB_000471f8:\n      iVar9 = iVar9 + 1;\n    } while( true );\n  }\n  local_44 = pbVar15;\n  if (pbVar16 == local_44) goto LAB_00046e80;\nLAB_00046cd4:\n  iVar6 = DAT_00089004;\n  iVar9 = DAT_00080558;\n  if (DAT_00089004 == 2) {\n    pcVar13 = "at most %d displacement operands are allowed";\nLAB_00047443:\n    uVar7 = dcgettext(0,pcVar13,5);\n    FUN_0002bd60(uVar7,2);\n    return false;\n  }\n  if (((*(byte *)((int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8 + 3) & 2) == 0) &&\n     ((*(byte *)(*DAT_00088f88 + 0x24) & 0x60) != 0)) {\n    if (DAT_00088f0c == 2) {\n      if ((DAT_00089093 != '\0') || (local_48 = 0xc0000, DAT_00088ff8 == 'w')) goto LAB_00046d4f;\n    }\n    else {\n      bVar17 = true;\n      if (DAT_00089093 == '\0') {\n        cVar5 = 'l';\n        if (DAT_00088f0c != 1) {\n          cVar5 = 'w';\n        }\n        bVar17 = DAT_00088ff8 == cVar5;\n      }\n      local_48 = 0x40000;\n      if ((DAT_00088f0c == 1) != bVar17) {\nLAB_00046d4f:\n        local_48 = 0x20000;\n      }\n    }\n  }\n  else {\n    local_48 = 0x40000;\n    if (DAT_00088f0c == 2) {\n      local_48 = 0x1c0000;\n      if (DAT_00089092 != '\0') {\n        local_48 = 0x40000;\n      }\n    }\n    else if ((DAT_00089092 != '\0') != (DAT_00088f0c == 1)) goto LAB_00046d4f;\n  }\n  (&DAT_00088fa0)[(DAT_00080558 + 0xe) * 2] = (&DAT_00088fa0)[(DAT_00080558 + 0xe) * 2] | local_48;\n  iVar1 = DAT_00089004 * 0x14;\n  (&DAT_00089038)[iVar9] = &DAT_00088f60 + iVar1;\n  uVar7 = DAT_00089978;\n  DAT_00089004 = DAT_00089004 + 1;\n  pbVar10 = DAT_000890fc + 1;\n  DAT_00089978 = pbVar16;\n  *DAT_000890fc = *local_44;\n  DAT_000890fc = pbVar10;\n  *local_44 = 0;\n  pbVar16 = (byte *)FUN_000453b0();\n  if (pbVar16 != (byte *)0x0) {\n    DAT_00089978 = pbVar16;\n  }\n  FUN_000221d0(0,&DAT_00088f60 + iVar1,1);\n  bVar4 = *DAT_00089978;\n  if (bVar4 == 0x20) {\n    bVar4 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }\n  pbVar10 = DAT_00089978;\n  if (bVar4 != 0) {\n    uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n    FUN_0002bd60(uVar12,pbVar10);\n  }\n  DAT_00089978 = (byte *)uVar7;\n  if (pbVar16 != (byte *)0x0) {\n    free(pbVar16);\n    if (((&DAT_00088f70)[iVar6 * 0x14] == '\x02') || ((&DAT_00088f70)[iVar6 * 0x14] == '\x05')) {\n      (&DAT_00088f70)[iVar6 * 0x14] = 0;\n    }\n  }\n  iVar9 = FUN_000466b0();\n  pbVar16 = DAT_000890fc + -1;\n  DAT_000890fc = DAT_000890fc + -1;\n  *local_44 = *pbVar16;\n  if (iVar9 == 0) {\n    return false;\n  }\nLAB_00046e80:\n  if (((((DAT_00089074 != 0) && (*(int *)(DAT_00089074 + 8) == DAT_000654e4)) &&\n       (*(int *)(DAT_00089074 + 4) == DAT_000654e0)) && ((DAT_00089078 == 0 && (DAT_0008907c == 0)))\n      ) && ((*(int *)(&DAT_00089080 + DAT_00089008 * 4) == 0 &&\n            (iVar9 = DAT_00080558 + 0xe, (*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f) == 0\n            )))) {\n    (&DAT_00088fa0)[iVar9 * 2] = 0;\n    *(undefined4 *)(&DAT_00088fa4 + iVar9 * 8) = 0;\n    pbVar16 = (byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2);\n    *pbVar16 = *pbVar16 | 0x80;\n    return true;\n  }\nLAB_00046ea4:\n  iVar9 = FUN_00045de0();\n  if (iVar9 == 0) {\n    return false;\n  }\n  pbVar16 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);\n  *pbVar16 = *pbVar16 | 0x10;\n  if (DAT_00089008 == 0) {\n    DAT_00089088 = xstrdup(param_1);\n  }\n  DAT_00089008 = DAT_00089008 + 1;\n  return true;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "size_t sVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "sbyte sVar14;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "bool bVar17;" primitive_type identifier ;) (declaration "longlong lVar18;" type_identifier identifier ;) (declaration "uint local_48;" type_identifier identifier ;) (declaration "byte *local_44;" type_identifier (pointer_declarator "*local_44" * identifier) ;) (declaration "byte *local_28;" type_identifier (pointer_declarator "*local_28" * identifier) ;) (expression_statement "bVar4 = *param_1;" (assignment_expression "bVar4 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "pbVar16 = param_1;" (assignment_expression "pbVar16 = param_1" identifier = identifier) ;) (if_statement "if (bVar4 == 0x20) {\n    bVar4 = param_1[1];\n    pbVar16 = param_1 + 1;\n  }" if (parenthesized_expression "(bVar4 == 0x20)" ( (binary_expression "bVar4 == 0x20" identifier == number_literal) )) (compound_statement "{\n    bVar4 = param_1[1];\n    pbVar16 = param_1 + 1;\n  }" { (expression_statement "bVar4 = param_1[1];" (assignment_expression "bVar4 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar16 = param_1 + 1;" (assignment_expression "pbVar16 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) })) (if_statement "if (bVar4 == 0x2a) {\n    if (pbVar16[1] == 0x20) {\n      pbVar16 = pbVar16 + 2;\n    }\n    else {\n      pbVar16 = pbVar16 + 1;\n    }\n    pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);\n    *pbVar10 = *pbVar10 | 2;\n  }" if (parenthesized_expression "(bVar4 == 0x2a)" ( (binary_expression "bVar4 == 0x2a" identifier == number_literal) )) (compound_statement "{\n    if (pbVar16[1] == 0x20) {\n      pbVar16 = pbVar16 + 2;\n    }\n    else {\n      pbVar16 = pbVar16 + 1;\n    }\n    pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);\n    *pbVar10 = *pbVar10 | 2;\n  }" { (if_statement "if (pbVar16[1] == 0x20) {\n      pbVar16 = pbVar16 + 2;\n    }\n    else {\n      pbVar16 = pbVar16 + 1;\n    }" if (parenthesized_expression "(pbVar16[1] == 0x20)" ( (binary_expression "pbVar16[1] == 0x20" (subscript_expression "pbVar16[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      pbVar16 = pbVar16 + 2;\n    }" { (expression_statement "pbVar16 = pbVar16 + 2;" (assignment_expression "pbVar16 = pbVar16 + 2" identifier = (binary_expression "pbVar16 + 2" identifier + number_literal)) ;) }) (else_clause "else {\n      pbVar16 = pbVar16 + 1;\n    }" else (compound_statement "{\n      pbVar16 = pbVar16 + 1;\n    }" { (expression_statement "pbVar16 = pbVar16 + 1;" (assignment_expression "pbVar16 = pbVar16 + 1" identifier = (binary_expression "pbVar16 + 1" identifier + number_literal)) ;) }))) (expression_statement "pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);" (assignment_expression "pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3)" identifier = (cast_expression "(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&DAT_00089010 + DAT_00080558 * 8 + 3)" ( (binary_expression "(int)&DAT_00089010 + DAT_00080558 * 8 + 3" (binary_expression "(int)&DAT_00089010 + DAT_00080558 * 8" (cast_expression "(int)&DAT_00089010" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&DAT_00089010" & identifier)) + (binary_expression "DAT_00080558 * 8" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "*pbVar10 = *pbVar10 | 2;" (assignment_expression "*pbVar10 = *pbVar10 | 2" (pointer_expression "*pbVar10" * identifier) = (binary_expression "*pbVar10 | 2" (pointer_expression "*pbVar10" * identifier) | number_literal)) ;) })) (expression_statement "iVar6 = FUN_00044f30();" (assignment_expression "iVar6 = FUN_00044f30()" identifier = (call_expression "FUN_00044f30()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar9 = DAT_0008900c;" (assignment_expression "iVar9 = DAT_0008900c" identifier = identifier) ;) (if_statement "if (iVar6 == 0) {\n    bVar4 = *pbVar16;\n    if (bVar4 == 0x25) {\n      pcVar13 = "bad register name `%s\'";\nLAB_00046f4c:\n      uVar7 = dcgettext(0,pcVar13,5);\n      FUN_0002bd60(uVar7,pbVar16);\n      return false;\n    }\n    if (bVar4 == 0x24) {\n      if ((*(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3) & 2) != 0) {\n        uVar7 = dcgettext(0,"immediate operand illegal with absolute jump",5);\n        FUN_0002bd60(uVar7);\n        return false;\n      }\n      if (DAT_0008900c != 2) {\n        iVar6 = DAT_0008900c * 5;\n        DAT_0008900c = DAT_0008900c + 1;\n        (&DAT_00089038)[DAT_00080558] = &DAT_00088f20 + iVar6;\n        uVar7 = DAT_00089978;\n        local_44 = pbVar16 + 2;\n        if (pbVar16[1] != 0x20) {\n          local_44 = pbVar16 + 1;\n        }\n        DAT_00089978 = local_44;\n        pbVar16 = (byte *)FUN_000453b0();\n        if (pbVar16 != (byte *)0x0) {\n          DAT_00089978 = pbVar16;\n        }\n        FUN_000221d0(0,&DAT_00088f20 + iVar6,1);\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n          DAT_00089978 = DAT_00089978 + 1;\n        }\n        if (bVar4 == 0x7b) {\n          DAT_00089978 = (byte *)FUN_00045070();\n          if (DAT_00089978 == (byte *)0x0) {\n            return false;\n          }\n          bVar4 = *DAT_00089978;\n        }\n        pbVar10 = DAT_00089978;\n        if (bVar4 != 0) {\n          uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n          FUN_0002bd60(uVar12,pbVar10);\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (pbVar16 != (byte *)0x0) {\n          free(pbVar16);\n          if (((&DAT_00088f30)[iVar9 * 0x14] == '\x02') || ((&DAT_00088f30)[iVar9 * 0x14] == '\x05')\n             ) {\n            (&DAT_00088f30)[iVar9 * 0x14] = 0;\n          }\n        }\n        iVar9 = FUN_00041f60(0xffffffff,0xffffffff,local_44);\n        return iVar9 != 0;\n      }\n      pcVar13 = "at most %d immediate operands are allowed";\n      goto LAB_00047443;\n    }\n    if (*param_1 == 0x7b) {\n      iVar9 = FUN_000464f0();\n      if (iVar9 != 0) {\n        return true;\n      }\n      bVar4 = *pbVar16;\n    }\n    iVar9 = DAT_00080558;\n    if ((((&DAT_00089120)[bVar4] == '\0') && (bVar4 != 0x28 && bVar4 != 0x22)) &&\n       ((&DAT_00089220)[bVar4] == '\0')) {\n      uVar7 = FUN_00046660();\n      uVar12 = dcgettext(0,"invalid char %s beginning operand %d `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7,iVar9 + 1,pbVar16);\n      return false;\n    }\n    goto LAB_00046c60;\n  }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n    bVar4 = *pbVar16;\n    if (bVar4 == 0x25) {\n      pcVar13 = "bad register name `%s\'";\nLAB_00046f4c:\n      uVar7 = dcgettext(0,pcVar13,5);\n      FUN_0002bd60(uVar7,pbVar16);\n      return false;\n    }\n    if (bVar4 == 0x24) {\n      if ((*(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3) & 2) != 0) {\n        uVar7 = dcgettext(0,"immediate operand illegal with absolute jump",5);\n        FUN_0002bd60(uVar7);\n        return false;\n      }\n      if (DAT_0008900c != 2) {\n        iVar6 = DAT_0008900c * 5;\n        DAT_0008900c = DAT_0008900c + 1;\n        (&DAT_00089038)[DAT_00080558] = &DAT_00088f20 + iVar6;\n        uVar7 = DAT_00089978;\n        local_44 = pbVar16 + 2;\n        if (pbVar16[1] != 0x20) {\n          local_44 = pbVar16 + 1;\n        }\n        DAT_00089978 = local_44;\n        pbVar16 = (byte *)FUN_000453b0();\n        if (pbVar16 != (byte *)0x0) {\n          DAT_00089978 = pbVar16;\n        }\n        FUN_000221d0(0,&DAT_00088f20 + iVar6,1);\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n          DAT_00089978 = DAT_00089978 + 1;\n        }\n        if (bVar4 == 0x7b) {\n          DAT_00089978 = (byte *)FUN_00045070();\n          if (DAT_00089978 == (byte *)0x0) {\n            return false;\n          }\n          bVar4 = *DAT_00089978;\n        }\n        pbVar10 = DAT_00089978;\n        if (bVar4 != 0) {\n          uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n          FUN_0002bd60(uVar12,pbVar10);\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (pbVar16 != (byte *)0x0) {\n          free(pbVar16);\n          if (((&DAT_00088f30)[iVar9 * 0x14] == '\x02') || ((&DAT_00088f30)[iVar9 * 0x14] == '\x05')\n             ) {\n            (&DAT_00088f30)[iVar9 * 0x14] = 0;\n          }\n        }\n        iVar9 = FUN_00041f60(0xffffffff,0xffffffff,local_44);\n        return iVar9 != 0;\n      }\n      pcVar13 = "at most %d immediate operands are allowed";\n      goto LAB_00047443;\n    }\n    if (*param_1 == 0x7b) {\n      iVar9 = FUN_000464f0();\n      if (iVar9 != 0) {\n        return true;\n      }\n      bVar4 = *pbVar16;\n    }\n    iVar9 = DAT_00080558;\n    if ((((&DAT_00089120)[bVar4] == '\0') && (bVar4 != 0x28 && bVar4 != 0x22)) &&\n       ((&DAT_00089220)[bVar4] == '\0')) {\n      uVar7 = FUN_00046660();\n      uVar12 = dcgettext(0,"invalid char %s beginning operand %d `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7,iVar9 + 1,pbVar16);\n      return false;\n    }\n    goto LAB_00046c60;\n  }" { (expression_statement "bVar4 = *pbVar16;" (assignment_expression "bVar4 = *pbVar16" identifier = (pointer_expression "*pbVar16" * identifier)) ;) (if_statement "if (bVar4 == 0x25) {\n      pcVar13 = "bad register name `%s\'";\nLAB_00046f4c:\n      uVar7 = dcgettext(0,pcVar13,5);\n      FUN_0002bd60(uVar7,pbVar16);\n      return false;\n    }" if (parenthesized_expression "(bVar4 == 0x25)" ( (binary_expression "bVar4 == 0x25" identifier == number_literal) )) (compound_statement "{\n      pcVar13 = "bad register name `%s\'";\nLAB_00046f4c:\n      uVar7 = dcgettext(0,pcVar13,5);\n      FUN_0002bd60(uVar7,pbVar16);\n      return false;\n    }" { (expression_statement "pcVar13 = "bad register name `%s\'";" (assignment_expression "pcVar13 = "bad register name `%s\'"" identifier = (string_literal ""bad register name `%s\'"" " string_content escape_sequence ")) ;) (labeled_statement "LAB_00046f4c:\n      uVar7 = dcgettext(0,pcVar13,5);" statement_identifier : (expression_statement "uVar7 = dcgettext(0,pcVar13,5);" (assignment_expression "uVar7 = dcgettext(0,pcVar13,5)" identifier = (call_expression "dcgettext(0,pcVar13,5)" identifier (argument_list "(0,pcVar13,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "FUN_0002bd60(uVar7,pbVar16);" (call_expression "FUN_0002bd60(uVar7,pbVar16)" identifier (argument_list "(uVar7,pbVar16)" ( identifier , identifier ))) ;) (return_statement "return false;" return false ;) })) (if_statement "if (bVar4 == 0x24) {\n      if ((*(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3) & 2) != 0) {\n        uVar7 = dcgettext(0,"immediate operand illegal with absolute jump",5);\n        FUN_0002bd60(uVar7);\n        return false;\n      }\n      if (DAT_0008900c != 2) {\n        iVar6 = DAT_0008900c * 5;\n        DAT_0008900c = DAT_0008900c + 1;\n        (&DAT_00089038)[DAT_00080558] = &DAT_00088f20 + iVar6;\n        uVar7 = DAT_00089978;\n        local_44 = pbVar16 + 2;\n        if (pbVar16[1] != 0x20) {\n          local_44 = pbVar16 + 1;\n        }\n        DAT_00089978 = local_44;\n        pbVar16 = (byte *)FUN_000453b0();\n        if (pbVar16 != (byte *)0x0) {\n          DAT_00089978 = pbVar16;\n        }\n        FUN_000221d0(0,&DAT_00088f20 + iVar6,1);\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n          DAT_00089978 = DAT_00089978 + 1;\n        }\n        if (bVar4 == 0x7b) {\n          DAT_00089978 = (byte *)FUN_00045070();\n          if (DAT_00089978 == (byte *)0x0) {\n            return false;\n          }\n          bVar4 = *DAT_00089978;\n        }\n        pbVar10 = DAT_00089978;\n        if (bVar4 != 0) {\n          uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n          FUN_0002bd60(uVar12,pbVar10);\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (pbVar16 != (byte *)0x0) {\n          free(pbVar16);\n          if (((&DAT_00088f30)[iVar9 * 0x14] == '\x02') || ((&DAT_00088f30)[iVar9 * 0x14] == '\x05')\n             ) {\n            (&DAT_00088f30)[iVar9 * 0x14] = 0;\n          }\n        }\n        iVar9 = FUN_00041f60(0xffffffff,0xffffffff,local_44);\n        return iVar9 != 0;\n      }\n      pcVar13 = "at most %d immediate operands are allowed";\n      goto LAB_00047443;\n    }" if (parenthesized_expression "(bVar4 == 0x24)" ( (binary_expression "bVar4 == 0x24" identifier == number_literal) )) (compound_statement "{\n      if ((*(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3) & 2) != 0) {\n        uVar7 = dcgettext(0,"immediate operand illegal with absolute jump",5);\n        FUN_0002bd60(uVar7);\n        return false;\n      }\n      if (DAT_0008900c != 2) {\n        iVar6 = DAT_0008900c * 5;\n        DAT_0008900c = DAT_0008900c + 1;\n        (&DAT_00089038)[DAT_00080558] = &DAT_00088f20 + iVar6;\n        uVar7 = DAT_00089978;\n        local_44 = pbVar16 + 2;\n        if (pbVar16[1] != 0x20) {\n          local_44 = pbVar16 + 1;\n        }\n        DAT_00089978 = local_44;\n        pbVar16 = (byte *)FUN_000453b0();\n        if (pbVar16 != (byte *)0x0) {\n          DAT_00089978 = pbVar16;\n        }\n        FUN_000221d0(0,&DAT_00088f20 + iVar6,1);\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n          DAT_00089978 = DAT_00089978 + 1;\n        }\n        if (bVar4 == 0x7b) {\n          DAT_00089978 = (byte *)FUN_00045070();\n          if (DAT_00089978 == (byte *)0x0) {\n            return false;\n          }\n          bVar4 = *DAT_00089978;\n        }\n        pbVar10 = DAT_00089978;\n        if (bVar4 != 0) {\n          uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n          FUN_0002bd60(uVar12,pbVar10);\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (pbVar16 != (byte *)0x0) {\n          free(pbVar16);\n          if (((&DAT_00088f30)[iVar9 * 0x14] == '\x02') || ((&DAT_00088f30)[iVar9 * 0x14] == '\x05')\n             ) {\n            (&DAT_00088f30)[iVar9 * 0x14] = 0;\n          }\n        }\n        iVar9 = FUN_00041f60(0xffffffff,0xffffffff,local_44);\n        return iVar9 != 0;\n      }\n      pcVar13 = "at most %d immediate operands are allowed";\n      goto LAB_00047443;\n    }" { (if_statement "if ((*(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3) & 2) != 0) {\n        uVar7 = dcgettext(0,"immediate operand illegal with absolute jump",5);\n        FUN_0002bd60(uVar7);\n        return false;\n      }" if (parenthesized_expression "((*(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3) & 2) != 0)" ( (binary_expression "(*(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3) & 2) != 0" (parenthesized_expression "(*(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3) & 2)" ( (binary_expression "*(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3) & 2" (pointer_expression "*(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3)" * (cast_expression "(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&DAT_00089010 + DAT_00080558 * 8 + 3)" ( (binary_expression "(int)&DAT_00089010 + DAT_00080558 * 8 + 3" (binary_expression "(int)&DAT_00089010 + DAT_00080558 * 8" (cast_expression "(int)&DAT_00089010" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&DAT_00089010" & identifier)) + (binary_expression "DAT_00080558 * 8" identifier * number_literal)) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        uVar7 = dcgettext(0,"immediate operand illegal with absolute jump",5);\n        FUN_0002bd60(uVar7);\n        return false;\n      }" { (expression_statement "uVar7 = dcgettext(0,"immediate operand illegal with absolute jump",5);" (assignment_expression "uVar7 = dcgettext(0,"immediate operand illegal with absolute jump",5)" identifier = (call_expression "dcgettext(0,"immediate operand illegal with absolute jump",5)" identifier (argument_list "(0,"immediate operand illegal with absolute jump",5)" ( number_literal , (string_literal ""immediate operand illegal with absolute jump"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002bd60(uVar7);" (call_expression "FUN_0002bd60(uVar7)" identifier (argument_list "(uVar7)" ( identifier ))) ;) (return_statement "return false;" return false ;) })) (if_statement "if (DAT_0008900c != 2) {\n        iVar6 = DAT_0008900c * 5;\n        DAT_0008900c = DAT_0008900c + 1;\n        (&DAT_00089038)[DAT_00080558] = &DAT_00088f20 + iVar6;\n        uVar7 = DAT_00089978;\n        local_44 = pbVar16 + 2;\n        if (pbVar16[1] != 0x20) {\n          local_44 = pbVar16 + 1;\n        }\n        DAT_00089978 = local_44;\n        pbVar16 = (byte *)FUN_000453b0();\n        if (pbVar16 != (byte *)0x0) {\n          DAT_00089978 = pbVar16;\n        }\n        FUN_000221d0(0,&DAT_00088f20 + iVar6,1);\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n          DAT_00089978 = DAT_00089978 + 1;\n        }\n        if (bVar4 == 0x7b) {\n          DAT_00089978 = (byte *)FUN_00045070();\n          if (DAT_00089978 == (byte *)0x0) {\n            return false;\n          }\n          bVar4 = *DAT_00089978;\n        }\n        pbVar10 = DAT_00089978;\n        if (bVar4 != 0) {\n          uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n          FUN_0002bd60(uVar12,pbVar10);\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (pbVar16 != (byte *)0x0) {\n          free(pbVar16);\n          if (((&DAT_00088f30)[iVar9 * 0x14] == '\x02') || ((&DAT_00088f30)[iVar9 * 0x14] == '\x05')\n             ) {\n            (&DAT_00088f30)[iVar9 * 0x14] = 0;\n          }\n        }\n        iVar9 = FUN_00041f60(0xffffffff,0xffffffff,local_44);\n        return iVar9 != 0;\n      }" if (parenthesized_expression "(DAT_0008900c != 2)" ( (binary_expression "DAT_0008900c != 2" identifier != number_literal) )) (compound_statement "{\n        iVar6 = DAT_0008900c * 5;\n        DAT_0008900c = DAT_0008900c + 1;\n        (&DAT_00089038)[DAT_00080558] = &DAT_00088f20 + iVar6;\n        uVar7 = DAT_00089978;\n        local_44 = pbVar16 + 2;\n        if (pbVar16[1] != 0x20) {\n          local_44 = pbVar16 + 1;\n        }\n        DAT_00089978 = local_44;\n        pbVar16 = (byte *)FUN_000453b0();\n        if (pbVar16 != (byte *)0x0) {\n          DAT_00089978 = pbVar16;\n        }\n        FUN_000221d0(0,&DAT_00088f20 + iVar6,1);\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n          DAT_00089978 = DAT_00089978 + 1;\n        }\n        if (bVar4 == 0x7b) {\n          DAT_00089978 = (byte *)FUN_00045070();\n          if (DAT_00089978 == (byte *)0x0) {\n            return false;\n          }\n          bVar4 = *DAT_00089978;\n        }\n        pbVar10 = DAT_00089978;\n        if (bVar4 != 0) {\n          uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n          FUN_0002bd60(uVar12,pbVar10);\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (pbVar16 != (byte *)0x0) {\n          free(pbVar16);\n          if (((&DAT_00088f30)[iVar9 * 0x14] == '\x02') || ((&DAT_00088f30)[iVar9 * 0x14] == '\x05')\n             ) {\n            (&DAT_00088f30)[iVar9 * 0x14] = 0;\n          }\n        }\n        iVar9 = FUN_00041f60(0xffffffff,0xffffffff,local_44);\n        return iVar9 != 0;\n      }" { (expression_statement "iVar6 = DAT_0008900c * 5;" (assignment_expression "iVar6 = DAT_0008900c * 5" identifier = (binary_expression "DAT_0008900c * 5" identifier * number_literal)) ;) (expression_statement "DAT_0008900c = DAT_0008900c + 1;" (assignment_expression "DAT_0008900c = DAT_0008900c + 1" identifier = (binary_expression "DAT_0008900c + 1" identifier + number_literal)) ;) (expression_statement "(&DAT_00089038)[DAT_00080558] = &DAT_00088f20 + iVar6;" (assignment_expression "(&DAT_00089038)[DAT_00080558] = &DAT_00088f20 + iVar6" (subscript_expression "(&DAT_00089038)[DAT_00080558]" (parenthesized_expression "(&DAT_00089038)" ( (pointer_expression "&DAT_00089038" & identifier) )) [ identifier ]) = (binary_expression "&DAT_00088f20 + iVar6" (pointer_expression "&DAT_00088f20" & identifier) + identifier)) ;) (expression_statement "uVar7 = DAT_00089978;" (assignment_expression "uVar7 = DAT_00089978" identifier = identifier) ;) (expression_statement "local_44 = pbVar16 + 2;" (assignment_expression "local_44 = pbVar16 + 2" identifier = (binary_expression "pbVar16 + 2" identifier + number_literal)) ;) (if_statement "if (pbVar16[1] != 0x20) {\n          local_44 = pbVar16 + 1;\n        }" if (parenthesized_expression "(pbVar16[1] != 0x20)" ( (binary_expression "pbVar16[1] != 0x20" (subscript_expression "pbVar16[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n          local_44 = pbVar16 + 1;\n        }" { (expression_statement "local_44 = pbVar16 + 1;" (assignment_expression "local_44 = pbVar16 + 1" identifier = (binary_expression "pbVar16 + 1" identifier + number_literal)) ;) })) (expression_statement "DAT_00089978 = local_44;" (assignment_expression "DAT_00089978 = local_44" identifier = identifier) ;) (expression_statement "pbVar16 = (byte *)FUN_000453b0();" (assignment_expression "pbVar16 = (byte *)FUN_000453b0()" identifier = (cast_expression "(byte *)FUN_000453b0()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000453b0()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (pbVar16 != (byte *)0x0) {\n          DAT_00089978 = pbVar16;\n        }" if (parenthesized_expression "(pbVar16 != (byte *)0x0)" ( (binary_expression "pbVar16 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          DAT_00089978 = pbVar16;\n        }" { (expression_statement "DAT_00089978 = pbVar16;" (assignment_expression "DAT_00089978 = pbVar16" identifier = identifier) ;) })) (expression_statement "FUN_000221d0(0,&DAT_00088f20 + iVar6,1);" (call_expression "FUN_000221d0(0,&DAT_00088f20 + iVar6,1)" identifier (argument_list "(0,&DAT_00088f20 + iVar6,1)" ( number_literal , (binary_expression "&DAT_00088f20 + iVar6" (pointer_expression "&DAT_00088f20" & identifier) + identifier) , number_literal ))) ;) (expression_statement "bVar4 = *DAT_00089978;" (assignment_expression "bVar4 = *DAT_00089978" identifier = (pointer_expression "*DAT_00089978" * identifier)) ;) (if_statement "if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n          DAT_00089978 = DAT_00089978 + 1;\n        }" if (parenthesized_expression "(bVar4 == 0x20)" ( (binary_expression "bVar4 == 0x20" identifier == number_literal) )) (compound_statement "{\n          bVar4 = DAT_00089978[1];\n          DAT_00089978 = DAT_00089978 + 1;\n        }" { (expression_statement "bVar4 = DAT_00089978[1];" (assignment_expression "bVar4 = DAT_00089978[1]" identifier = (subscript_expression "DAT_00089978[1]" identifier [ number_literal ])) ;) (expression_statement "DAT_00089978 = DAT_00089978 + 1;" (assignment_expression "DAT_00089978 = DAT_00089978 + 1" identifier = (binary_expression "DAT_00089978 + 1" identifier + number_literal)) ;) })) (if_statement "if (bVar4 == 0x7b) {\n          DAT_00089978 = (byte *)FUN_00045070();\n          if (DAT_00089978 == (byte *)0x0) {\n            return false;\n          }\n          bVar4 = *DAT_00089978;\n        }" if (parenthesized_expression "(bVar4 == 0x7b)" ( (binary_expression "bVar4 == 0x7b" identifier == number_literal) )) (compound_statement "{\n          DAT_00089978 = (byte *)FUN_00045070();\n          if (DAT_00089978 == (byte *)0x0) {\n            return false;\n          }\n          bVar4 = *DAT_00089978;\n        }" { (expression_statement "DAT_00089978 = (byte *)FUN_00045070();" (assignment_expression "DAT_00089978 = (byte *)FUN_00045070()" identifier = (cast_expression "(byte *)FUN_00045070()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00045070()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (DAT_00089978 == (byte *)0x0) {\n            return false;\n          }" if (parenthesized_expression "(DAT_00089978 == (byte *)0x0)" ( (binary_expression "DAT_00089978 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            return false;\n          }" { (return_statement "return false;" return false ;) })) (expression_statement "bVar4 = *DAT_00089978;" (assignment_expression "bVar4 = *DAT_00089978" identifier = (pointer_expression "*DAT_00089978" * identifier)) ;) })) (expression_statement "pbVar10 = DAT_00089978;" (assignment_expression "pbVar10 = DAT_00089978" identifier = identifier) ;) (if_statement "if (bVar4 != 0) {\n          uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n          FUN_0002bd60(uVar12,pbVar10);\n        }" if (parenthesized_expression "(bVar4 != 0)" ( (binary_expression "bVar4 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n          FUN_0002bd60(uVar12,pbVar10);\n        }" { (expression_statement "uVar12 = dcgettext(0,"junk `%s\' after expression",5);" (assignment_expression "uVar12 = dcgettext(0,"junk `%s\' after expression",5)" identifier = (call_expression "dcgettext(0,"junk `%s\' after expression",5)" identifier (argument_list "(0,"junk `%s\' after expression",5)" ( number_literal , (string_literal ""junk `%s\' after expression"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "FUN_0002bd60(uVar12,pbVar10);" (call_expression "FUN_0002bd60(uVar12,pbVar10)" identifier (argument_list "(uVar12,pbVar10)" ( identifier , identifier ))) ;) })) (expression_statement "DAT_00089978 = (byte *)uVar7;" (assignment_expression "DAT_00089978 = (byte *)uVar7" identifier = (cast_expression "(byte *)uVar7" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (pbVar16 != (byte *)0x0) {\n          free(pbVar16);\n          if (((&DAT_00088f30)[iVar9 * 0x14] == '\x02') || ((&DAT_00088f30)[iVar9 * 0x14] == '\x05')\n             ) {\n            (&DAT_00088f30)[iVar9 * 0x14] = 0;\n          }\n        }" if (parenthesized_expression "(pbVar16 != (byte *)0x0)" ( (binary_expression "pbVar16 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          free(pbVar16);\n          if (((&DAT_00088f30)[iVar9 * 0x14] == '\x02') || ((&DAT_00088f30)[iVar9 * 0x14] == '\x05')\n             ) {\n            (&DAT_00088f30)[iVar9 * 0x14] = 0;\n          }\n        }" { (expression_statement "free(pbVar16);" (call_expression "free(pbVar16)" identifier (argument_list "(pbVar16)" ( identifier ))) ;) (if_statement "if (((&DAT_00088f30)[iVar9 * 0x14] == '\x02') || ((&DAT_00088f30)[iVar9 * 0x14] == '\x05')\n             ) {\n            (&DAT_00088f30)[iVar9 * 0x14] = 0;\n          }" if (parenthesized_expression "(((&DAT_00088f30)[iVar9 * 0x14] == '\x02') || ((&DAT_00088f30)[iVar9 * 0x14] == '\x05')\n             )" ( (binary_expression "((&DAT_00088f30)[iVar9 * 0x14] == '\x02') || ((&DAT_00088f30)[iVar9 * 0x14] == '\x05')" (parenthesized_expression "((&DAT_00088f30)[iVar9 * 0x14] == '\x02')" ( (binary_expression "(&DAT_00088f30)[iVar9 * 0x14] == '\x02'" (subscript_expression "(&DAT_00088f30)[iVar9 * 0x14]" (parenthesized_expression "(&DAT_00088f30)" ( (pointer_expression "&DAT_00088f30" & identifier) )) [ (binary_expression "iVar9 * 0x14" identifier * number_literal) ]) == (char_literal "'\x02'" ' escape_sequence ')) )) || (parenthesized_expression "((&DAT_00088f30)[iVar9 * 0x14] == '\x05')" ( (binary_expression "(&DAT_00088f30)[iVar9 * 0x14] == '\x05'" (subscript_expression "(&DAT_00088f30)[iVar9 * 0x14]" (parenthesized_expression "(&DAT_00088f30)" ( (pointer_expression "&DAT_00088f30" & identifier) )) [ (binary_expression "iVar9 * 0x14" identifier * number_literal) ]) == (char_literal "'\x05'" ' escape_sequence ')) ))) )) (compound_statement "{\n            (&DAT_00088f30)[iVar9 * 0x14] = 0;\n          }" { (expression_statement "(&DAT_00088f30)[iVar9 * 0x14] = 0;" (assignment_expression "(&DAT_00088f30)[iVar9 * 0x14] = 0" (subscript_expression "(&DAT_00088f30)[iVar9 * 0x14]" (parenthesized_expression "(&DAT_00088f30)" ( (pointer_expression "&DAT_00088f30" & identifier) )) [ (binary_expression "iVar9 * 0x14" identifier * number_literal) ]) = number_literal) ;) })) })) (expression_statement "iVar9 = FUN_00041f60(0xffffffff,0xffffffff,local_44);" (assignment_expression "iVar9 = FUN_00041f60(0xffffffff,0xffffffff,local_44)" identifier = (call_expression "FUN_00041f60(0xffffffff,0xffffffff,local_44)" identifier (argument_list "(0xffffffff,0xffffffff,local_44)" ( number_literal , number_literal , identifier )))) ;) (return_statement "return iVar9 != 0;" return (binary_expression "iVar9 != 0" identifier != number_literal) ;) })) (expression_statement "pcVar13 = "at most %d immediate operands are allowed";" (assignment_expression "pcVar13 = "at most %d immediate operands are allowed"" identifier = (string_literal ""at most %d immediate operands are allowed"" " string_content ")) ;) (goto_statement "goto LAB_00047443;" goto statement_identifier ;) })) (if_statement "if (*param_1 == 0x7b) {\n      iVar9 = FUN_000464f0();\n      if (iVar9 != 0) {\n        return true;\n      }\n      bVar4 = *pbVar16;\n    }" if (parenthesized_expression "(*param_1 == 0x7b)" ( (binary_expression "*param_1 == 0x7b" (pointer_expression "*param_1" * identifier) == number_literal) )) (compound_statement "{\n      iVar9 = FUN_000464f0();\n      if (iVar9 != 0) {\n        return true;\n      }\n      bVar4 = *pbVar16;\n    }" { (expression_statement "iVar9 = FUN_000464f0();" (assignment_expression "iVar9 = FUN_000464f0()" identifier = (call_expression "FUN_000464f0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar9 != 0) {\n        return true;\n      }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n        return true;\n      }" { (return_statement "return true;" return true ;) })) (expression_statement "bVar4 = *pbVar16;" (assignment_expression "bVar4 = *pbVar16" identifier = (pointer_expression "*pbVar16" * identifier)) ;) })) (expression_statement "iVar9 = DAT_00080558;" (assignment_expression "iVar9 = DAT_00080558" identifier = identifier) ;) (if_statement "if ((((&DAT_00089120)[bVar4] == '\0') && (bVar4 != 0x28 && bVar4 != 0x22)) &&\n       ((&DAT_00089220)[bVar4] == '\0')) {\n      uVar7 = FUN_00046660();\n      uVar12 = dcgettext(0,"invalid char %s beginning operand %d `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7,iVar9 + 1,pbVar16);\n      return false;\n    }" if (parenthesized_expression "((((&DAT_00089120)[bVar4] == '\0') && (bVar4 != 0x28 && bVar4 != 0x22)) &&\n       ((&DAT_00089220)[bVar4] == '\0'))" ( (binary_expression "(((&DAT_00089120)[bVar4] == '\0') && (bVar4 != 0x28 && bVar4 != 0x22)) &&\n       ((&DAT_00089220)[bVar4] == '\0')" (parenthesized_expression "(((&DAT_00089120)[bVar4] == '\0') && (bVar4 != 0x28 && bVar4 != 0x22))" ( (binary_expression "((&DAT_00089120)[bVar4] == '\0') && (bVar4 != 0x28 && bVar4 != 0x22)" (parenthesized_expression "((&DAT_00089120)[bVar4] == '\0')" ( (binary_expression "(&DAT_00089120)[bVar4] == '\0'" (subscript_expression "(&DAT_00089120)[bVar4]" (parenthesized_expression "(&DAT_00089120)" ( (pointer_expression "&DAT_00089120" & identifier) )) [ identifier ]) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(bVar4 != 0x28 && bVar4 != 0x22)" ( (binary_expression "bVar4 != 0x28 && bVar4 != 0x22" (binary_expression "bVar4 != 0x28" identifier != number_literal) && (binary_expression "bVar4 != 0x22" identifier != number_literal)) ))) )) && (parenthesized_expression "((&DAT_00089220)[bVar4] == '\0')" ( (binary_expression "(&DAT_00089220)[bVar4] == '\0'" (subscript_expression "(&DAT_00089220)[bVar4]" (parenthesized_expression "(&DAT_00089220)" ( (pointer_expression "&DAT_00089220" & identifier) )) [ identifier ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      uVar7 = FUN_00046660();\n      uVar12 = dcgettext(0,"invalid char %s beginning operand %d `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7,iVar9 + 1,pbVar16);\n      return false;\n    }" { (expression_statement "uVar7 = FUN_00046660();" (assignment_expression "uVar7 = FUN_00046660()" identifier = (call_expression "FUN_00046660()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar12 = dcgettext(0,"invalid char %s beginning operand %d `%s\'",5);" (assignment_expression "uVar12 = dcgettext(0,"invalid char %s beginning operand %d `%s\'",5)" identifier = (call_expression "dcgettext(0,"invalid char %s beginning operand %d `%s\'",5)" identifier (argument_list "(0,"invalid char %s beginning operand %d `%s\'",5)" ( number_literal , (string_literal ""invalid char %s beginning operand %d `%s\'"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_0002bd60(uVar12,uVar7,iVar9 + 1,pbVar16);" (call_expression "FUN_0002bd60(uVar12,uVar7,iVar9 + 1,pbVar16)" identifier (argument_list "(uVar12,uVar7,iVar9 + 1,pbVar16)" ( identifier , identifier , (binary_expression "iVar9 + 1" identifier + number_literal) , identifier ))) ;) (return_statement "return false;" return false ;) })) (goto_statement "goto LAB_00046c60;" goto statement_identifier ;) })) (expression_statement "bVar4 = *local_28;" (assignment_expression "bVar4 = *local_28" identifier = (pointer_expression "*local_28" * identifier)) ;) (expression_statement "pbVar10 = local_28;" (assignment_expression "pbVar10 = local_28" identifier = identifier) ;) (if_statement "if (bVar4 == 0x20) {\n    bVar4 = local_28[1];\n    pbVar10 = local_28 + 1;\n  }" if (parenthesized_expression "(bVar4 == 0x20)" ( (binary_expression "bVar4 == 0x20" identifier == number_literal) )) (compound_statement "{\n    bVar4 = local_28[1];\n    pbVar10 = local_28 + 1;\n  }" { (expression_statement "bVar4 = local_28[1];" (assignment_expression "bVar4 = local_28[1]" identifier = (subscript_expression "local_28[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar10 = local_28 + 1;" (assignment_expression "pbVar10 = local_28 + 1" identifier = (binary_expression "local_28 + 1" identifier + number_literal)) ;) })) (if_statement "if (bVar4 != 0x3a) {\n    if (bVar4 == 0x7b) {\n      pbVar10 = (byte *)FUN_00045070();\n      if (pbVar10 == (byte *)0x0) {\n        return false;\n      }\n      bVar4 = *pbVar10;\n    }\n    iVar9 = DAT_00080558;\n    if (bVar4 == 0) {\n      uVar3 = *(uint *)(iVar6 + 8);\n      iVar1 = DAT_00080558 + 0xe;\n      (&DAT_00088fa0)[iVar1 * 2] = (&DAT_00088fa0)[iVar1 * 2] | *(uint *)(iVar6 + 4) & 0xffbfffff;\n      *(uint *)(&DAT_00088fa4 + iVar1 * 8) = *(uint *)(&DAT_00088fa4 + iVar1 * 8) | uVar3;\n      (&DAT_00088fa4)[iVar1 * 8] = (&DAT_00088fa4)[iVar1 * 8] & 0xbf;\n      DAT_00089000 = DAT_00089000 + 1;\n      (&DAT_00089038)[iVar9] = iVar6;\n      return true;\n    }\nLAB_00046ad0:\n    uVar7 = dcgettext(0,"junk `%s\' after register",5);\n    FUN_0002bd60(uVar7,pbVar10);\n    return false;\n  }" if (parenthesized_expression "(bVar4 != 0x3a)" ( (binary_expression "bVar4 != 0x3a" identifier != number_literal) )) (compound_statement "{\n    if (bVar4 == 0x7b) {\n      pbVar10 = (byte *)FUN_00045070();\n      if (pbVar10 == (byte *)0x0) {\n        return false;\n      }\n      bVar4 = *pbVar10;\n    }\n    iVar9 = DAT_00080558;\n    if (bVar4 == 0) {\n      uVar3 = *(uint *)(iVar6 + 8);\n      iVar1 = DAT_00080558 + 0xe;\n      (&DAT_00088fa0)[iVar1 * 2] = (&DAT_00088fa0)[iVar1 * 2] | *(uint *)(iVar6 + 4) & 0xffbfffff;\n      *(uint *)(&DAT_00088fa4 + iVar1 * 8) = *(uint *)(&DAT_00088fa4 + iVar1 * 8) | uVar3;\n      (&DAT_00088fa4)[iVar1 * 8] = (&DAT_00088fa4)[iVar1 * 8] & 0xbf;\n      DAT_00089000 = DAT_00089000 + 1;\n      (&DAT_00089038)[iVar9] = iVar6;\n      return true;\n    }\nLAB_00046ad0:\n    uVar7 = dcgettext(0,"junk `%s\' after register",5);\n    FUN_0002bd60(uVar7,pbVar10);\n    return false;\n  }" { (if_statement "if (bVar4 == 0x7b) {\n      pbVar10 = (byte *)FUN_00045070();\n      if (pbVar10 == (byte *)0x0) {\n        return false;\n      }\n      bVar4 = *pbVar10;\n    }" if (parenthesized_expression "(bVar4 == 0x7b)" ( (binary_expression "bVar4 == 0x7b" identifier == number_literal) )) (compound_statement "{\n      pbVar10 = (byte *)FUN_00045070();\n      if (pbVar10 == (byte *)0x0) {\n        return false;\n      }\n      bVar4 = *pbVar10;\n    }" { (expression_statement "pbVar10 = (byte *)FUN_00045070();" (assignment_expression "pbVar10 = (byte *)FUN_00045070()" identifier = (cast_expression "(byte *)FUN_00045070()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00045070()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (pbVar10 == (byte *)0x0) {\n        return false;\n      }" if (parenthesized_expression "(pbVar10 == (byte *)0x0)" ( (binary_expression "pbVar10 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return false;\n      }" { (return_statement "return false;" return false ;) })) (expression_statement "bVar4 = *pbVar10;" (assignment_expression "bVar4 = *pbVar10" identifier = (pointer_expression "*pbVar10" * identifier)) ;) })) (expression_statement "iVar9 = DAT_00080558;" (assignment_expression "iVar9 = DAT_00080558" identifier = identifier) ;) (if_statement "if (bVar4 == 0) {\n      uVar3 = *(uint *)(iVar6 + 8);\n      iVar1 = DAT_00080558 + 0xe;\n      (&DAT_00088fa0)[iVar1 * 2] = (&DAT_00088fa0)[iVar1 * 2] | *(uint *)(iVar6 + 4) & 0xffbfffff;\n      *(uint *)(&DAT_00088fa4 + iVar1 * 8) = *(uint *)(&DAT_00088fa4 + iVar1 * 8) | uVar3;\n      (&DAT_00088fa4)[iVar1 * 8] = (&DAT_00088fa4)[iVar1 * 8] & 0xbf;\n      DAT_00089000 = DAT_00089000 + 1;\n      (&DAT_00089038)[iVar9] = iVar6;\n      return true;\n    }" if (parenthesized_expression "(bVar4 == 0)" ( (binary_expression "bVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar3 = *(uint *)(iVar6 + 8);\n      iVar1 = DAT_00080558 + 0xe;\n      (&DAT_00088fa0)[iVar1 * 2] = (&DAT_00088fa0)[iVar1 * 2] | *(uint *)(iVar6 + 4) & 0xffbfffff;\n      *(uint *)(&DAT_00088fa4 + iVar1 * 8) = *(uint *)(&DAT_00088fa4 + iVar1 * 8) | uVar3;\n      (&DAT_00088fa4)[iVar1 * 8] = (&DAT_00088fa4)[iVar1 * 8] & 0xbf;\n      DAT_00089000 = DAT_00089000 + 1;\n      (&DAT_00089038)[iVar9] = iVar6;\n      return true;\n    }" { (expression_statement "uVar3 = *(uint *)(iVar6 + 8);" (assignment_expression "uVar3 = *(uint *)(iVar6 + 8)" identifier = (pointer_expression "*(uint *)(iVar6 + 8)" * (cast_expression "(uint *)(iVar6 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = DAT_00080558 + 0xe;" (assignment_expression "iVar1 = DAT_00080558 + 0xe" identifier = (binary_expression "DAT_00080558 + 0xe" identifier + number_literal)) ;) (expression_statement "(&DAT_00088fa0)[iVar1 * 2] = (&DAT_00088fa0)[iVar1 * 2] | *(uint *)(iVar6 + 4) & 0xffbfffff;" (assignment_expression "(&DAT_00088fa0)[iVar1 * 2] = (&DAT_00088fa0)[iVar1 * 2] | *(uint *)(iVar6 + 4) & 0xffbfffff" (subscript_expression "(&DAT_00088fa0)[iVar1 * 2]" (parenthesized_expression "(&DAT_00088fa0)" ( (pointer_expression "&DAT_00088fa0" & identifier) )) [ (binary_expression "iVar1 * 2" identifier * number_literal) ]) = (binary_expression "(&DAT_00088fa0)[iVar1 * 2] | *(uint *)(iVar6 + 4) & 0xffbfffff" (subscript_expression "(&DAT_00088fa0)[iVar1 * 2]" (parenthesized_expression "(&DAT_00088fa0)" ( (pointer_expression "&DAT_00088fa0" & identifier) )) [ (binary_expression "iVar1 * 2" identifier * number_literal) ]) | (binary_expression "*(uint *)(iVar6 + 4) & 0xffbfffff" (pointer_expression "*(uint *)(iVar6 + 4)" * (cast_expression "(uint *)(iVar6 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) & number_literal))) ;) (expression_statement "*(uint *)(&DAT_00088fa4 + iVar1 * 8) = *(uint *)(&DAT_00088fa4 + iVar1 * 8) | uVar3;" (assignment_expression "*(uint *)(&DAT_00088fa4 + iVar1 * 8) = *(uint *)(&DAT_00088fa4 + iVar1 * 8) | uVar3" (pointer_expression "*(uint *)(&DAT_00088fa4 + iVar1 * 8)" * (cast_expression "(uint *)(&DAT_00088fa4 + iVar1 * 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00088fa4 + iVar1 * 8)" ( (binary_expression "&DAT_00088fa4 + iVar1 * 8" (pointer_expression "&DAT_00088fa4" & identifier) + (binary_expression "iVar1 * 8" identifier * number_literal)) )))) = (binary_expression "*(uint *)(&DAT_00088fa4 + iVar1 * 8) | uVar3" (pointer_expression "*(uint *)(&DAT_00088fa4 + iVar1 * 8)" * (cast_expression "(uint *)(&DAT_00088fa4 + iVar1 * 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00088fa4 + iVar1 * 8)" ( (binary_expression "&DAT_00088fa4 + iVar1 * 8" (pointer_expression "&DAT_00088fa4" & identifier) + (binary_expression "iVar1 * 8" identifier * number_literal)) )))) | identifier)) ;) (expression_statement "(&DAT_00088fa4)[iVar1 * 8] = (&DAT_00088fa4)[iVar1 * 8] & 0xbf;" (assignment_expression "(&DAT_00088fa4)[iVar1 * 8] = (&DAT_00088fa4)[iVar1 * 8] & 0xbf" (subscript_expression "(&DAT_00088fa4)[iVar1 * 8]" (parenthesized_expression "(&DAT_00088fa4)" ( (pointer_expression "&DAT_00088fa4" & identifier) )) [ (binary_expression "iVar1 * 8" identifier * number_literal) ]) = (binary_expression "(&DAT_00088fa4)[iVar1 * 8] & 0xbf" (subscript_expression "(&DAT_00088fa4)[iVar1 * 8]" (parenthesized_expression "(&DAT_00088fa4)" ( (pointer_expression "&DAT_00088fa4" & identifier) )) [ (binary_expression "iVar1 * 8" identifier * number_literal) ]) & number_literal)) ;) (expression_statement "DAT_00089000 = DAT_00089000 + 1;" (assignment_expression "DAT_00089000 = DAT_00089000 + 1" identifier = (binary_expression "DAT_00089000 + 1" identifier + number_literal)) ;) (expression_statement "(&DAT_00089038)[iVar9] = iVar6;" (assignment_expression "(&DAT_00089038)[iVar9] = iVar6" (subscript_expression "(&DAT_00089038)[iVar9]" (parenthesized_expression "(&DAT_00089038)" ( (pointer_expression "&DAT_00089038" & identifier) )) [ identifier ]) = identifier) ;) (return_statement "return true;" return true ;) })) (labeled_statement "LAB_00046ad0:\n    uVar7 = dcgettext(0,"junk `%s\' after register",5);" statement_identifier : (expression_statement "uVar7 = dcgettext(0,"junk `%s\' after register",5);" (assignment_expression "uVar7 = dcgettext(0,"junk `%s\' after register",5)" identifier = (call_expression "dcgettext(0,"junk `%s\' after register",5)" identifier (argument_list "(0,"junk `%s\' after register",5)" ( number_literal , (string_literal ""junk `%s\' after register"" " string_content escape_sequence string_content ") , number_literal )))) ;)) (expression_statement "FUN_0002bd60(uVar7,pbVar10);" (call_expression "FUN_0002bd60(uVar7,pbVar10)" identifier (argument_list "(uVar7,pbVar10)" ( identifier , identifier ))) ;) (return_statement "return false;" return false ;) })) (if_statement "if ((*(ushort *)(iVar6 + 4) & 0x180) == 0) goto LAB_00046ad0;" if (parenthesized_expression "((*(ushort *)(iVar6 + 4) & 0x180) == 0)" ( (binary_expression "(*(ushort *)(iVar6 + 4) & 0x180) == 0" (parenthesized_expression "(*(ushort *)(iVar6 + 4) & 0x180)" ( (binary_expression "*(ushort *)(iVar6 + 4) & 0x180" (pointer_expression "*(ushort *)(iVar6 + 4)" * (cast_expression "(ushort *)(iVar6 + 4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00046ad0;" goto statement_identifier ;)) (switch_statement "switch(*(undefined1 *)(iVar6 + 0xd)) {\n  case 0:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_es_0007fff8;\n    break;\n  case 1:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_cs_0007ffc8;\n    break;\n  case 2:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ss_0007ffcc;\n    break;\n  case 3:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ds_0007ff80;\n    break;\n  case 4:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_fs_0007ffac;\n    break;\n  case 5:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_gs_0007ff68;\n  }" switch (parenthesized_expression "(*(undefined1 *)(iVar6 + 0xd))" ( (pointer_expression "*(undefined1 *)(iVar6 + 0xd)" * (cast_expression "(undefined1 *)(iVar6 + 0xd)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xd)" ( (binary_expression "iVar6 + 0xd" identifier + number_literal) )))) )) (compound_statement "{\n  case 0:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_es_0007fff8;\n    break;\n  case 1:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_cs_0007ffc8;\n    break;\n  case 2:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ss_0007ffcc;\n    break;\n  case 3:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ds_0007ff80;\n    break;\n  case 4:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_fs_0007ffac;\n    break;\n  case 5:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_gs_0007ff68;\n  }" { (case_statement "case 0:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_es_0007fff8;\n    break;" case number_literal : (expression_statement "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_es_0007fff8;" (assignment_expression "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_es_0007fff8" (pointer_expression "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4)" * (cast_expression "(undefined **)(&DAT_00089080 + DAT_00089008 * 4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_00089080 + DAT_00089008 * 4)" ( (binary_expression "&DAT_00089080 + DAT_00089008 * 4" (pointer_expression "&DAT_00089080" & identifier) + (binary_expression "DAT_00089008 * 4" identifier * number_literal)) )))) = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 1:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_cs_0007ffc8;\n    break;" case number_literal : (expression_statement "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_cs_0007ffc8;" (assignment_expression "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_cs_0007ffc8" (pointer_expression "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4)" * (cast_expression "(undefined **)(&DAT_00089080 + DAT_00089008 * 4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_00089080 + DAT_00089008 * 4)" ( (binary_expression "&DAT_00089080 + DAT_00089008 * 4" (pointer_expression "&DAT_00089080" & identifier) + (binary_expression "DAT_00089008 * 4" identifier * number_literal)) )))) = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 2:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ss_0007ffcc;\n    break;" case number_literal : (expression_statement "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ss_0007ffcc;" (assignment_expression "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ss_0007ffcc" (pointer_expression "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4)" * (cast_expression "(undefined **)(&DAT_00089080 + DAT_00089008 * 4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_00089080 + DAT_00089008 * 4)" ( (binary_expression "&DAT_00089080 + DAT_00089008 * 4" (pointer_expression "&DAT_00089080" & identifier) + (binary_expression "DAT_00089008 * 4" identifier * number_literal)) )))) = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 3:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ds_0007ff80;\n    break;" case number_literal : (expression_statement "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ds_0007ff80;" (assignment_expression "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ds_0007ff80" (pointer_expression "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4)" * (cast_expression "(undefined **)(&DAT_00089080 + DAT_00089008 * 4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_00089080 + DAT_00089008 * 4)" ( (binary_expression "&DAT_00089080 + DAT_00089008 * 4" (pointer_expression "&DAT_00089080" & identifier) + (binary_expression "DAT_00089008 * 4" identifier * number_literal)) )))) = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_fs_0007ffac;\n    break;" case number_literal : (expression_statement "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_fs_0007ffac;" (assignment_expression "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_fs_0007ffac" (pointer_expression "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4)" * (cast_expression "(undefined **)(&DAT_00089080 + DAT_00089008 * 4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_00089080 + DAT_00089008 * 4)" ( (binary_expression "&DAT_00089080 + DAT_00089008 * 4" (pointer_expression "&DAT_00089080" & identifier) + (binary_expression "DAT_00089008 * 4" identifier * number_literal)) )))) = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 5:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_gs_0007ff68;" case number_literal : (expression_statement "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_gs_0007ff68;" (assignment_expression "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_gs_0007ff68" (pointer_expression "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4)" * (cast_expression "(undefined **)(&DAT_00089080 + DAT_00089008 * 4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_00089080 + DAT_00089008 * 4)" ( (binary_expression "&DAT_00089080 + DAT_00089008 * 4" (pointer_expression "&DAT_00089080" & identifier) + (binary_expression "DAT_00089008 * 4" identifier * number_literal)) )))) = identifier) ;)) })) (expression_statement "bVar4 = pbVar10[1];" (assignment_expression "bVar4 = pbVar10[1]" identifier = (subscript_expression "pbVar10[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar16 = pbVar10 + 1;" (assignment_expression "pbVar16 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) (if_statement "if (bVar4 == 0x20) {\n    bVar4 = pbVar10[2];\n    pbVar16 = pbVar10 + 2;\n  }" if (parenthesized_expression "(bVar4 == 0x20)" ( (binary_expression "bVar4 == 0x20" identifier == number_literal) )) (compound_statement "{\n    bVar4 = pbVar10[2];\n    pbVar16 = pbVar10 + 2;\n  }" { (expression_statement "bVar4 = pbVar10[2];" (assignment_expression "bVar4 = pbVar10[2]" identifier = (subscript_expression "pbVar10[2]" identifier [ number_literal ])) ;) (expression_statement "pbVar16 = pbVar10 + 2;" (assignment_expression "pbVar16 = pbVar10 + 2" identifier = (binary_expression "pbVar10 + 2" identifier + number_literal)) ;) })) (if_statement "if (((&DAT_00089120)[bVar4] == '\0') && ((&DAT_00089220)[bVar4] == '\0')) {\n    if (bVar4 != 0x28) {\n      if (bVar4 != 0x2a) {\n        pcVar13 = "bad memory operand `%s\'";\n        goto LAB_00046f4c;\n      }\nLAB_00046c3c:\n      if (pbVar16[1] == 0x20) {\n        pbVar16 = pbVar16 + 2;\n      }\n      else {\n        pbVar16 = pbVar16 + 1;\n      }\n      pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);\n      *pbVar10 = *pbVar10 | 2;\n    }\n  }\n  else if (bVar4 == 0x2a) goto LAB_00046c3c;" if (parenthesized_expression "(((&DAT_00089120)[bVar4] == '\0') && ((&DAT_00089220)[bVar4] == '\0'))" ( (binary_expression "((&DAT_00089120)[bVar4] == '\0') && ((&DAT_00089220)[bVar4] == '\0')" (parenthesized_expression "((&DAT_00089120)[bVar4] == '\0')" ( (binary_expression "(&DAT_00089120)[bVar4] == '\0'" (subscript_expression "(&DAT_00089120)[bVar4]" (parenthesized_expression "(&DAT_00089120)" ( (pointer_expression "&DAT_00089120" & identifier) )) [ identifier ]) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "((&DAT_00089220)[bVar4] == '\0')" ( (binary_expression "(&DAT_00089220)[bVar4] == '\0'" (subscript_expression "(&DAT_00089220)[bVar4]" (parenthesized_expression "(&DAT_00089220)" ( (pointer_expression "&DAT_00089220" & identifier) )) [ identifier ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    if (bVar4 != 0x28) {\n      if (bVar4 != 0x2a) {\n        pcVar13 = "bad memory operand `%s\'";\n        goto LAB_00046f4c;\n      }\nLAB_00046c3c:\n      if (pbVar16[1] == 0x20) {\n        pbVar16 = pbVar16 + 2;\n      }\n      else {\n        pbVar16 = pbVar16 + 1;\n      }\n      pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);\n      *pbVar10 = *pbVar10 | 2;\n    }\n  }" { (if_statement "if (bVar4 != 0x28) {\n      if (bVar4 != 0x2a) {\n        pcVar13 = "bad memory operand `%s\'";\n        goto LAB_00046f4c;\n      }\nLAB_00046c3c:\n      if (pbVar16[1] == 0x20) {\n        pbVar16 = pbVar16 + 2;\n      }\n      else {\n        pbVar16 = pbVar16 + 1;\n      }\n      pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);\n      *pbVar10 = *pbVar10 | 2;\n    }" if (parenthesized_expression "(bVar4 != 0x28)" ( (binary_expression "bVar4 != 0x28" identifier != number_literal) )) (compound_statement "{\n      if (bVar4 != 0x2a) {\n        pcVar13 = "bad memory operand `%s\'";\n        goto LAB_00046f4c;\n      }\nLAB_00046c3c:\n      if (pbVar16[1] == 0x20) {\n        pbVar16 = pbVar16 + 2;\n      }\n      else {\n        pbVar16 = pbVar16 + 1;\n      }\n      pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);\n      *pbVar10 = *pbVar10 | 2;\n    }" { (if_statement "if (bVar4 != 0x2a) {\n        pcVar13 = "bad memory operand `%s\'";\n        goto LAB_00046f4c;\n      }" if (parenthesized_expression "(bVar4 != 0x2a)" ( (binary_expression "bVar4 != 0x2a" identifier != number_literal) )) (compound_statement "{\n        pcVar13 = "bad memory operand `%s\'";\n        goto LAB_00046f4c;\n      }" { (expression_statement "pcVar13 = "bad memory operand `%s\'";" (assignment_expression "pcVar13 = "bad memory operand `%s\'"" identifier = (string_literal ""bad memory operand `%s\'"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_00046f4c;" goto statement_identifier ;) })) (labeled_statement "LAB_00046c3c:\n      if (pbVar16[1] == 0x20) {\n        pbVar16 = pbVar16 + 2;\n      }\n      else {\n        pbVar16 = pbVar16 + 1;\n      }" statement_identifier : (if_statement "if (pbVar16[1] == 0x20) {\n        pbVar16 = pbVar16 + 2;\n      }\n      else {\n        pbVar16 = pbVar16 + 1;\n      }" if (parenthesized_expression "(pbVar16[1] == 0x20)" ( (binary_expression "pbVar16[1] == 0x20" (subscript_expression "pbVar16[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        pbVar16 = pbVar16 + 2;\n      }" { (expression_statement "pbVar16 = pbVar16 + 2;" (assignment_expression "pbVar16 = pbVar16 + 2" identifier = (binary_expression "pbVar16 + 2" identifier + number_literal)) ;) }) (else_clause "else {\n        pbVar16 = pbVar16 + 1;\n      }" else (compound_statement "{\n        pbVar16 = pbVar16 + 1;\n      }" { (expression_statement "pbVar16 = pbVar16 + 1;" (assignment_expression "pbVar16 = pbVar16 + 1" identifier = (binary_expression "pbVar16 + 1" identifier + number_literal)) ;) })))) (expression_statement "pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);" (assignment_expression "pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3)" identifier = (cast_expression "(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&DAT_00089010 + DAT_00080558 * 8 + 3)" ( (binary_expression "(int)&DAT_00089010 + DAT_00080558 * 8 + 3" (binary_expression "(int)&DAT_00089010 + DAT_00080558 * 8" (cast_expression "(int)&DAT_00089010" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&DAT_00089010" & identifier)) + (binary_expression "DAT_00080558 * 8" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "*pbVar10 = *pbVar10 | 2;" (assignment_expression "*pbVar10 = *pbVar10 | 2" (pointer_expression "*pbVar10" * identifier) = (binary_expression "*pbVar10 | 2" (pointer_expression "*pbVar10" * identifier) | number_literal)) ;) })) }) (else_clause "else if (bVar4 == 0x2a) goto LAB_00046c3c;" else (if_statement "if (bVar4 == 0x2a) goto LAB_00046c3c;" if (parenthesized_expression "(bVar4 == 0x2a)" ( (binary_expression "bVar4 == 0x2a" identifier == number_literal) )) (goto_statement "goto LAB_00046c3c;" goto statement_identifier ;)))) (labeled_statement "LAB_00046c60:\n  if (DAT_00089008 == 1) {\n    iVar9 = FUN_00046270();\n    if (iVar9 == 0) {\n      return false;\n    }\n    if (DAT_00089008 != 1) goto LAB_00046c6f;\n    puVar11 = (undefined4 *)*DAT_00088f88;\n    if ((*(byte *)((int)puVar11 + 0x27) & 1) == 0) goto LAB_0004729e;\n  }\n  else {\nLAB_00046c6f:\n    if (DAT_00089008 == 2) {\n      puVar11 = (undefined4 *)*DAT_00088f88;\nLAB_0004729e:\n      uVar7 = *puVar11;\n      uVar12 = dcgettext(0,"too many memory references for `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7);\n      return false;\n    }\n  }" statement_identifier : (if_statement "if (DAT_00089008 == 1) {\n    iVar9 = FUN_00046270();\n    if (iVar9 == 0) {\n      return false;\n    }\n    if (DAT_00089008 != 1) goto LAB_00046c6f;\n    puVar11 = (undefined4 *)*DAT_00088f88;\n    if ((*(byte *)((int)puVar11 + 0x27) & 1) == 0) goto LAB_0004729e;\n  }\n  else {\nLAB_00046c6f:\n    if (DAT_00089008 == 2) {\n      puVar11 = (undefined4 *)*DAT_00088f88;\nLAB_0004729e:\n      uVar7 = *puVar11;\n      uVar12 = dcgettext(0,"too many memory references for `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7);\n      return false;\n    }\n  }" if (parenthesized_expression "(DAT_00089008 == 1)" ( (binary_expression "DAT_00089008 == 1" identifier == number_literal) )) (compound_statement "{\n    iVar9 = FUN_00046270();\n    if (iVar9 == 0) {\n      return false;\n    }\n    if (DAT_00089008 != 1) goto LAB_00046c6f;\n    puVar11 = (undefined4 *)*DAT_00088f88;\n    if ((*(byte *)((int)puVar11 + 0x27) & 1) == 0) goto LAB_0004729e;\n  }" { (expression_statement "iVar9 = FUN_00046270();" (assignment_expression "iVar9 = FUN_00046270()" identifier = (call_expression "FUN_00046270()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar9 == 0) {\n      return false;\n    }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) (if_statement "if (DAT_00089008 != 1) goto LAB_00046c6f;" if (parenthesized_expression "(DAT_00089008 != 1)" ( (binary_expression "DAT_00089008 != 1" identifier != number_literal) )) (goto_statement "goto LAB_00046c6f;" goto statement_identifier ;)) (expression_statement "puVar11 = (undefined4 *)*DAT_00088f88;" (assignment_expression "puVar11 = (undefined4 *)*DAT_00088f88" identifier = (cast_expression "(undefined4 *)*DAT_00088f88" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_00088f88" * identifier))) ;) (if_statement "if ((*(byte *)((int)puVar11 + 0x27) & 1) == 0) goto LAB_0004729e;" if (parenthesized_expression "((*(byte *)((int)puVar11 + 0x27) & 1) == 0)" ( (binary_expression "(*(byte *)((int)puVar11 + 0x27) & 1) == 0" (parenthesized_expression "(*(byte *)((int)puVar11 + 0x27) & 1)" ( (binary_expression "*(byte *)((int)puVar11 + 0x27) & 1" (pointer_expression "*(byte *)((int)puVar11 + 0x27)" * (cast_expression "(byte *)((int)puVar11 + 0x27)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 0x27)" ( (binary_expression "(int)puVar11 + 0x27" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0004729e;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_00046c6f:\n    if (DAT_00089008 == 2) {\n      puVar11 = (undefined4 *)*DAT_00088f88;\nLAB_0004729e:\n      uVar7 = *puVar11;\n      uVar12 = dcgettext(0,"too many memory references for `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7);\n      return false;\n    }\n  }" else (compound_statement "{\nLAB_00046c6f:\n    if (DAT_00089008 == 2) {\n      puVar11 = (undefined4 *)*DAT_00088f88;\nLAB_0004729e:\n      uVar7 = *puVar11;\n      uVar12 = dcgettext(0,"too many memory references for `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7);\n      return false;\n    }\n  }" { (labeled_statement "LAB_00046c6f:\n    if (DAT_00089008 == 2) {\n      puVar11 = (undefined4 *)*DAT_00088f88;\nLAB_0004729e:\n      uVar7 = *puVar11;\n      uVar12 = dcgettext(0,"too many memory references for `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7);\n      return false;\n    }" statement_identifier : (if_statement "if (DAT_00089008 == 2) {\n      puVar11 = (undefined4 *)*DAT_00088f88;\nLAB_0004729e:\n      uVar7 = *puVar11;\n      uVar12 = dcgettext(0,"too many memory references for `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7);\n      return false;\n    }" if (parenthesized_expression "(DAT_00089008 == 2)" ( (binary_expression "DAT_00089008 == 2" identifier == number_literal) )) (compound_statement "{\n      puVar11 = (undefined4 *)*DAT_00088f88;\nLAB_0004729e:\n      uVar7 = *puVar11;\n      uVar12 = dcgettext(0,"too many memory references for `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7);\n      return false;\n    }" { (expression_statement "puVar11 = (undefined4 *)*DAT_00088f88;" (assignment_expression "puVar11 = (undefined4 *)*DAT_00088f88" identifier = (cast_expression "(undefined4 *)*DAT_00088f88" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_00088f88" * identifier))) ;) (labeled_statement "LAB_0004729e:\n      uVar7 = *puVar11;" statement_identifier : (expression_statement "uVar7 = *puVar11;" (assignment_expression "uVar7 = *puVar11" identifier = (pointer_expression "*puVar11" * identifier)) ;)) (expression_statement "uVar12 = dcgettext(0,"too many memory references for `%s\'",5);" (assignment_expression "uVar12 = dcgettext(0,"too many memory references for `%s\'",5)" identifier = (call_expression "dcgettext(0,"too many memory references for `%s\'",5)" identifier (argument_list "(0,"too many memory references for `%s\'",5)" ( number_literal , (string_literal ""too many memory references for `%s\'"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_0002bd60(uVar12,uVar7);" (call_expression "FUN_0002bd60(uVar12,uVar7)" identifier (argument_list "(uVar12,uVar7)" ( identifier , identifier ))) ;) (return_statement "return false;" return false ;) }))) })))) (expression_statement "sVar8 = strlen((char *)pbVar16);" (assignment_expression "sVar8 = strlen((char *)pbVar16)" identifier = (call_expression "strlen((char *)pbVar16)" identifier (argument_list "((char *)pbVar16)" ( (cast_expression "(char *)pbVar16" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "local_44 = pbVar16 + sVar8;" (assignment_expression "local_44 = pbVar16 + sVar8" identifier = (binary_expression "pbVar16 + sVar8" identifier + identifier)) ;) (expression_statement "pbVar10 = (byte *)strchr((char *)pbVar16,0x7b);" (assignment_expression "pbVar10 = (byte *)strchr((char *)pbVar16,0x7b)" identifier = (cast_expression "(byte *)strchr((char *)pbVar16,0x7b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "strchr((char *)pbVar16,0x7b)" identifier (argument_list "((char *)pbVar16,0x7b)" ( (cast_expression "(char *)pbVar16" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))))) ;) (if_statement "if (((pbVar10 != (byte *)0x0) && (pbVar10 < local_44)) &&\n     (iVar9 = FUN_00045070(), local_44 = pbVar10, iVar9 == 0)) {\n    return false;\n  }" if (parenthesized_expression "(((pbVar10 != (byte *)0x0) && (pbVar10 < local_44)) &&\n     (iVar9 = FUN_00045070(), local_44 = pbVar10, iVar9 == 0))" ( (binary_expression "((pbVar10 != (byte *)0x0) && (pbVar10 < local_44)) &&\n     (iVar9 = FUN_00045070(), local_44 = pbVar10, iVar9 == 0)" (parenthesized_expression "((pbVar10 != (byte *)0x0) && (pbVar10 < local_44))" ( (binary_expression "(pbVar10 != (byte *)0x0) && (pbVar10 < local_44)" (parenthesized_expression "(pbVar10 != (byte *)0x0)" ( (binary_expression "pbVar10 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pbVar10 < local_44)" ( (binary_expression "pbVar10 < local_44" identifier < identifier) ))) )) && (parenthesized_expression "(iVar9 = FUN_00045070(), local_44 = pbVar10, iVar9 == 0)" ( (comma_expression "iVar9 = FUN_00045070(), local_44 = pbVar10, iVar9 == 0" (assignment_expression "iVar9 = FUN_00045070()" identifier = (call_expression "FUN_00045070()" identifier (argument_list "()" ( )))) , (comma_expression "local_44 = pbVar10, iVar9 == 0" (assignment_expression "local_44 = pbVar10" identifier = identifier) , (binary_expression "iVar9 == 0" identifier == number_literal))) ))) )) (compound_statement "{\n    return false;\n  }" { (return_statement "return false;" return false ;) })) (expression_statement "pbVar10 = local_44 + -1;" (assignment_expression "pbVar10 = local_44 + -1" identifier = (binary_expression "local_44 + -1" identifier + number_literal)) ;) (if_statement "if (local_44[-1] == 0x20) {\n    pbVar10 = local_44 + -2;\n    local_44 = local_44 + -1;\n  }" if (parenthesized_expression "(local_44[-1] == 0x20)" ( (binary_expression "local_44[-1] == 0x20" (subscript_expression "local_44[-1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    pbVar10 = local_44 + -2;\n    local_44 = local_44 + -1;\n  }" { (expression_statement "pbVar10 = local_44 + -2;" (assignment_expression "pbVar10 = local_44 + -2" identifier = (binary_expression "local_44 + -2" identifier + number_literal)) ;) (expression_statement "local_44 = local_44 + -1;" (assignment_expression "local_44 = local_44 + -1" identifier = (binary_expression "local_44 + -1" identifier + number_literal)) ;) })) (expression_statement "pbVar15 = local_44;" (assignment_expression "pbVar15 = local_44" identifier = identifier) ;) (if_statement "if (*pbVar10 == 0x29) {\n    bVar4 = pbVar10[-1];\n    iVar9 = 1;\n    pbVar15 = pbVar10 + -1;\n    if (bVar4 == 0x29) goto LAB_000471f8;\nLAB_000471e0:\n    if (bVar4 != 0x28) goto LAB_000471eb;\n    iVar9 = iVar9 + -1;\n    do {\n      if (iVar9 == 0) {\n        bVar4 = pbVar15[1];\n        if (bVar4 == 0x20) {\n          bVar4 = pbVar10[1];\n          pbVar10 = pbVar15 + 2;\n        }\n        if (bVar4 == 0x2c) {\n          pbVar2 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar2 = *pbVar2 | 0x40;\n          if (DAT_00089074 != 0) goto LAB_00047347;\n          bVar4 = *pbVar10;\n        }\n        else {\n          DAT_00089074 = FUN_00044f30();\n          if (DAT_00089074 == 0) {\n            if (*pbVar10 == 0x25) {\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }\n            if (pbVar16 != local_44) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar10 = *pbVar10 | 0x40;\nLAB_00047347:\n          bVar4 = *local_28;\n          pbVar10 = local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            pbVar10 = local_28 + 1;\n          }\n        }\n        if (bVar4 != 0x2c) {\n          if (bVar4 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }\n          break;\n        }\n        local_44 = pbVar10 + 2;\n        if (pbVar10[1] != 0x20) {\n          local_44 = pbVar10 + 1;\n        }\n        DAT_00089078 = FUN_00044f30();\n        uVar7 = DAT_00089978;\n        if (DAT_00089078 == 0) {\n          if (*local_44 == 0x25) {\n            pcVar13 = strchr((char *)local_44,0x2c);\n            if (pcVar13 != (char *)0x0) {\n              *pcVar13 = '\0';\n            }\n            uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            FUN_0002bd60(uVar7,local_44);\n            return false;\n          }\n          if (*local_44 == 0x29) {\n            uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1);\n            FUN_0002bd60(uVar7,0x29);\n            return false;\n          }\n        }\n        else {\n          bVar4 = *local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            local_28 = local_28 + 1;\n          }\n          if (bVar4 != 0x2c) {\n            DAT_00089978 = (byte *)uVar7;\n            if (bVar4 != 0x29) {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          bVar4 = local_28[1];\n          local_44 = local_28 + 1;\n          if (bVar4 == 0x20) {\n            local_44 = local_28 + 2;\n            bVar4 = local_28[2];\n          }\n          DAT_00089978 = (byte *)uVar7;\n          if (bVar4 == 0x29) break;\n        }\n        DAT_00089978 = local_44;\n        lVar18 = FUN_0002d860();\n        if (lVar18 == 2) {\n          DAT_0008907c = 1;\n          sVar14 = 1;\nLAB_0004751e:\n          if (DAT_00089078 == 0) {\n            uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);\n            FUN_0002bc80(uVar12,1 << sVar14);\n            DAT_0008907c = 0;\n          }\n        }\n        else {\n          if (-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18)) {\n            if (lVar18 == 4) {\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }\n            else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (lVar18 != 1) {\nLAB_0004760c:\n            bVar4 = *DAT_00089978;\n            *DAT_00089978 = 0;\n            uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            FUN_0002bd60(uVar12,local_44);\n            *DAT_00089978 = bVar4;\n            DAT_00089978 = (byte *)uVar7;\n            return false;\n          }\n          DAT_0008907c = 0;\n        }\n        if (DAT_00089978 == (byte *)0x0) {\n          DAT_00089978 = (byte *)uVar7;\n          return false;\n        }\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (bVar4 != 0x29) {\n          pcVar13 = "expecting `)\' after scale factor in `%s\'";\nLAB_00047255:\n          uVar7 = dcgettext(0,pcVar13,5);\n          FUN_0002bd60(uVar7,param_1);\n          return false;\n        }\n        break;\n      }\nLAB_000471eb:\n      pbVar10 = pbVar15;\n      bVar4 = pbVar10[-1];\n      pbVar15 = pbVar10 + -1;\n      if (bVar4 != 0x29) goto LAB_000471e0;\nLAB_000471f8:\n      iVar9 = iVar9 + 1;\n    } while( true );\n  }" if (parenthesized_expression "(*pbVar10 == 0x29)" ( (binary_expression "*pbVar10 == 0x29" (pointer_expression "*pbVar10" * identifier) == number_literal) )) (compound_statement "{\n    bVar4 = pbVar10[-1];\n    iVar9 = 1;\n    pbVar15 = pbVar10 + -1;\n    if (bVar4 == 0x29) goto LAB_000471f8;\nLAB_000471e0:\n    if (bVar4 != 0x28) goto LAB_000471eb;\n    iVar9 = iVar9 + -1;\n    do {\n      if (iVar9 == 0) {\n        bVar4 = pbVar15[1];\n        if (bVar4 == 0x20) {\n          bVar4 = pbVar10[1];\n          pbVar10 = pbVar15 + 2;\n        }\n        if (bVar4 == 0x2c) {\n          pbVar2 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar2 = *pbVar2 | 0x40;\n          if (DAT_00089074 != 0) goto LAB_00047347;\n          bVar4 = *pbVar10;\n        }\n        else {\n          DAT_00089074 = FUN_00044f30();\n          if (DAT_00089074 == 0) {\n            if (*pbVar10 == 0x25) {\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }\n            if (pbVar16 != local_44) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar10 = *pbVar10 | 0x40;\nLAB_00047347:\n          bVar4 = *local_28;\n          pbVar10 = local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            pbVar10 = local_28 + 1;\n          }\n        }\n        if (bVar4 != 0x2c) {\n          if (bVar4 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }\n          break;\n        }\n        local_44 = pbVar10 + 2;\n        if (pbVar10[1] != 0x20) {\n          local_44 = pbVar10 + 1;\n        }\n        DAT_00089078 = FUN_00044f30();\n        uVar7 = DAT_00089978;\n        if (DAT_00089078 == 0) {\n          if (*local_44 == 0x25) {\n            pcVar13 = strchr((char *)local_44,0x2c);\n            if (pcVar13 != (char *)0x0) {\n              *pcVar13 = '\0';\n            }\n            uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            FUN_0002bd60(uVar7,local_44);\n            return false;\n          }\n          if (*local_44 == 0x29) {\n            uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1);\n            FUN_0002bd60(uVar7,0x29);\n            return false;\n          }\n        }\n        else {\n          bVar4 = *local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            local_28 = local_28 + 1;\n          }\n          if (bVar4 != 0x2c) {\n            DAT_00089978 = (byte *)uVar7;\n            if (bVar4 != 0x29) {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          bVar4 = local_28[1];\n          local_44 = local_28 + 1;\n          if (bVar4 == 0x20) {\n            local_44 = local_28 + 2;\n            bVar4 = local_28[2];\n          }\n          DAT_00089978 = (byte *)uVar7;\n          if (bVar4 == 0x29) break;\n        }\n        DAT_00089978 = local_44;\n        lVar18 = FUN_0002d860();\n        if (lVar18 == 2) {\n          DAT_0008907c = 1;\n          sVar14 = 1;\nLAB_0004751e:\n          if (DAT_00089078 == 0) {\n            uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);\n            FUN_0002bc80(uVar12,1 << sVar14);\n            DAT_0008907c = 0;\n          }\n        }\n        else {\n          if (-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18)) {\n            if (lVar18 == 4) {\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }\n            else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (lVar18 != 1) {\nLAB_0004760c:\n            bVar4 = *DAT_00089978;\n            *DAT_00089978 = 0;\n            uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            FUN_0002bd60(uVar12,local_44);\n            *DAT_00089978 = bVar4;\n            DAT_00089978 = (byte *)uVar7;\n            return false;\n          }\n          DAT_0008907c = 0;\n        }\n        if (DAT_00089978 == (byte *)0x0) {\n          DAT_00089978 = (byte *)uVar7;\n          return false;\n        }\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (bVar4 != 0x29) {\n          pcVar13 = "expecting `)\' after scale factor in `%s\'";\nLAB_00047255:\n          uVar7 = dcgettext(0,pcVar13,5);\n          FUN_0002bd60(uVar7,param_1);\n          return false;\n        }\n        break;\n      }\nLAB_000471eb:\n      pbVar10 = pbVar15;\n      bVar4 = pbVar10[-1];\n      pbVar15 = pbVar10 + -1;\n      if (bVar4 != 0x29) goto LAB_000471e0;\nLAB_000471f8:\n      iVar9 = iVar9 + 1;\n    } while( true );\n  }" { (expression_statement "bVar4 = pbVar10[-1];" (assignment_expression "bVar4 = pbVar10[-1]" identifier = (subscript_expression "pbVar10[-1]" identifier [ number_literal ])) ;) (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) (expression_statement "pbVar15 = pbVar10 + -1;" (assignment_expression "pbVar15 = pbVar10 + -1" identifier = (binary_expression "pbVar10 + -1" identifier + number_literal)) ;) (if_statement "if (bVar4 == 0x29) goto LAB_000471f8;" if (parenthesized_expression "(bVar4 == 0x29)" ( (binary_expression "bVar4 == 0x29" identifier == number_literal) )) (goto_statement "goto LAB_000471f8;" goto statement_identifier ;)) (labeled_statement "LAB_000471e0:\n    if (bVar4 != 0x28) goto LAB_000471eb;" statement_identifier : (if_statement "if (bVar4 != 0x28) goto LAB_000471eb;" if (parenthesized_expression "(bVar4 != 0x28)" ( (binary_expression "bVar4 != 0x28" identifier != number_literal) )) (goto_statement "goto LAB_000471eb;" goto statement_identifier ;))) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (do_statement "do {\n      if (iVar9 == 0) {\n        bVar4 = pbVar15[1];\n        if (bVar4 == 0x20) {\n          bVar4 = pbVar10[1];\n          pbVar10 = pbVar15 + 2;\n        }\n        if (bVar4 == 0x2c) {\n          pbVar2 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar2 = *pbVar2 | 0x40;\n          if (DAT_00089074 != 0) goto LAB_00047347;\n          bVar4 = *pbVar10;\n        }\n        else {\n          DAT_00089074 = FUN_00044f30();\n          if (DAT_00089074 == 0) {\n            if (*pbVar10 == 0x25) {\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }\n            if (pbVar16 != local_44) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar10 = *pbVar10 | 0x40;\nLAB_00047347:\n          bVar4 = *local_28;\n          pbVar10 = local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            pbVar10 = local_28 + 1;\n          }\n        }\n        if (bVar4 != 0x2c) {\n          if (bVar4 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }\n          break;\n        }\n        local_44 = pbVar10 + 2;\n        if (pbVar10[1] != 0x20) {\n          local_44 = pbVar10 + 1;\n        }\n        DAT_00089078 = FUN_00044f30();\n        uVar7 = DAT_00089978;\n        if (DAT_00089078 == 0) {\n          if (*local_44 == 0x25) {\n            pcVar13 = strchr((char *)local_44,0x2c);\n            if (pcVar13 != (char *)0x0) {\n              *pcVar13 = '\0';\n            }\n            uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            FUN_0002bd60(uVar7,local_44);\n            return false;\n          }\n          if (*local_44 == 0x29) {\n            uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1);\n            FUN_0002bd60(uVar7,0x29);\n            return false;\n          }\n        }\n        else {\n          bVar4 = *local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            local_28 = local_28 + 1;\n          }\n          if (bVar4 != 0x2c) {\n            DAT_00089978 = (byte *)uVar7;\n            if (bVar4 != 0x29) {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          bVar4 = local_28[1];\n          local_44 = local_28 + 1;\n          if (bVar4 == 0x20) {\n            local_44 = local_28 + 2;\n            bVar4 = local_28[2];\n          }\n          DAT_00089978 = (byte *)uVar7;\n          if (bVar4 == 0x29) break;\n        }\n        DAT_00089978 = local_44;\n        lVar18 = FUN_0002d860();\n        if (lVar18 == 2) {\n          DAT_0008907c = 1;\n          sVar14 = 1;\nLAB_0004751e:\n          if (DAT_00089078 == 0) {\n            uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);\n            FUN_0002bc80(uVar12,1 << sVar14);\n            DAT_0008907c = 0;\n          }\n        }\n        else {\n          if (-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18)) {\n            if (lVar18 == 4) {\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }\n            else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (lVar18 != 1) {\nLAB_0004760c:\n            bVar4 = *DAT_00089978;\n            *DAT_00089978 = 0;\n            uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            FUN_0002bd60(uVar12,local_44);\n            *DAT_00089978 = bVar4;\n            DAT_00089978 = (byte *)uVar7;\n            return false;\n          }\n          DAT_0008907c = 0;\n        }\n        if (DAT_00089978 == (byte *)0x0) {\n          DAT_00089978 = (byte *)uVar7;\n          return false;\n        }\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (bVar4 != 0x29) {\n          pcVar13 = "expecting `)\' after scale factor in `%s\'";\nLAB_00047255:\n          uVar7 = dcgettext(0,pcVar13,5);\n          FUN_0002bd60(uVar7,param_1);\n          return false;\n        }\n        break;\n      }\nLAB_000471eb:\n      pbVar10 = pbVar15;\n      bVar4 = pbVar10[-1];\n      pbVar15 = pbVar10 + -1;\n      if (bVar4 != 0x29) goto LAB_000471e0;\nLAB_000471f8:\n      iVar9 = iVar9 + 1;\n    } while( true );" do (compound_statement "{\n      if (iVar9 == 0) {\n        bVar4 = pbVar15[1];\n        if (bVar4 == 0x20) {\n          bVar4 = pbVar10[1];\n          pbVar10 = pbVar15 + 2;\n        }\n        if (bVar4 == 0x2c) {\n          pbVar2 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar2 = *pbVar2 | 0x40;\n          if (DAT_00089074 != 0) goto LAB_00047347;\n          bVar4 = *pbVar10;\n        }\n        else {\n          DAT_00089074 = FUN_00044f30();\n          if (DAT_00089074 == 0) {\n            if (*pbVar10 == 0x25) {\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }\n            if (pbVar16 != local_44) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar10 = *pbVar10 | 0x40;\nLAB_00047347:\n          bVar4 = *local_28;\n          pbVar10 = local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            pbVar10 = local_28 + 1;\n          }\n        }\n        if (bVar4 != 0x2c) {\n          if (bVar4 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }\n          break;\n        }\n        local_44 = pbVar10 + 2;\n        if (pbVar10[1] != 0x20) {\n          local_44 = pbVar10 + 1;\n        }\n        DAT_00089078 = FUN_00044f30();\n        uVar7 = DAT_00089978;\n        if (DAT_00089078 == 0) {\n          if (*local_44 == 0x25) {\n            pcVar13 = strchr((char *)local_44,0x2c);\n            if (pcVar13 != (char *)0x0) {\n              *pcVar13 = '\0';\n            }\n            uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            FUN_0002bd60(uVar7,local_44);\n            return false;\n          }\n          if (*local_44 == 0x29) {\n            uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1);\n            FUN_0002bd60(uVar7,0x29);\n            return false;\n          }\n        }\n        else {\n          bVar4 = *local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            local_28 = local_28 + 1;\n          }\n          if (bVar4 != 0x2c) {\n            DAT_00089978 = (byte *)uVar7;\n            if (bVar4 != 0x29) {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          bVar4 = local_28[1];\n          local_44 = local_28 + 1;\n          if (bVar4 == 0x20) {\n            local_44 = local_28 + 2;\n            bVar4 = local_28[2];\n          }\n          DAT_00089978 = (byte *)uVar7;\n          if (bVar4 == 0x29) break;\n        }\n        DAT_00089978 = local_44;\n        lVar18 = FUN_0002d860();\n        if (lVar18 == 2) {\n          DAT_0008907c = 1;\n          sVar14 = 1;\nLAB_0004751e:\n          if (DAT_00089078 == 0) {\n            uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);\n            FUN_0002bc80(uVar12,1 << sVar14);\n            DAT_0008907c = 0;\n          }\n        }\n        else {\n          if (-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18)) {\n            if (lVar18 == 4) {\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }\n            else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (lVar18 != 1) {\nLAB_0004760c:\n            bVar4 = *DAT_00089978;\n            *DAT_00089978 = 0;\n            uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            FUN_0002bd60(uVar12,local_44);\n            *DAT_00089978 = bVar4;\n            DAT_00089978 = (byte *)uVar7;\n            return false;\n          }\n          DAT_0008907c = 0;\n        }\n        if (DAT_00089978 == (byte *)0x0) {\n          DAT_00089978 = (byte *)uVar7;\n          return false;\n        }\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (bVar4 != 0x29) {\n          pcVar13 = "expecting `)\' after scale factor in `%s\'";\nLAB_00047255:\n          uVar7 = dcgettext(0,pcVar13,5);\n          FUN_0002bd60(uVar7,param_1);\n          return false;\n        }\n        break;\n      }\nLAB_000471eb:\n      pbVar10 = pbVar15;\n      bVar4 = pbVar10[-1];\n      pbVar15 = pbVar10 + -1;\n      if (bVar4 != 0x29) goto LAB_000471e0;\nLAB_000471f8:\n      iVar9 = iVar9 + 1;\n    }" { (if_statement "if (iVar9 == 0) {\n        bVar4 = pbVar15[1];\n        if (bVar4 == 0x20) {\n          bVar4 = pbVar10[1];\n          pbVar10 = pbVar15 + 2;\n        }\n        if (bVar4 == 0x2c) {\n          pbVar2 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar2 = *pbVar2 | 0x40;\n          if (DAT_00089074 != 0) goto LAB_00047347;\n          bVar4 = *pbVar10;\n        }\n        else {\n          DAT_00089074 = FUN_00044f30();\n          if (DAT_00089074 == 0) {\n            if (*pbVar10 == 0x25) {\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }\n            if (pbVar16 != local_44) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar10 = *pbVar10 | 0x40;\nLAB_00047347:\n          bVar4 = *local_28;\n          pbVar10 = local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            pbVar10 = local_28 + 1;\n          }\n        }\n        if (bVar4 != 0x2c) {\n          if (bVar4 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }\n          break;\n        }\n        local_44 = pbVar10 + 2;\n        if (pbVar10[1] != 0x20) {\n          local_44 = pbVar10 + 1;\n        }\n        DAT_00089078 = FUN_00044f30();\n        uVar7 = DAT_00089978;\n        if (DAT_00089078 == 0) {\n          if (*local_44 == 0x25) {\n            pcVar13 = strchr((char *)local_44,0x2c);\n            if (pcVar13 != (char *)0x0) {\n              *pcVar13 = '\0';\n            }\n            uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            FUN_0002bd60(uVar7,local_44);\n            return false;\n          }\n          if (*local_44 == 0x29) {\n            uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1);\n            FUN_0002bd60(uVar7,0x29);\n            return false;\n          }\n        }\n        else {\n          bVar4 = *local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            local_28 = local_28 + 1;\n          }\n          if (bVar4 != 0x2c) {\n            DAT_00089978 = (byte *)uVar7;\n            if (bVar4 != 0x29) {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          bVar4 = local_28[1];\n          local_44 = local_28 + 1;\n          if (bVar4 == 0x20) {\n            local_44 = local_28 + 2;\n            bVar4 = local_28[2];\n          }\n          DAT_00089978 = (byte *)uVar7;\n          if (bVar4 == 0x29) break;\n        }\n        DAT_00089978 = local_44;\n        lVar18 = FUN_0002d860();\n        if (lVar18 == 2) {\n          DAT_0008907c = 1;\n          sVar14 = 1;\nLAB_0004751e:\n          if (DAT_00089078 == 0) {\n            uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);\n            FUN_0002bc80(uVar12,1 << sVar14);\n            DAT_0008907c = 0;\n          }\n        }\n        else {\n          if (-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18)) {\n            if (lVar18 == 4) {\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }\n            else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (lVar18 != 1) {\nLAB_0004760c:\n            bVar4 = *DAT_00089978;\n            *DAT_00089978 = 0;\n            uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            FUN_0002bd60(uVar12,local_44);\n            *DAT_00089978 = bVar4;\n            DAT_00089978 = (byte *)uVar7;\n            return false;\n          }\n          DAT_0008907c = 0;\n        }\n        if (DAT_00089978 == (byte *)0x0) {\n          DAT_00089978 = (byte *)uVar7;\n          return false;\n        }\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (bVar4 != 0x29) {\n          pcVar13 = "expecting `)\' after scale factor in `%s\'";\nLAB_00047255:\n          uVar7 = dcgettext(0,pcVar13,5);\n          FUN_0002bd60(uVar7,param_1);\n          return false;\n        }\n        break;\n      }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        bVar4 = pbVar15[1];\n        if (bVar4 == 0x20) {\n          bVar4 = pbVar10[1];\n          pbVar10 = pbVar15 + 2;\n        }\n        if (bVar4 == 0x2c) {\n          pbVar2 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar2 = *pbVar2 | 0x40;\n          if (DAT_00089074 != 0) goto LAB_00047347;\n          bVar4 = *pbVar10;\n        }\n        else {\n          DAT_00089074 = FUN_00044f30();\n          if (DAT_00089074 == 0) {\n            if (*pbVar10 == 0x25) {\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }\n            if (pbVar16 != local_44) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar10 = *pbVar10 | 0x40;\nLAB_00047347:\n          bVar4 = *local_28;\n          pbVar10 = local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            pbVar10 = local_28 + 1;\n          }\n        }\n        if (bVar4 != 0x2c) {\n          if (bVar4 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }\n          break;\n        }\n        local_44 = pbVar10 + 2;\n        if (pbVar10[1] != 0x20) {\n          local_44 = pbVar10 + 1;\n        }\n        DAT_00089078 = FUN_00044f30();\n        uVar7 = DAT_00089978;\n        if (DAT_00089078 == 0) {\n          if (*local_44 == 0x25) {\n            pcVar13 = strchr((char *)local_44,0x2c);\n            if (pcVar13 != (char *)0x0) {\n              *pcVar13 = '\0';\n            }\n            uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            FUN_0002bd60(uVar7,local_44);\n            return false;\n          }\n          if (*local_44 == 0x29) {\n            uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1);\n            FUN_0002bd60(uVar7,0x29);\n            return false;\n          }\n        }\n        else {\n          bVar4 = *local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            local_28 = local_28 + 1;\n          }\n          if (bVar4 != 0x2c) {\n            DAT_00089978 = (byte *)uVar7;\n            if (bVar4 != 0x29) {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          bVar4 = local_28[1];\n          local_44 = local_28 + 1;\n          if (bVar4 == 0x20) {\n            local_44 = local_28 + 2;\n            bVar4 = local_28[2];\n          }\n          DAT_00089978 = (byte *)uVar7;\n          if (bVar4 == 0x29) break;\n        }\n        DAT_00089978 = local_44;\n        lVar18 = FUN_0002d860();\n        if (lVar18 == 2) {\n          DAT_0008907c = 1;\n          sVar14 = 1;\nLAB_0004751e:\n          if (DAT_00089078 == 0) {\n            uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);\n            FUN_0002bc80(uVar12,1 << sVar14);\n            DAT_0008907c = 0;\n          }\n        }\n        else {\n          if (-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18)) {\n            if (lVar18 == 4) {\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }\n            else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (lVar18 != 1) {\nLAB_0004760c:\n            bVar4 = *DAT_00089978;\n            *DAT_00089978 = 0;\n            uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            FUN_0002bd60(uVar12,local_44);\n            *DAT_00089978 = bVar4;\n            DAT_00089978 = (byte *)uVar7;\n            return false;\n          }\n          DAT_0008907c = 0;\n        }\n        if (DAT_00089978 == (byte *)0x0) {\n          DAT_00089978 = (byte *)uVar7;\n          return false;\n        }\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (bVar4 != 0x29) {\n          pcVar13 = "expecting `)\' after scale factor in `%s\'";\nLAB_00047255:\n          uVar7 = dcgettext(0,pcVar13,5);\n          FUN_0002bd60(uVar7,param_1);\n          return false;\n        }\n        break;\n      }" { (expression_statement "bVar4 = pbVar15[1];" (assignment_expression "bVar4 = pbVar15[1]" identifier = (subscript_expression "pbVar15[1]" identifier [ number_literal ])) ;) (if_statement "if (bVar4 == 0x20) {\n          bVar4 = pbVar10[1];\n          pbVar10 = pbVar15 + 2;\n        }" if (parenthesized_expression "(bVar4 == 0x20)" ( (binary_expression "bVar4 == 0x20" identifier == number_literal) )) (compound_statement "{\n          bVar4 = pbVar10[1];\n          pbVar10 = pbVar15 + 2;\n        }" { (expression_statement "bVar4 = pbVar10[1];" (assignment_expression "bVar4 = pbVar10[1]" identifier = (subscript_expression "pbVar10[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar10 = pbVar15 + 2;" (assignment_expression "pbVar10 = pbVar15 + 2" identifier = (binary_expression "pbVar15 + 2" identifier + number_literal)) ;) })) (if_statement "if (bVar4 == 0x2c) {\n          pbVar2 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar2 = *pbVar2 | 0x40;\n          if (DAT_00089074 != 0) goto LAB_00047347;\n          bVar4 = *pbVar10;\n        }\n        else {\n          DAT_00089074 = FUN_00044f30();\n          if (DAT_00089074 == 0) {\n            if (*pbVar10 == 0x25) {\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }\n            if (pbVar16 != local_44) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar10 = *pbVar10 | 0x40;\nLAB_00047347:\n          bVar4 = *local_28;\n          pbVar10 = local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            pbVar10 = local_28 + 1;\n          }\n        }" if (parenthesized_expression "(bVar4 == 0x2c)" ( (binary_expression "bVar4 == 0x2c" identifier == number_literal) )) (compound_statement "{\n          pbVar2 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar2 = *pbVar2 | 0x40;\n          if (DAT_00089074 != 0) goto LAB_00047347;\n          bVar4 = *pbVar10;\n        }" { (expression_statement "pbVar2 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);" (assignment_expression "pbVar2 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2)" identifier = (cast_expression "(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&DAT_00089010 + DAT_00080558 * 8 + 2)" ( (binary_expression "(int)&DAT_00089010 + DAT_00080558 * 8 + 2" (binary_expression "(int)&DAT_00089010 + DAT_00080558 * 8" (cast_expression "(int)&DAT_00089010" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&DAT_00089010" & identifier)) + (binary_expression "DAT_00080558 * 8" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "*pbVar2 = *pbVar2 | 0x40;" (assignment_expression "*pbVar2 = *pbVar2 | 0x40" (pointer_expression "*pbVar2" * identifier) = (binary_expression "*pbVar2 | 0x40" (pointer_expression "*pbVar2" * identifier) | number_literal)) ;) (if_statement "if (DAT_00089074 != 0) goto LAB_00047347;" if (parenthesized_expression "(DAT_00089074 != 0)" ( (binary_expression "DAT_00089074 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00047347;" goto statement_identifier ;)) (expression_statement "bVar4 = *pbVar10;" (assignment_expression "bVar4 = *pbVar10" identifier = (pointer_expression "*pbVar10" * identifier)) ;) }) (else_clause "else {\n          DAT_00089074 = FUN_00044f30();\n          if (DAT_00089074 == 0) {\n            if (*pbVar10 == 0x25) {\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }\n            if (pbVar16 != local_44) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar10 = *pbVar10 | 0x40;\nLAB_00047347:\n          bVar4 = *local_28;\n          pbVar10 = local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            pbVar10 = local_28 + 1;\n          }\n        }" else (compound_statement "{\n          DAT_00089074 = FUN_00044f30();\n          if (DAT_00089074 == 0) {\n            if (*pbVar10 == 0x25) {\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }\n            if (pbVar16 != local_44) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar10 = *pbVar10 | 0x40;\nLAB_00047347:\n          bVar4 = *local_28;\n          pbVar10 = local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            pbVar10 = local_28 + 1;\n          }\n        }" { (expression_statement "DAT_00089074 = FUN_00044f30();" (assignment_expression "DAT_00089074 = FUN_00044f30()" identifier = (call_expression "FUN_00044f30()" identifier (argument_list "()" ( )))) ;) (if_statement "if (DAT_00089074 == 0) {\n            if (*pbVar10 == 0x25) {\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }\n            if (pbVar16 != local_44) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }" if (parenthesized_expression "(DAT_00089074 == 0)" ( (binary_expression "DAT_00089074 == 0" identifier == number_literal) )) (compound_statement "{\n            if (*pbVar10 == 0x25) {\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }\n            if (pbVar16 != local_44) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }" { (if_statement "if (*pbVar10 == 0x25) {\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }" if (parenthesized_expression "(*pbVar10 == 0x25)" ( (binary_expression "*pbVar10 == 0x25" (pointer_expression "*pbVar10" * identifier) == number_literal) )) (compound_statement "{\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }" { (expression_statement "pcVar13 = strchr((char *)pbVar10,0x2c);" (assignment_expression "pcVar13 = strchr((char *)pbVar10,0x2c)" identifier = (call_expression "strchr((char *)pbVar10,0x2c)" identifier (argument_list "((char *)pbVar10,0x2c)" ( (cast_expression "(char *)pbVar10" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }" if (parenthesized_expression "(pcVar13 != (char *)0x0)" ( (binary_expression "pcVar13 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                *pcVar13 = '\0';\n              }" { (expression_statement "*pcVar13 = '\0';" (assignment_expression "*pcVar13 = '\0'" (pointer_expression "*pcVar13" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "uVar7 = dcgettext(0,"bad register name `%s\'",5);" (assignment_expression "uVar7 = dcgettext(0,"bad register name `%s\'",5)" identifier = (call_expression "dcgettext(0,"bad register name `%s\'",5)" identifier (argument_list "(0,"bad register name `%s\'",5)" ( number_literal , (string_literal ""bad register name `%s\'"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_0002bd60(uVar7,pbVar10);" (call_expression "FUN_0002bd60(uVar7,pbVar10)" identifier (argument_list "(uVar7,pbVar10)" ( identifier , identifier ))) ;) (return_statement "return false;" return false ;) })) (if_statement "if (pbVar16 != local_44) goto LAB_00046cd4;" if (parenthesized_expression "(pbVar16 != local_44)" ( (binary_expression "pbVar16 != local_44" identifier != identifier) )) (goto_statement "goto LAB_00046cd4;" goto statement_identifier ;)) (goto_statement "goto LAB_00046ea4;" goto statement_identifier ;) })) (expression_statement "pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);" (assignment_expression "pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2)" identifier = (cast_expression "(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&DAT_00089010 + DAT_00080558 * 8 + 2)" ( (binary_expression "(int)&DAT_00089010 + DAT_00080558 * 8 + 2" (binary_expression "(int)&DAT_00089010 + DAT_00080558 * 8" (cast_expression "(int)&DAT_00089010" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&DAT_00089010" & identifier)) + (binary_expression "DAT_00080558 * 8" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "*pbVar10 = *pbVar10 | 0x40;" (assignment_expression "*pbVar10 = *pbVar10 | 0x40" (pointer_expression "*pbVar10" * identifier) = (binary_expression "*pbVar10 | 0x40" (pointer_expression "*pbVar10" * identifier) | number_literal)) ;) (labeled_statement "LAB_00047347:\n          bVar4 = *local_28;" statement_identifier : (expression_statement "bVar4 = *local_28;" (assignment_expression "bVar4 = *local_28" identifier = (pointer_expression "*local_28" * identifier)) ;)) (expression_statement "pbVar10 = local_28;" (assignment_expression "pbVar10 = local_28" identifier = identifier) ;) (if_statement "if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            pbVar10 = local_28 + 1;\n          }" if (parenthesized_expression "(bVar4 == 0x20)" ( (binary_expression "bVar4 == 0x20" identifier == number_literal) )) (compound_statement "{\n            bVar4 = local_28[1];\n            pbVar10 = local_28 + 1;\n          }" { (expression_statement "bVar4 = local_28[1];" (assignment_expression "bVar4 = local_28[1]" identifier = (subscript_expression "local_28[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar10 = local_28 + 1;" (assignment_expression "pbVar10 = local_28 + 1" identifier = (binary_expression "local_28 + 1" identifier + number_literal)) ;) })) }))) (if_statement "if (bVar4 != 0x2c) {\n          if (bVar4 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }\n          break;\n        }" if (parenthesized_expression "(bVar4 != 0x2c)" ( (binary_expression "bVar4 != 0x2c" identifier != number_literal) )) (compound_statement "{\n          if (bVar4 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }\n          break;\n        }" { (if_statement "if (bVar4 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }" if (parenthesized_expression "(bVar4 != 0x29)" ( (binary_expression "bVar4 != 0x29" identifier != number_literal) )) (compound_statement "{\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }" { (expression_statement "pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";" (assignment_expression "pcVar13 = "expecting `,\' or `)\' after base register in `%s\'"" identifier = (string_literal ""expecting `,\' or `)\' after base register in `%s\'"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (goto_statement "goto LAB_00047255;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "local_44 = pbVar10 + 2;" (assignment_expression "local_44 = pbVar10 + 2" identifier = (binary_expression "pbVar10 + 2" identifier + number_literal)) ;) (if_statement "if (pbVar10[1] != 0x20) {\n          local_44 = pbVar10 + 1;\n        }" if (parenthesized_expression "(pbVar10[1] != 0x20)" ( (binary_expression "pbVar10[1] != 0x20" (subscript_expression "pbVar10[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n          local_44 = pbVar10 + 1;\n        }" { (expression_statement "local_44 = pbVar10 + 1;" (assignment_expression "local_44 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) })) (expression_statement "DAT_00089078 = FUN_00044f30();" (assignment_expression "DAT_00089078 = FUN_00044f30()" identifier = (call_expression "FUN_00044f30()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar7 = DAT_00089978;" (assignment_expression "uVar7 = DAT_00089978" identifier = identifier) ;) (if_statement "if (DAT_00089078 == 0) {\n          if (*local_44 == 0x25) {\n            pcVar13 = strchr((char *)local_44,0x2c);\n            if (pcVar13 != (char *)0x0) {\n              *pcVar13 = '\0';\n            }\n            uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            FUN_0002bd60(uVar7,local_44);\n            return false;\n          }\n          if (*local_44 == 0x29) {\n            uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1);\n            FUN_0002bd60(uVar7,0x29);\n            return false;\n          }\n        }\n        else {\n          bVar4 = *local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            local_28 = local_28 + 1;\n          }\n          if (bVar4 != 0x2c) {\n            DAT_00089978 = (byte *)uVar7;\n            if (bVar4 != 0x29) {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          bVar4 = local_28[1];\n          local_44 = local_28 + 1;\n          if (bVar4 == 0x20) {\n            local_44 = local_28 + 2;\n            bVar4 = local_28[2];\n          }\n          DAT_00089978 = (byte *)uVar7;\n          if (bVar4 == 0x29) break;\n        }" if (parenthesized_expression "(DAT_00089078 == 0)" ( (binary_expression "DAT_00089078 == 0" identifier == number_literal) )) (compound_statement "{\n          if (*local_44 == 0x25) {\n            pcVar13 = strchr((char *)local_44,0x2c);\n            if (pcVar13 != (char *)0x0) {\n              *pcVar13 = '\0';\n            }\n            uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            FUN_0002bd60(uVar7,local_44);\n            return false;\n          }\n          if (*local_44 == 0x29) {\n            uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1);\n            FUN_0002bd60(uVar7,0x29);\n            return false;\n          }\n        }" { (if_statement "if (*local_44 == 0x25) {\n            pcVar13 = strchr((char *)local_44,0x2c);\n            if (pcVar13 != (char *)0x0) {\n              *pcVar13 = '\0';\n            }\n            uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            FUN_0002bd60(uVar7,local_44);\n            return false;\n          }" if (parenthesized_expression "(*local_44 == 0x25)" ( (binary_expression "*local_44 == 0x25" (pointer_expression "*local_44" * identifier) == number_literal) )) (compound_statement "{\n            pcVar13 = strchr((char *)local_44,0x2c);\n            if (pcVar13 != (char *)0x0) {\n              *pcVar13 = '\0';\n            }\n            uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            FUN_0002bd60(uVar7,local_44);\n            return false;\n          }" { (expression_statement "pcVar13 = strchr((char *)local_44,0x2c);" (assignment_expression "pcVar13 = strchr((char *)local_44,0x2c)" identifier = (call_expression "strchr((char *)local_44,0x2c)" identifier (argument_list "((char *)local_44,0x2c)" ( (cast_expression "(char *)local_44" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (pcVar13 != (char *)0x0) {\n              *pcVar13 = '\0';\n            }" if (parenthesized_expression "(pcVar13 != (char *)0x0)" ( (binary_expression "pcVar13 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              *pcVar13 = '\0';\n            }" { (expression_statement "*pcVar13 = '\0';" (assignment_expression "*pcVar13 = '\0'" (pointer_expression "*pcVar13" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX);" (assignment_expression "uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX)" identifier = (call_expression "dcgettext(0,"bad register name `%s\'",5,extraout_ECX)" identifier (argument_list "(0,"bad register name `%s\'",5,extraout_ECX)" ( number_literal , (string_literal ""bad register name `%s\'"" " string_content escape_sequence ") , number_literal , identifier )))) ;) (expression_statement "FUN_0002bd60(uVar7,local_44);" (call_expression "FUN_0002bd60(uVar7,local_44)" identifier (argument_list "(uVar7,local_44)" ( identifier , identifier ))) ;) (return_statement "return false;" return false ;) })) (if_statement "if (*local_44 == 0x29) {\n            uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1);\n            FUN_0002bd60(uVar7,0x29);\n            return false;\n          }" if (parenthesized_expression "(*local_44 == 0x29)" ( (binary_expression "*local_44 == 0x29" (pointer_expression "*local_44" * identifier) == number_literal) )) (compound_statement "{\n            uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1);\n            FUN_0002bd60(uVar7,0x29);\n            return false;\n          }" { (expression_statement "uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1);" (assignment_expression "uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1)" identifier = (call_expression "dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1)" identifier (argument_list "(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1)" ( number_literal , (string_literal ""expecting index register or scale factor after `,\'; got \'%c\'"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal , identifier )))) ;) (expression_statement "FUN_0002bd60(uVar7,0x29);" (call_expression "FUN_0002bd60(uVar7,0x29)" identifier (argument_list "(uVar7,0x29)" ( identifier , number_literal ))) ;) (return_statement "return false;" return false ;) })) }) (else_clause "else {\n          bVar4 = *local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            local_28 = local_28 + 1;\n          }\n          if (bVar4 != 0x2c) {\n            DAT_00089978 = (byte *)uVar7;\n            if (bVar4 != 0x29) {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          bVar4 = local_28[1];\n          local_44 = local_28 + 1;\n          if (bVar4 == 0x20) {\n            local_44 = local_28 + 2;\n            bVar4 = local_28[2];\n          }\n          DAT_00089978 = (byte *)uVar7;\n          if (bVar4 == 0x29) break;\n        }" else (compound_statement "{\n          bVar4 = *local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            local_28 = local_28 + 1;\n          }\n          if (bVar4 != 0x2c) {\n            DAT_00089978 = (byte *)uVar7;\n            if (bVar4 != 0x29) {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          bVar4 = local_28[1];\n          local_44 = local_28 + 1;\n          if (bVar4 == 0x20) {\n            local_44 = local_28 + 2;\n            bVar4 = local_28[2];\n          }\n          DAT_00089978 = (byte *)uVar7;\n          if (bVar4 == 0x29) break;\n        }" { (expression_statement "bVar4 = *local_28;" (assignment_expression "bVar4 = *local_28" identifier = (pointer_expression "*local_28" * identifier)) ;) (if_statement "if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            local_28 = local_28 + 1;\n          }" if (parenthesized_expression "(bVar4 == 0x20)" ( (binary_expression "bVar4 == 0x20" identifier == number_literal) )) (compound_statement "{\n            bVar4 = local_28[1];\n            local_28 = local_28 + 1;\n          }" { (expression_statement "bVar4 = local_28[1];" (assignment_expression "bVar4 = local_28[1]" identifier = (subscript_expression "local_28[1]" identifier [ number_literal ])) ;) (expression_statement "local_28 = local_28 + 1;" (assignment_expression "local_28 = local_28 + 1" identifier = (binary_expression "local_28 + 1" identifier + number_literal)) ;) })) (if_statement "if (bVar4 != 0x2c) {\n            DAT_00089978 = (byte *)uVar7;\n            if (bVar4 != 0x29) {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }" if (parenthesized_expression "(bVar4 != 0x2c)" ( (binary_expression "bVar4 != 0x2c" identifier != number_literal) )) (compound_statement "{\n            DAT_00089978 = (byte *)uVar7;\n            if (bVar4 != 0x29) {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }" { (expression_statement "DAT_00089978 = (byte *)uVar7;" (assignment_expression "DAT_00089978 = (byte *)uVar7" identifier = (cast_expression "(byte *)uVar7" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (bVar4 != 0x29) {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }" if (parenthesized_expression "(bVar4 != 0x29)" ( (binary_expression "bVar4 != 0x29" identifier != number_literal) )) (compound_statement "{\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }" { (expression_statement "pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";" (assignment_expression "pcVar13 = "expecting `,\' or `)\' after index register in `%s\'"" identifier = (string_literal ""expecting `,\' or `)\' after index register in `%s\'"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (goto_statement "goto LAB_00047255;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "bVar4 = local_28[1];" (assignment_expression "bVar4 = local_28[1]" identifier = (subscript_expression "local_28[1]" identifier [ number_literal ])) ;) (expression_statement "local_44 = local_28 + 1;" (assignment_expression "local_44 = local_28 + 1" identifier = (binary_expression "local_28 + 1" identifier + number_literal)) ;) (if_statement "if (bVar4 == 0x20) {\n            local_44 = local_28 + 2;\n            bVar4 = local_28[2];\n          }" if (parenthesized_expression "(bVar4 == 0x20)" ( (binary_expression "bVar4 == 0x20" identifier == number_literal) )) (compound_statement "{\n            local_44 = local_28 + 2;\n            bVar4 = local_28[2];\n          }" { (expression_statement "local_44 = local_28 + 2;" (assignment_expression "local_44 = local_28 + 2" identifier = (binary_expression "local_28 + 2" identifier + number_literal)) ;) (expression_statement "bVar4 = local_28[2];" (assignment_expression "bVar4 = local_28[2]" identifier = (subscript_expression "local_28[2]" identifier [ number_literal ])) ;) })) (expression_statement "DAT_00089978 = (byte *)uVar7;" (assignment_expression "DAT_00089978 = (byte *)uVar7" identifier = (cast_expression "(byte *)uVar7" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (bVar4 == 0x29) break;" if (parenthesized_expression "(bVar4 == 0x29)" ( (binary_expression "bVar4 == 0x29" identifier == number_literal) )) (break_statement "break;" break ;)) }))) (expression_statement "DAT_00089978 = local_44;" (assignment_expression "DAT_00089978 = local_44" identifier = identifier) ;) (expression_statement "lVar18 = FUN_0002d860();" (assignment_expression "lVar18 = FUN_0002d860()" identifier = (call_expression "FUN_0002d860()" identifier (argument_list "()" ( )))) ;) (if_statement "if (lVar18 == 2) {\n          DAT_0008907c = 1;\n          sVar14 = 1;\nLAB_0004751e:\n          if (DAT_00089078 == 0) {\n            uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);\n            FUN_0002bc80(uVar12,1 << sVar14);\n            DAT_0008907c = 0;\n          }\n        }\n        else {\n          if (-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18)) {\n            if (lVar18 == 4) {\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }\n            else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (lVar18 != 1) {\nLAB_0004760c:\n            bVar4 = *DAT_00089978;\n            *DAT_00089978 = 0;\n            uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            FUN_0002bd60(uVar12,local_44);\n            *DAT_00089978 = bVar4;\n            DAT_00089978 = (byte *)uVar7;\n            return false;\n          }\n          DAT_0008907c = 0;\n        }" if (parenthesized_expression "(lVar18 == 2)" ( (binary_expression "lVar18 == 2" identifier == number_literal) )) (compound_statement "{\n          DAT_0008907c = 1;\n          sVar14 = 1;\nLAB_0004751e:\n          if (DAT_00089078 == 0) {\n            uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);\n            FUN_0002bc80(uVar12,1 << sVar14);\n            DAT_0008907c = 0;\n          }\n        }" { (expression_statement "DAT_0008907c = 1;" (assignment_expression "DAT_0008907c = 1" identifier = number_literal) ;) (expression_statement "sVar14 = 1;" (assignment_expression "sVar14 = 1" identifier = number_literal) ;) (labeled_statement "LAB_0004751e:\n          if (DAT_00089078 == 0) {\n            uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);\n            FUN_0002bc80(uVar12,1 << sVar14);\n            DAT_0008907c = 0;\n          }" statement_identifier : (if_statement "if (DAT_00089078 == 0) {\n            uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);\n            FUN_0002bc80(uVar12,1 << sVar14);\n            DAT_0008907c = 0;\n          }" if (parenthesized_expression "(DAT_00089078 == 0)" ( (binary_expression "DAT_00089078 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);\n            FUN_0002bc80(uVar12,1 << sVar14);\n            DAT_0008907c = 0;\n          }" { (expression_statement "uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);" (assignment_expression "uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14)" identifier = (call_expression "dcgettext(0,"scale factor of %d without an index register",5,sVar14)" identifier (argument_list "(0,"scale factor of %d without an index register",5,sVar14)" ( number_literal , (string_literal ""scale factor of %d without an index register"" " string_content ") , number_literal , identifier )))) ;) (expression_statement "FUN_0002bc80(uVar12,1 << sVar14);" (call_expression "FUN_0002bc80(uVar12,1 << sVar14)" identifier (argument_list "(uVar12,1 << sVar14)" ( identifier , (binary_expression "1 << sVar14" number_literal << identifier) ))) ;) (expression_statement "DAT_0008907c = 0;" (assignment_expression "DAT_0008907c = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n          if (-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18)) {\n            if (lVar18 == 4) {\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }\n            else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (lVar18 != 1) {\nLAB_0004760c:\n            bVar4 = *DAT_00089978;\n            *DAT_00089978 = 0;\n            uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            FUN_0002bd60(uVar12,local_44);\n            *DAT_00089978 = bVar4;\n            DAT_00089978 = (byte *)uVar7;\n            return false;\n          }\n          DAT_0008907c = 0;\n        }" else (compound_statement "{\n          if (-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18)) {\n            if (lVar18 == 4) {\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }\n            else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (lVar18 != 1) {\nLAB_0004760c:\n            bVar4 = *DAT_00089978;\n            *DAT_00089978 = 0;\n            uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            FUN_0002bd60(uVar12,local_44);\n            *DAT_00089978 = bVar4;\n            DAT_00089978 = (byte *)uVar7;\n            return false;\n          }\n          DAT_0008907c = 0;\n        }" { (if_statement "if (-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18)) {\n            if (lVar18 == 4) {\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }\n            else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }\n            goto LAB_0004751e;\n          }" if (parenthesized_expression "(-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18))" ( (binary_expression "-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18)" (unary_expression "-(int)((ulonglong)lVar18 >> 0x20)" - (cast_expression "(int)((ulonglong)lVar18 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar18 >> 0x20)" ( (binary_expression "(ulonglong)lVar18 >> 0x20" (cast_expression "(ulonglong)lVar18" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) < (cast_expression "(int)(uint)(2 < (uint)lVar18)" ( (type_descriptor "int" primitive_type) ) (call_expression "(uint)(2 < (uint)lVar18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(2 < (uint)lVar18)" ( (binary_expression "2 < (uint)lVar18" number_literal < (cast_expression "(uint)lVar18" ( (type_descriptor "uint" type_identifier) ) identifier)) ))))) )) (compound_statement "{\n            if (lVar18 == 4) {\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }\n            else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }\n            goto LAB_0004751e;\n          }" { (if_statement "if (lVar18 == 4) {\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }\n            else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }" if (parenthesized_expression "(lVar18 == 4)" ( (binary_expression "lVar18 == 4" identifier == number_literal) )) (compound_statement "{\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }" { (expression_statement "DAT_0008907c = 2;" (assignment_expression "DAT_0008907c = 2" identifier = number_literal) ;) (expression_statement "sVar14 = 2;" (assignment_expression "sVar14 = 2" identifier = number_literal) ;) }) (else_clause "else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }" else (compound_statement "{\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }" { (if_statement "if (lVar18 != 8) goto LAB_0004760c;" if (parenthesized_expression "(lVar18 != 8)" ( (binary_expression "lVar18 != 8" identifier != number_literal) )) (goto_statement "goto LAB_0004760c;" goto statement_identifier ;)) (expression_statement "DAT_0008907c = 3;" (assignment_expression "DAT_0008907c = 3" identifier = number_literal) ;) (expression_statement "sVar14 = 3;" (assignment_expression "sVar14 = 3" identifier = number_literal) ;) }))) (goto_statement "goto LAB_0004751e;" goto statement_identifier ;) })) (if_statement "if (lVar18 != 1) {\nLAB_0004760c:\n            bVar4 = *DAT_00089978;\n            *DAT_00089978 = 0;\n            uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            FUN_0002bd60(uVar12,local_44);\n            *DAT_00089978 = bVar4;\n            DAT_00089978 = (byte *)uVar7;\n            return false;\n          }" if (parenthesized_expression "(lVar18 != 1)" ( (binary_expression "lVar18 != 1" identifier != number_literal) )) (compound_statement "{\nLAB_0004760c:\n            bVar4 = *DAT_00089978;\n            *DAT_00089978 = 0;\n            uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            FUN_0002bd60(uVar12,local_44);\n            *DAT_00089978 = bVar4;\n            DAT_00089978 = (byte *)uVar7;\n            return false;\n          }" { (labeled_statement "LAB_0004760c:\n            bVar4 = *DAT_00089978;" statement_identifier : (expression_statement "bVar4 = *DAT_00089978;" (assignment_expression "bVar4 = *DAT_00089978" identifier = (pointer_expression "*DAT_00089978" * identifier)) ;)) (expression_statement "*DAT_00089978 = 0;" (assignment_expression "*DAT_00089978 = 0" (pointer_expression "*DAT_00089978" * identifier) = number_literal) ;) (expression_statement "uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);" (assignment_expression "uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5)" identifier = (call_expression "dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5)" identifier (argument_list "(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5)" ( number_literal , (string_literal ""expecting scale factor of 1, 2, 4, or 8: got `%s\'"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_0002bd60(uVar12,local_44);" (call_expression "FUN_0002bd60(uVar12,local_44)" identifier (argument_list "(uVar12,local_44)" ( identifier , identifier ))) ;) (expression_statement "*DAT_00089978 = bVar4;" (assignment_expression "*DAT_00089978 = bVar4" (pointer_expression "*DAT_00089978" * identifier) = identifier) ;) (expression_statement "DAT_00089978 = (byte *)uVar7;" (assignment_expression "DAT_00089978 = (byte *)uVar7" identifier = (cast_expression "(byte *)uVar7" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (return_statement "return false;" return false ;) })) (expression_statement "DAT_0008907c = 0;" (assignment_expression "DAT_0008907c = 0" identifier = number_literal) ;) }))) (if_statement "if (DAT_00089978 == (byte *)0x0) {\n          DAT_00089978 = (byte *)uVar7;\n          return false;\n        }" if (parenthesized_expression "(DAT_00089978 == (byte *)0x0)" ( (binary_expression "DAT_00089978 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          DAT_00089978 = (byte *)uVar7;\n          return false;\n        }" { (expression_statement "DAT_00089978 = (byte *)uVar7;" (assignment_expression "DAT_00089978 = (byte *)uVar7" identifier = (cast_expression "(byte *)uVar7" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (return_statement "return false;" return false ;) })) (expression_statement "bVar4 = *DAT_00089978;" (assignment_expression "bVar4 = *DAT_00089978" identifier = (pointer_expression "*DAT_00089978" * identifier)) ;) (if_statement "if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n        }" if (parenthesized_expression "(bVar4 == 0x20)" ( (binary_expression "bVar4 == 0x20" identifier == number_literal) )) (compound_statement "{\n          bVar4 = DAT_00089978[1];\n        }" { (expression_statement "bVar4 = DAT_00089978[1];" (assignment_expression "bVar4 = DAT_00089978[1]" identifier = (subscript_expression "DAT_00089978[1]" identifier [ number_literal ])) ;) })) (expression_statement "DAT_00089978 = (byte *)uVar7;" (assignment_expression "DAT_00089978 = (byte *)uVar7" identifier = (cast_expression "(byte *)uVar7" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (bVar4 != 0x29) {\n          pcVar13 = "expecting `)\' after scale factor in `%s\'";\nLAB_00047255:\n          uVar7 = dcgettext(0,pcVar13,5);\n          FUN_0002bd60(uVar7,param_1);\n          return false;\n        }" if (parenthesized_expression "(bVar4 != 0x29)" ( (binary_expression "bVar4 != 0x29" identifier != number_literal) )) (compound_statement "{\n          pcVar13 = "expecting `)\' after scale factor in `%s\'";\nLAB_00047255:\n          uVar7 = dcgettext(0,pcVar13,5);\n          FUN_0002bd60(uVar7,param_1);\n          return false;\n        }" { (expression_statement "pcVar13 = "expecting `)\' after scale factor in `%s\'";" (assignment_expression "pcVar13 = "expecting `)\' after scale factor in `%s\'"" identifier = (string_literal ""expecting `)\' after scale factor in `%s\'"" " string_content escape_sequence string_content escape_sequence ")) ;) (labeled_statement "LAB_00047255:\n          uVar7 = dcgettext(0,pcVar13,5);" statement_identifier : (expression_statement "uVar7 = dcgettext(0,pcVar13,5);" (assignment_expression "uVar7 = dcgettext(0,pcVar13,5)" identifier = (call_expression "dcgettext(0,pcVar13,5)" identifier (argument_list "(0,pcVar13,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "FUN_0002bd60(uVar7,param_1);" (call_expression "FUN_0002bd60(uVar7,param_1)" identifier (argument_list "(uVar7,param_1)" ( identifier , identifier ))) ;) (return_statement "return false;" return false ;) })) (break_statement "break;" break ;) })) (labeled_statement "LAB_000471eb:\n      pbVar10 = pbVar15;" statement_identifier : (expression_statement "pbVar10 = pbVar15;" (assignment_expression "pbVar10 = pbVar15" identifier = identifier) ;)) (expression_statement "bVar4 = pbVar10[-1];" (assignment_expression "bVar4 = pbVar10[-1]" identifier = (subscript_expression "pbVar10[-1]" identifier [ number_literal ])) ;) (expression_statement "pbVar15 = pbVar10 + -1;" (assignment_expression "pbVar15 = pbVar10 + -1" identifier = (binary_expression "pbVar10 + -1" identifier + number_literal)) ;) (if_statement "if (bVar4 != 0x29) goto LAB_000471e0;" if (parenthesized_expression "(bVar4 != 0x29)" ( (binary_expression "bVar4 != 0x29" identifier != number_literal) )) (goto_statement "goto LAB_000471e0;" goto statement_identifier ;)) (labeled_statement "LAB_000471f8:\n      iVar9 = iVar9 + 1;" statement_identifier : (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "local_44 = pbVar15;" (assignment_expression "local_44 = pbVar15" identifier = identifier) ;) (if_statement "if (pbVar16 == local_44) goto LAB_00046e80;" if (parenthesized_expression "(pbVar16 == local_44)" ( (binary_expression "pbVar16 == local_44" identifier == identifier) )) (goto_statement "goto LAB_00046e80;" goto statement_identifier ;)) (labeled_statement "LAB_00046cd4:\n  iVar6 = DAT_00089004;" statement_identifier : (expression_statement "iVar6 = DAT_00089004;" (assignment_expression "iVar6 = DAT_00089004" identifier = identifier) ;)) (expression_statement "iVar9 = DAT_00080558;" (assignment_expression "iVar9 = DAT_00080558" identifier = identifier) ;) (if_statement "if (DAT_00089004 == 2) {\n    pcVar13 = "at most %d displacement operands are allowed";\nLAB_00047443:\n    uVar7 = dcgettext(0,pcVar13,5);\n    FUN_0002bd60(uVar7,2);\n    return false;\n  }" if (parenthesized_expression "(DAT_00089004 == 2)" ( (binary_expression "DAT_00089004 == 2" identifier == number_literal) )) (compound_statement "{\n    pcVar13 = "at most %d displacement operands are allowed";\nLAB_00047443:\n    uVar7 = dcgettext(0,pcVar13,5);\n    FUN_0002bd60(uVar7,2);\n    return false;\n  }" { (expression_statement "pcVar13 = "at most %d displacement operands are allowed";" (assignment_expression "pcVar13 = "at most %d displacement operands are allowed"" identifier = (string_literal ""at most %d displacement operands are allowed"" " string_content ")) ;) (labeled_statement "LAB_00047443:\n    uVar7 = dcgettext(0,pcVar13,5);" statement_identifier : (expression_statement "uVar7 = dcgettext(0,pcVar13,5);" (assignment_expression "uVar7 = dcgettext(0,pcVar13,5)" identifier = (call_expression "dcgettext(0,pcVar13,5)" identifier (argument_list "(0,pcVar13,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "FUN_0002bd60(uVar7,2);" (call_expression "FUN_0002bd60(uVar7,2)" identifier (argument_list "(uVar7,2)" ( identifier , number_literal ))) ;) (return_statement "return false;" return false ;) })) (if_statement "if (((*(byte *)((int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8 + 3) & 2) == 0) &&\n     ((*(byte *)(*DAT_00088f88 + 0x24) & 0x60) != 0)) {\n    if (DAT_00088f0c == 2) {\n      if ((DAT_00089093 != '\0') || (local_48 = 0xc0000, DAT_00088ff8 == 'w')) goto LAB_00046d4f;\n    }\n    else {\n      bVar17 = true;\n      if (DAT_00089093 == '\0') {\n        cVar5 = 'l';\n        if (DAT_00088f0c != 1) {\n          cVar5 = 'w';\n        }\n        bVar17 = DAT_00088ff8 == cVar5;\n      }\n      local_48 = 0x40000;\n      if ((DAT_00088f0c == 1) != bVar17) {\nLAB_00046d4f:\n        local_48 = 0x20000;\n      }\n    }\n  }\n  else {\n    local_48 = 0x40000;\n    if (DAT_00088f0c == 2) {\n      local_48 = 0x1c0000;\n      if (DAT_00089092 != '\0') {\n        local_48 = 0x40000;\n      }\n    }\n    else if ((DAT_00089092 != '\0') != (DAT_00088f0c == 1)) goto LAB_00046d4f;\n  }" if (parenthesized_expression "(((*(byte *)((int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8 + 3) & 2) == 0) &&\n     ((*(byte *)(*DAT_00088f88 + 0x24) & 0x60) != 0))" ( (binary_expression "((*(byte *)((int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8 + 3) & 2) == 0) &&\n     ((*(byte *)(*DAT_00088f88 + 0x24) & 0x60) != 0)" (parenthesized_expression "((*(byte *)((int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8 + 3) & 2) == 0)" ( (binary_expression "(*(byte *)((int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8 + 3) & 2) == 0" (parenthesized_expression "(*(byte *)((int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8 + 3) & 2)" ( (binary_expression "*(byte *)((int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8 + 3) & 2" (pointer_expression "*(byte *)((int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8 + 3)" * (cast_expression "(byte *)((int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8 + 3)" ( (binary_expression "(int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8 + 3" (binary_expression "(int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8" (cast_expression "(int)&DAT_00088fa0" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&DAT_00088fa0" & identifier)) + (binary_expression "(DAT_00080558 + 0xe) * 8" (parenthesized_expression "(DAT_00080558 + 0xe)" ( (binary_expression "DAT_00080558 + 0xe" identifier + number_literal) )) * number_literal)) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "((*(byte *)(*DAT_00088f88 + 0x24) & 0x60) != 0)" ( (binary_expression "(*(byte *)(*DAT_00088f88 + 0x24) & 0x60) != 0" (parenthesized_expression "(*(byte *)(*DAT_00088f88 + 0x24) & 0x60)" ( (binary_expression "*(byte *)(*DAT_00088f88 + 0x24) & 0x60" (pointer_expression "*(byte *)(*DAT_00088f88 + 0x24)" * (cast_expression "(byte *)(*DAT_00088f88 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*DAT_00088f88 + 0x24)" ( (binary_expression "*DAT_00088f88 + 0x24" (pointer_expression "*DAT_00088f88" * identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    if (DAT_00088f0c == 2) {\n      if ((DAT_00089093 != '\0') || (local_48 = 0xc0000, DAT_00088ff8 == 'w')) goto LAB_00046d4f;\n    }\n    else {\n      bVar17 = true;\n      if (DAT_00089093 == '\0') {\n        cVar5 = 'l';\n        if (DAT_00088f0c != 1) {\n          cVar5 = 'w';\n        }\n        bVar17 = DAT_00088ff8 == cVar5;\n      }\n      local_48 = 0x40000;\n      if ((DAT_00088f0c == 1) != bVar17) {\nLAB_00046d4f:\n        local_48 = 0x20000;\n      }\n    }\n  }" { (if_statement "if (DAT_00088f0c == 2) {\n      if ((DAT_00089093 != '\0') || (local_48 = 0xc0000, DAT_00088ff8 == 'w')) goto LAB_00046d4f;\n    }\n    else {\n      bVar17 = true;\n      if (DAT_00089093 == '\0') {\n        cVar5 = 'l';\n        if (DAT_00088f0c != 1) {\n          cVar5 = 'w';\n        }\n        bVar17 = DAT_00088ff8 == cVar5;\n      }\n      local_48 = 0x40000;\n      if ((DAT_00088f0c == 1) != bVar17) {\nLAB_00046d4f:\n        local_48 = 0x20000;\n      }\n    }" if (parenthesized_expression "(DAT_00088f0c == 2)" ( (binary_expression "DAT_00088f0c == 2" identifier == number_literal) )) (compound_statement "{\n      if ((DAT_00089093 != '\0') || (local_48 = 0xc0000, DAT_00088ff8 == 'w')) goto LAB_00046d4f;\n    }" { (if_statement "if ((DAT_00089093 != '\0') || (local_48 = 0xc0000, DAT_00088ff8 == 'w')) goto LAB_00046d4f;" if (parenthesized_expression "((DAT_00089093 != '\0') || (local_48 = 0xc0000, DAT_00088ff8 == 'w'))" ( (binary_expression "(DAT_00089093 != '\0') || (local_48 = 0xc0000, DAT_00088ff8 == 'w')" (parenthesized_expression "(DAT_00089093 != '\0')" ( (binary_expression "DAT_00089093 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(local_48 = 0xc0000, DAT_00088ff8 == 'w')" ( (comma_expression "local_48 = 0xc0000, DAT_00088ff8 == 'w'" (assignment_expression "local_48 = 0xc0000" identifier = number_literal) , (binary_expression "DAT_00088ff8 == 'w'" identifier == (char_literal "'w'" ' character '))) ))) )) (goto_statement "goto LAB_00046d4f;" goto statement_identifier ;)) }) (else_clause "else {\n      bVar17 = true;\n      if (DAT_00089093 == '\0') {\n        cVar5 = 'l';\n        if (DAT_00088f0c != 1) {\n          cVar5 = 'w';\n        }\n        bVar17 = DAT_00088ff8 == cVar5;\n      }\n      local_48 = 0x40000;\n      if ((DAT_00088f0c == 1) != bVar17) {\nLAB_00046d4f:\n        local_48 = 0x20000;\n      }\n    }" else (compound_statement "{\n      bVar17 = true;\n      if (DAT_00089093 == '\0') {\n        cVar5 = 'l';\n        if (DAT_00088f0c != 1) {\n          cVar5 = 'w';\n        }\n        bVar17 = DAT_00088ff8 == cVar5;\n      }\n      local_48 = 0x40000;\n      if ((DAT_00088f0c == 1) != bVar17) {\nLAB_00046d4f:\n        local_48 = 0x20000;\n      }\n    }" { (expression_statement "bVar17 = true;" (assignment_expression "bVar17 = true" identifier = true) ;) (if_statement "if (DAT_00089093 == '\0') {\n        cVar5 = 'l';\n        if (DAT_00088f0c != 1) {\n          cVar5 = 'w';\n        }\n        bVar17 = DAT_00088ff8 == cVar5;\n      }" if (parenthesized_expression "(DAT_00089093 == '\0')" ( (binary_expression "DAT_00089093 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        cVar5 = 'l';\n        if (DAT_00088f0c != 1) {\n          cVar5 = 'w';\n        }\n        bVar17 = DAT_00088ff8 == cVar5;\n      }" { (expression_statement "cVar5 = 'l';" (assignment_expression "cVar5 = 'l'" identifier = (char_literal "'l'" ' character ')) ;) (if_statement "if (DAT_00088f0c != 1) {\n          cVar5 = 'w';\n        }" if (parenthesized_expression "(DAT_00088f0c != 1)" ( (binary_expression "DAT_00088f0c != 1" identifier != number_literal) )) (compound_statement "{\n          cVar5 = 'w';\n        }" { (expression_statement "cVar5 = 'w';" (assignment_expression "cVar5 = 'w'" identifier = (char_literal "'w'" ' character ')) ;) })) (expression_statement "bVar17 = DAT_00088ff8 == cVar5;" (assignment_expression "bVar17 = DAT_00088ff8 == cVar5" identifier = (binary_expression "DAT_00088ff8 == cVar5" identifier == identifier)) ;) })) (expression_statement "local_48 = 0x40000;" (assignment_expression "local_48 = 0x40000" identifier = number_literal) ;) (if_statement "if ((DAT_00088f0c == 1) != bVar17) {\nLAB_00046d4f:\n        local_48 = 0x20000;\n      }" if (parenthesized_expression "((DAT_00088f0c == 1) != bVar17)" ( (binary_expression "(DAT_00088f0c == 1) != bVar17" (parenthesized_expression "(DAT_00088f0c == 1)" ( (binary_expression "DAT_00088f0c == 1" identifier == number_literal) )) != identifier) )) (compound_statement "{\nLAB_00046d4f:\n        local_48 = 0x20000;\n      }" { (labeled_statement "LAB_00046d4f:\n        local_48 = 0x20000;" statement_identifier : (expression_statement "local_48 = 0x20000;" (assignment_expression "local_48 = 0x20000" identifier = number_literal) ;)) })) }))) }) (else_clause "else {\n    local_48 = 0x40000;\n    if (DAT_00088f0c == 2) {\n      local_48 = 0x1c0000;\n      if (DAT_00089092 != '\0') {\n        local_48 = 0x40000;\n      }\n    }\n    else if ((DAT_00089092 != '\0') != (DAT_00088f0c == 1)) goto LAB_00046d4f;\n  }" else (compound_statement "{\n    local_48 = 0x40000;\n    if (DAT_00088f0c == 2) {\n      local_48 = 0x1c0000;\n      if (DAT_00089092 != '\0') {\n        local_48 = 0x40000;\n      }\n    }\n    else if ((DAT_00089092 != '\0') != (DAT_00088f0c == 1)) goto LAB_00046d4f;\n  }" { (expression_statement "local_48 = 0x40000;" (assignment_expression "local_48 = 0x40000" identifier = number_literal) ;) (if_statement "if (DAT_00088f0c == 2) {\n      local_48 = 0x1c0000;\n      if (DAT_00089092 != '\0') {\n        local_48 = 0x40000;\n      }\n    }\n    else if ((DAT_00089092 != '\0') != (DAT_00088f0c == 1)) goto LAB_00046d4f;" if (parenthesized_expression "(DAT_00088f0c == 2)" ( (binary_expression "DAT_00088f0c == 2" identifier == number_literal) )) (compound_statement "{\n      local_48 = 0x1c0000;\n      if (DAT_00089092 != '\0') {\n        local_48 = 0x40000;\n      }\n    }" { (expression_statement "local_48 = 0x1c0000;" (assignment_expression "local_48 = 0x1c0000" identifier = number_literal) ;) (if_statement "if (DAT_00089092 != '\0') {\n        local_48 = 0x40000;\n      }" if (parenthesized_expression "(DAT_00089092 != '\0')" ( (binary_expression "DAT_00089092 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        local_48 = 0x40000;\n      }" { (expression_statement "local_48 = 0x40000;" (assignment_expression "local_48 = 0x40000" identifier = number_literal) ;) })) }) (else_clause "else if ((DAT_00089092 != '\0') != (DAT_00088f0c == 1)) goto LAB_00046d4f;" else (if_statement "if ((DAT_00089092 != '\0') != (DAT_00088f0c == 1)) goto LAB_00046d4f;" if (parenthesized_expression "((DAT_00089092 != '\0') != (DAT_00088f0c == 1))" ( (binary_expression "(DAT_00089092 != '\0') != (DAT_00088f0c == 1)" (parenthesized_expression "(DAT_00089092 != '\0')" ( (binary_expression "DAT_00089092 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) != (parenthesized_expression "(DAT_00088f0c == 1)" ( (binary_expression "DAT_00088f0c == 1" identifier == number_literal) ))) )) (goto_statement "goto LAB_00046d4f;" goto statement_identifier ;)))) }))) (expression_statement "(&DAT_00088fa0)[(DAT_00080558 + 0xe) * 2] = (&DAT_00088fa0)[(DAT_00080558 + 0xe) * 2] | local_48;" (assignment_expression "(&DAT_00088fa0)[(DAT_00080558 + 0xe) * 2] = (&DAT_00088fa0)[(DAT_00080558 + 0xe) * 2] | local_48" (subscript_expression "(&DAT_00088fa0)[(DAT_00080558 + 0xe) * 2]" (parenthesized_expression "(&DAT_00088fa0)" ( (pointer_expression "&DAT_00088fa0" & identifier) )) [ (binary_expression "(DAT_00080558 + 0xe) * 2" (parenthesized_expression "(DAT_00080558 + 0xe)" ( (binary_expression "DAT_00080558 + 0xe" identifier + number_literal) )) * number_literal) ]) = (binary_expression "(&DAT_00088fa0)[(DAT_00080558 + 0xe) * 2] | local_48" (subscript_expression "(&DAT_00088fa0)[(DAT_00080558 + 0xe) * 2]" (parenthesized_expression "(&DAT_00088fa0)" ( (pointer_expression "&DAT_00088fa0" & identifier) )) [ (binary_expression "(DAT_00080558 + 0xe) * 2" (parenthesized_expression "(DAT_00080558 + 0xe)" ( (binary_expression "DAT_00080558 + 0xe" identifier + number_literal) )) * number_literal) ]) | identifier)) ;) (expression_statement "iVar1 = DAT_00089004 * 0x14;" (assignment_expression "iVar1 = DAT_00089004 * 0x14" identifier = (binary_expression "DAT_00089004 * 0x14" identifier * number_literal)) ;) (expression_statement "(&DAT_00089038)[iVar9] = &DAT_00088f60 + iVar1;" (assignment_expression "(&DAT_00089038)[iVar9] = &DAT_00088f60 + iVar1" (subscript_expression "(&DAT_00089038)[iVar9]" (parenthesized_expression "(&DAT_00089038)" ( (pointer_expression "&DAT_00089038" & identifier) )) [ identifier ]) = (binary_expression "&DAT_00088f60 + iVar1" (pointer_expression "&DAT_00088f60" & identifier) + identifier)) ;) (expression_statement "uVar7 = DAT_00089978;" (assignment_expression "uVar7 = DAT_00089978" identifier = identifier) ;) (expression_statement "DAT_00089004 = DAT_00089004 + 1;" (assignment_expression "DAT_00089004 = DAT_00089004 + 1" identifier = (binary_expression "DAT_00089004 + 1" identifier + number_literal)) ;) (expression_statement "pbVar10 = DAT_000890fc + 1;" (assignment_expression "pbVar10 = DAT_000890fc + 1" identifier = (binary_expression "DAT_000890fc + 1" identifier + number_literal)) ;) (expression_statement "DAT_00089978 = pbVar16;" (assignment_expression "DAT_00089978 = pbVar16" identifier = identifier) ;) (expression_statement "*DAT_000890fc = *local_44;" (assignment_expression "*DAT_000890fc = *local_44" (pointer_expression "*DAT_000890fc" * identifier) = (pointer_expression "*local_44" * identifier)) ;) (expression_statement "DAT_000890fc = pbVar10;" (assignment_expression "DAT_000890fc = pbVar10" identifier = identifier) ;) (expression_statement "*local_44 = 0;" (assignment_expression "*local_44 = 0" (pointer_expression "*local_44" * identifier) = number_literal) ;) (expression_statement "pbVar16 = (byte *)FUN_000453b0();" (assignment_expression "pbVar16 = (byte *)FUN_000453b0()" identifier = (cast_expression "(byte *)FUN_000453b0()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000453b0()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (pbVar16 != (byte *)0x0) {\n    DAT_00089978 = pbVar16;\n  }" if (parenthesized_expression "(pbVar16 != (byte *)0x0)" ( (binary_expression "pbVar16 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    DAT_00089978 = pbVar16;\n  }" { (expression_statement "DAT_00089978 = pbVar16;" (assignment_expression "DAT_00089978 = pbVar16" identifier = identifier) ;) })) (expression_statement "FUN_000221d0(0,&DAT_00088f60 + iVar1,1);" (call_expression "FUN_000221d0(0,&DAT_00088f60 + iVar1,1)" identifier (argument_list "(0,&DAT_00088f60 + iVar1,1)" ( number_literal , (binary_expression "&DAT_00088f60 + iVar1" (pointer_expression "&DAT_00088f60" & identifier) + identifier) , number_literal ))) ;) (expression_statement "bVar4 = *DAT_00089978;" (assignment_expression "bVar4 = *DAT_00089978" identifier = (pointer_expression "*DAT_00089978" * identifier)) ;) (if_statement "if (bVar4 == 0x20) {\n    bVar4 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }" if (parenthesized_expression "(bVar4 == 0x20)" ( (binary_expression "bVar4 == 0x20" identifier == number_literal) )) (compound_statement "{\n    bVar4 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }" { (expression_statement "bVar4 = DAT_00089978[1];" (assignment_expression "bVar4 = DAT_00089978[1]" identifier = (subscript_expression "DAT_00089978[1]" identifier [ number_literal ])) ;) (expression_statement "DAT_00089978 = DAT_00089978 + 1;" (assignment_expression "DAT_00089978 = DAT_00089978 + 1" identifier = (binary_expression "DAT_00089978 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar10 = DAT_00089978;" (assignment_expression "pbVar10 = DAT_00089978" identifier = identifier) ;) (if_statement "if (bVar4 != 0) {\n    uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n    FUN_0002bd60(uVar12,pbVar10);\n  }" if (parenthesized_expression "(bVar4 != 0)" ( (binary_expression "bVar4 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n    FUN_0002bd60(uVar12,pbVar10);\n  }" { (expression_statement "uVar12 = dcgettext(0,"junk `%s\' after expression",5);" (assignment_expression "uVar12 = dcgettext(0,"junk `%s\' after expression",5)" identifier = (call_expression "dcgettext(0,"junk `%s\' after expression",5)" identifier (argument_list "(0,"junk `%s\' after expression",5)" ( number_literal , (string_literal ""junk `%s\' after expression"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "FUN_0002bd60(uVar12,pbVar10);" (call_expression "FUN_0002bd60(uVar12,pbVar10)" identifier (argument_list "(uVar12,pbVar10)" ( identifier , identifier ))) ;) })) (expression_statement "DAT_00089978 = (byte *)uVar7;" (assignment_expression "DAT_00089978 = (byte *)uVar7" identifier = (cast_expression "(byte *)uVar7" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (pbVar16 != (byte *)0x0) {\n    free(pbVar16);\n    if (((&DAT_00088f70)[iVar6 * 0x14] == '\x02') || ((&DAT_00088f70)[iVar6 * 0x14] == '\x05')) {\n      (&DAT_00088f70)[iVar6 * 0x14] = 0;\n    }\n  }" if (parenthesized_expression "(pbVar16 != (byte *)0x0)" ( (binary_expression "pbVar16 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    free(pbVar16);\n    if (((&DAT_00088f70)[iVar6 * 0x14] == '\x02') || ((&DAT_00088f70)[iVar6 * 0x14] == '\x05')) {\n      (&DAT_00088f70)[iVar6 * 0x14] = 0;\n    }\n  }" { (expression_statement "free(pbVar16);" (call_expression "free(pbVar16)" identifier (argument_list "(pbVar16)" ( identifier ))) ;) (if_statement "if (((&DAT_00088f70)[iVar6 * 0x14] == '\x02') || ((&DAT_00088f70)[iVar6 * 0x14] == '\x05')) {\n      (&DAT_00088f70)[iVar6 * 0x14] = 0;\n    }" if (parenthesized_expression "(((&DAT_00088f70)[iVar6 * 0x14] == '\x02') || ((&DAT_00088f70)[iVar6 * 0x14] == '\x05'))" ( (binary_expression "((&DAT_00088f70)[iVar6 * 0x14] == '\x02') || ((&DAT_00088f70)[iVar6 * 0x14] == '\x05')" (parenthesized_expression "((&DAT_00088f70)[iVar6 * 0x14] == '\x02')" ( (binary_expression "(&DAT_00088f70)[iVar6 * 0x14] == '\x02'" (subscript_expression "(&DAT_00088f70)[iVar6 * 0x14]" (parenthesized_expression "(&DAT_00088f70)" ( (pointer_expression "&DAT_00088f70" & identifier) )) [ (binary_expression "iVar6 * 0x14" identifier * number_literal) ]) == (char_literal "'\x02'" ' escape_sequence ')) )) || (parenthesized_expression "((&DAT_00088f70)[iVar6 * 0x14] == '\x05')" ( (binary_expression "(&DAT_00088f70)[iVar6 * 0x14] == '\x05'" (subscript_expression "(&DAT_00088f70)[iVar6 * 0x14]" (parenthesized_expression "(&DAT_00088f70)" ( (pointer_expression "&DAT_00088f70" & identifier) )) [ (binary_expression "iVar6 * 0x14" identifier * number_literal) ]) == (char_literal "'\x05'" ' escape_sequence ')) ))) )) (compound_statement "{\n      (&DAT_00088f70)[iVar6 * 0x14] = 0;\n    }" { (expression_statement "(&DAT_00088f70)[iVar6 * 0x14] = 0;" (assignment_expression "(&DAT_00088f70)[iVar6 * 0x14] = 0" (subscript_expression "(&DAT_00088f70)[iVar6 * 0x14]" (parenthesized_expression "(&DAT_00088f70)" ( (pointer_expression "&DAT_00088f70" & identifier) )) [ (binary_expression "iVar6 * 0x14" identifier * number_literal) ]) = number_literal) ;) })) })) (expression_statement "iVar9 = FUN_000466b0();" (assignment_expression "iVar9 = FUN_000466b0()" identifier = (call_expression "FUN_000466b0()" identifier (argument_list "()" ( )))) ;) (expression_statement "pbVar16 = DAT_000890fc + -1;" (assignment_expression "pbVar16 = DAT_000890fc + -1" identifier = (binary_expression "DAT_000890fc + -1" identifier + number_literal)) ;) (expression_statement "DAT_000890fc = DAT_000890fc + -1;" (assignment_expression "DAT_000890fc = DAT_000890fc + -1" identifier = (binary_expression "DAT_000890fc + -1" identifier + number_literal)) ;) (expression_statement "*local_44 = *pbVar16;" (assignment_expression "*local_44 = *pbVar16" (pointer_expression "*local_44" * identifier) = (pointer_expression "*pbVar16" * identifier)) ;) (if_statement "if (iVar9 == 0) {\n    return false;\n  }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n    return false;\n  }" { (return_statement "return false;" return false ;) })) (labeled_statement "LAB_00046e80:\n  if (((((DAT_00089074 != 0) && (*(int *)(DAT_00089074 + 8) == DAT_000654e4)) &&\n       (*(int *)(DAT_00089074 + 4) == DAT_000654e0)) && ((DAT_00089078 == 0 && (DAT_0008907c == 0)))\n      ) && ((*(int *)(&DAT_00089080 + DAT_00089008 * 4) == 0 &&\n            (iVar9 = DAT_00080558 + 0xe, (*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f) == 0\n            )))) {\n    (&DAT_00088fa0)[iVar9 * 2] = 0;\n    *(undefined4 *)(&DAT_00088fa4 + iVar9 * 8) = 0;\n    pbVar16 = (byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2);\n    *pbVar16 = *pbVar16 | 0x80;\n    return true;\n  }" statement_identifier : (if_statement "if (((((DAT_00089074 != 0) && (*(int *)(DAT_00089074 + 8) == DAT_000654e4)) &&\n       (*(int *)(DAT_00089074 + 4) == DAT_000654e0)) && ((DAT_00089078 == 0 && (DAT_0008907c == 0)))\n      ) && ((*(int *)(&DAT_00089080 + DAT_00089008 * 4) == 0 &&\n            (iVar9 = DAT_00080558 + 0xe, (*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f) == 0\n            )))) {\n    (&DAT_00088fa0)[iVar9 * 2] = 0;\n    *(undefined4 *)(&DAT_00088fa4 + iVar9 * 8) = 0;\n    pbVar16 = (byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2);\n    *pbVar16 = *pbVar16 | 0x80;\n    return true;\n  }" if (parenthesized_expression "(((((DAT_00089074 != 0) && (*(int *)(DAT_00089074 + 8) == DAT_000654e4)) &&\n       (*(int *)(DAT_00089074 + 4) == DAT_000654e0)) && ((DAT_00089078 == 0 && (DAT_0008907c == 0)))\n      ) && ((*(int *)(&DAT_00089080 + DAT_00089008 * 4) == 0 &&\n            (iVar9 = DAT_00080558 + 0xe, (*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f) == 0\n            ))))" ( (binary_expression "((((DAT_00089074 != 0) && (*(int *)(DAT_00089074 + 8) == DAT_000654e4)) &&\n       (*(int *)(DAT_00089074 + 4) == DAT_000654e0)) && ((DAT_00089078 == 0 && (DAT_0008907c == 0)))\n      ) && ((*(int *)(&DAT_00089080 + DAT_00089008 * 4) == 0 &&\n            (iVar9 = DAT_00080558 + 0xe, (*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f) == 0\n            )))" (parenthesized_expression "((((DAT_00089074 != 0) && (*(int *)(DAT_00089074 + 8) == DAT_000654e4)) &&\n       (*(int *)(DAT_00089074 + 4) == DAT_000654e0)) && ((DAT_00089078 == 0 && (DAT_0008907c == 0)))\n      )" ( (binary_expression "(((DAT_00089074 != 0) && (*(int *)(DAT_00089074 + 8) == DAT_000654e4)) &&\n       (*(int *)(DAT_00089074 + 4) == DAT_000654e0)) && ((DAT_00089078 == 0 && (DAT_0008907c == 0)))" (parenthesized_expression "(((DAT_00089074 != 0) && (*(int *)(DAT_00089074 + 8) == DAT_000654e4)) &&\n       (*(int *)(DAT_00089074 + 4) == DAT_000654e0))" ( (binary_expression "((DAT_00089074 != 0) && (*(int *)(DAT_00089074 + 8) == DAT_000654e4)) &&\n       (*(int *)(DAT_00089074 + 4) == DAT_000654e0)" (parenthesized_expression "((DAT_00089074 != 0) && (*(int *)(DAT_00089074 + 8) == DAT_000654e4))" ( (binary_expression "(DAT_00089074 != 0) && (*(int *)(DAT_00089074 + 8) == DAT_000654e4)" (parenthesized_expression "(DAT_00089074 != 0)" ( (binary_expression "DAT_00089074 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(int *)(DAT_00089074 + 8) == DAT_000654e4)" ( (binary_expression "*(int *)(DAT_00089074 + 8) == DAT_000654e4" (pointer_expression "*(int *)(DAT_00089074 + 8)" * (cast_expression "(int *)(DAT_00089074 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00089074 + 8)" ( (binary_expression "DAT_00089074 + 8" identifier + number_literal) )))) == identifier) ))) )) && (parenthesized_expression "(*(int *)(DAT_00089074 + 4) == DAT_000654e0)" ( (binary_expression "*(int *)(DAT_00089074 + 4) == DAT_000654e0" (pointer_expression "*(int *)(DAT_00089074 + 4)" * (cast_expression "(int *)(DAT_00089074 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00089074 + 4)" ( (binary_expression "DAT_00089074 + 4" identifier + number_literal) )))) == identifier) ))) )) && (parenthesized_expression "((DAT_00089078 == 0 && (DAT_0008907c == 0)))" ( (parenthesized_expression "(DAT_00089078 == 0 && (DAT_0008907c == 0))" ( (binary_expression "DAT_00089078 == 0 && (DAT_0008907c == 0)" (binary_expression "DAT_00089078 == 0" identifier == number_literal) && (parenthesized_expression "(DAT_0008907c == 0)" ( (binary_expression "DAT_0008907c == 0" identifier == number_literal) ))) )) ))) )) && (parenthesized_expression "((*(int *)(&DAT_00089080 + DAT_00089008 * 4) == 0 &&\n            (iVar9 = DAT_00080558 + 0xe, (*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f) == 0\n            )))" ( (parenthesized_expression "(*(int *)(&DAT_00089080 + DAT_00089008 * 4) == 0 &&\n            (iVar9 = DAT_00080558 + 0xe, (*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f) == 0\n            ))" ( (binary_expression "*(int *)(&DAT_00089080 + DAT_00089008 * 4) == 0 &&\n            (iVar9 = DAT_00080558 + 0xe, (*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f) == 0\n            )" (binary_expression "*(int *)(&DAT_00089080 + DAT_00089008 * 4) == 0" (pointer_expression "*(int *)(&DAT_00089080 + DAT_00089008 * 4)" * (cast_expression "(int *)(&DAT_00089080 + DAT_00089008 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00089080 + DAT_00089008 * 4)" ( (binary_expression "&DAT_00089080 + DAT_00089008 * 4" (pointer_expression "&DAT_00089080" & identifier) + (binary_expression "DAT_00089008 * 4" identifier * number_literal)) )))) == number_literal) && (parenthesized_expression "(iVar9 = DAT_00080558 + 0xe, (*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f) == 0\n            )" ( (comma_expression "iVar9 = DAT_00080558 + 0xe, (*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f) == 0" (assignment_expression "iVar9 = DAT_00080558 + 0xe" identifier = (binary_expression "DAT_00080558 + 0xe" identifier + number_literal)) , (binary_expression "(*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f) == 0" (parenthesized_expression "(*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f)" ( (binary_expression "*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f" (pointer_expression "*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2)" * (cast_expression "(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&DAT_00088fa0 + iVar9 * 8 + 2)" ( (binary_expression "(int)&DAT_00088fa0 + iVar9 * 8 + 2" (binary_expression "(int)&DAT_00088fa0 + iVar9 * 8" (cast_expression "(int)&DAT_00088fa0" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&DAT_00088fa0" & identifier)) + (binary_expression "iVar9 * 8" identifier * number_literal)) + number_literal) )))) & number_literal) )) == number_literal)) ))) )) ))) )) (compound_statement "{\n    (&DAT_00088fa0)[iVar9 * 2] = 0;\n    *(undefined4 *)(&DAT_00088fa4 + iVar9 * 8) = 0;\n    pbVar16 = (byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2);\n    *pbVar16 = *pbVar16 | 0x80;\n    return true;\n  }" { (expression_statement "(&DAT_00088fa0)[iVar9 * 2] = 0;" (assignment_expression "(&DAT_00088fa0)[iVar9 * 2] = 0" (subscript_expression "(&DAT_00088fa0)[iVar9 * 2]" (parenthesized_expression "(&DAT_00088fa0)" ( (pointer_expression "&DAT_00088fa0" & identifier) )) [ (binary_expression "iVar9 * 2" identifier * number_literal) ]) = number_literal) ;) (expression_statement "*(undefined4 *)(&DAT_00088fa4 + iVar9 * 8) = 0;" (assignment_expression "*(undefined4 *)(&DAT_00088fa4 + iVar9 * 8) = 0" (pointer_expression "*(undefined4 *)(&DAT_00088fa4 + iVar9 * 8)" * (cast_expression "(undefined4 *)(&DAT_00088fa4 + iVar9 * 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00088fa4 + iVar9 * 8)" ( (binary_expression "&DAT_00088fa4 + iVar9 * 8" (pointer_expression "&DAT_00088fa4" & identifier) + (binary_expression "iVar9 * 8" identifier * number_literal)) )))) = number_literal) ;) (expression_statement "pbVar16 = (byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2);" (assignment_expression "pbVar16 = (byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2)" identifier = (cast_expression "(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&DAT_00088fa0 + iVar9 * 8 + 2)" ( (binary_expression "(int)&DAT_00088fa0 + iVar9 * 8 + 2" (binary_expression "(int)&DAT_00088fa0 + iVar9 * 8" (cast_expression "(int)&DAT_00088fa0" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&DAT_00088fa0" & identifier)) + (binary_expression "iVar9 * 8" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "*pbVar16 = *pbVar16 | 0x80;" (assignment_expression "*pbVar16 = *pbVar16 | 0x80" (pointer_expression "*pbVar16" * identifier) = (binary_expression "*pbVar16 | 0x80" (pointer_expression "*pbVar16" * identifier) | number_literal)) ;) (return_statement "return true;" return true ;) }))) (labeled_statement "LAB_00046ea4:\n  iVar9 = FUN_00045de0();" statement_identifier : (expression_statement "iVar9 = FUN_00045de0();" (assignment_expression "iVar9 = FUN_00045de0()" identifier = (call_expression "FUN_00045de0()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (iVar9 == 0) {\n    return false;\n  }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n    return false;\n  }" { (return_statement "return false;" return false ;) })) (expression_statement "pbVar16 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);" (assignment_expression "pbVar16 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3)" identifier = (cast_expression "(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&DAT_00089010 + DAT_00080558 * 8 + 3)" ( (binary_expression "(int)&DAT_00089010 + DAT_00080558 * 8 + 3" (binary_expression "(int)&DAT_00089010 + DAT_00080558 * 8" (cast_expression "(int)&DAT_00089010" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&DAT_00089010" & identifier)) + (binary_expression "DAT_00080558 * 8" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "*pbVar16 = *pbVar16 | 0x10;" (assignment_expression "*pbVar16 = *pbVar16 | 0x10" (pointer_expression "*pbVar16" * identifier) = (binary_expression "*pbVar16 | 0x10" (pointer_expression "*pbVar16" * identifier) | number_literal)) ;) (if_statement "if (DAT_00089008 == 0) {\n    DAT_00089088 = xstrdup(param_1);\n  }" if (parenthesized_expression "(DAT_00089008 == 0)" ( (binary_expression "DAT_00089008 == 0" identifier == number_literal) )) (compound_statement "{\n    DAT_00089088 = xstrdup(param_1);\n  }" { (expression_statement "DAT_00089088 = xstrdup(param_1);" (assignment_expression "DAT_00089088 = xstrdup(param_1)" identifier = (call_expression "xstrdup(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) })) (expression_statement "DAT_00089008 = DAT_00089008 + 1;" (assignment_expression "DAT_00089008 = DAT_00089008 + 1" identifier = (binary_expression "DAT_00089008 + 1" identifier + number_literal)) ;) (return_statement "return true;" return true ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * 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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + (binary_expression IDENT * LIT)) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | LIT)) ;) })) (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 (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (return_statement return BOOL ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + (binary_expression IDENT * LIT)) + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (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 BOOL ;) })) (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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) = (binary_expression (pointer_expression & IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_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 ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (call_expression IDENT (argument_list ( LIT , (binary_expression (pointer_expression & IDENT) + IDENT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return BOOL ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT * LIT) ]) == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT * LIT) ]) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT * LIT) ]) = LIT) ;) })) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , LIT , IDENT )))) ;) (return_statement return (binary_expression IDENT != LIT) ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return BOOL ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) && (binary_expression IDENT != LIT)) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + LIT) , IDENT ))) ;) (return_statement return BOOL ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return BOOL ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = 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 IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT * LIT) ]) = (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT * LIT) ]) | (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression IDENT * LIT)) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression IDENT * LIT)) )))) | IDENT)) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT * LIT) ]) = (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT * LIT) ]) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) = IDENT) ;) (return_statement return BOOL ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content ") , LIT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (return_statement return BOOL ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (switch_statement switch (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (compound_statement { (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression IDENT * LIT)) )))) = IDENT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression IDENT * LIT)) )))) = IDENT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression IDENT * LIT)) )))) = IDENT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression IDENT * LIT)) )))) = IDENT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression IDENT * LIT)) )))) = IDENT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression IDENT * LIT)) )))) = IDENT) ;)) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + (binary_expression IDENT * LIT)) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | LIT)) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (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 = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return BOOL ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (return_statement return BOOL ;) }))) })))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , LIT ))))) ;) (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 < IDENT) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == LIT))) ))) )) (compound_statement { (return_statement return BOOL ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + (binary_expression IDENT * LIT)) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (return_statement return BOOL ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + (binary_expression IDENT * LIT)) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (goto_statement goto statement_identifier ;) })) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (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 { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (return_statement return BOOL ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , LIT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (return_statement return BOOL ;) })) }) (else_clause else (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 = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (goto_statement goto statement_identifier ;) })) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression 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)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression LIT << IDENT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (unary_expression - (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) < (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (return_statement return BOOL ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (return_statement return BOOL ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence string_content escape_sequence ")) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (return_statement return BOOL ;) })) (break_statement break ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) }) while (parenthesized_expression ( BOOL )) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (return_statement return BOOL ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) + LIT) )))) & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) & LIT) )) != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression IDENT == (char_literal ' character '))) ))) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' character ')) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' character ')) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == IDENT)) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) != IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) })) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) != (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (goto_statement goto statement_identifier ;)))) }))) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT) ]) = (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT) ]) | IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) = (binary_expression (pointer_expression & IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (call_expression IDENT (argument_list ( LIT , (binary_expression (pointer_expression & IDENT) + IDENT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT * LIT) ]) == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT * LIT) ]) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT * LIT) ]) = LIT) ;) })) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return BOOL ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) ))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression IDENT * LIT)) )))) == LIT) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + (binary_expression IDENT * LIT)) + LIT) )))) & LIT) )) == LIT)) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT * LIT) ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression IDENT * LIT)) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + (binary_expression IDENT * LIT)) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | LIT)) ;) (return_statement return BOOL ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return BOOL ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + (binary_expression IDENT * LIT)) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (return_statement return BOOL ;) })))
(function_definition "bool __regparm3 FUN_00046910(byte *param_1)\n\n{\n  int iVar1;\n  byte *pbVar2;\n  uint uVar3;\n  byte bVar4;\n  char cVar5;\n  int iVar6;\n  undefined4 uVar7;\n  size_t sVar8;\n  int iVar9;\n  byte *pbVar10;\n  undefined4 *puVar11;\n  undefined4 uVar12;\n  char *pcVar13;\n  sbyte sVar14;\n  undefined4 extraout_ECX;\n  byte *pbVar15;\n  byte *pbVar16;\n  bool bVar17;\n  longlong lVar18;\n  uint local_48;\n  byte *local_44;\n  byte *local_28;\n  \n  bVar4 = *param_1;\n  pbVar16 = param_1;\n  if (bVar4 == 0x20) {\n    bVar4 = param_1[1];\n    pbVar16 = param_1 + 1;\n  }\n  if (bVar4 == 0x2a) {\n    if (pbVar16[1] == 0x20) {\n      pbVar16 = pbVar16 + 2;\n    }\n    else {\n      pbVar16 = pbVar16 + 1;\n    }\n    pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);\n    *pbVar10 = *pbVar10 | 2;\n  }\n  iVar6 = FUN_00044f30();\n  iVar9 = DAT_0008900c;\n  if (iVar6 == 0) {\n    bVar4 = *pbVar16;\n    if (bVar4 == 0x25) {\n      pcVar13 = "bad register name `%s\'";\nLAB_00046f4c:\n      uVar7 = dcgettext(0,pcVar13,5);\n      FUN_0002bd60(uVar7,pbVar16);\n      return false;\n    }\n    if (bVar4 == 0x24) {\n      if ((*(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3) & 2) != 0) {\n        uVar7 = dcgettext(0,"immediate operand illegal with absolute jump",5);\n        FUN_0002bd60(uVar7);\n        return false;\n      }\n      if (DAT_0008900c != 2) {\n        iVar6 = DAT_0008900c * 5;\n        DAT_0008900c = DAT_0008900c + 1;\n        (&DAT_00089038)[DAT_00080558] = &DAT_00088f20 + iVar6;\n        uVar7 = DAT_00089978;\n        local_44 = pbVar16 + 2;\n        if (pbVar16[1] != 0x20) {\n          local_44 = pbVar16 + 1;\n        }\n        DAT_00089978 = local_44;\n        pbVar16 = (byte *)FUN_000453b0();\n        if (pbVar16 != (byte *)0x0) {\n          DAT_00089978 = pbVar16;\n        }\n        FUN_000221d0(0,&DAT_00088f20 + iVar6,1);\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n          DAT_00089978 = DAT_00089978 + 1;\n        }\n        if (bVar4 == 0x7b) {\n          DAT_00089978 = (byte *)FUN_00045070();\n          if (DAT_00089978 == (byte *)0x0) {\n            return false;\n          }\n          bVar4 = *DAT_00089978;\n        }\n        pbVar10 = DAT_00089978;\n        if (bVar4 != 0) {\n          uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n          FUN_0002bd60(uVar12,pbVar10);\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (pbVar16 != (byte *)0x0) {\n          free(pbVar16);\n          if (((&DAT_00088f30)[iVar9 * 0x14] == '\x02') || ((&DAT_00088f30)[iVar9 * 0x14] == '\x05')\n             ) {\n            (&DAT_00088f30)[iVar9 * 0x14] = 0;\n          }\n        }\n        iVar9 = FUN_00041f60(0xffffffff,0xffffffff,local_44);\n        return iVar9 != 0;\n      }\n      pcVar13 = "at most %d immediate operands are allowed";\n      goto LAB_00047443;\n    }\n    if (*param_1 == 0x7b) {\n      iVar9 = FUN_000464f0();\n      if (iVar9 != 0) {\n        return true;\n      }\n      bVar4 = *pbVar16;\n    }\n    iVar9 = DAT_00080558;\n    if ((((&DAT_00089120)[bVar4] == '\0') && (bVar4 != 0x28 && bVar4 != 0x22)) &&\n       ((&DAT_00089220)[bVar4] == '\0')) {\n      uVar7 = FUN_00046660();\n      uVar12 = dcgettext(0,"invalid char %s beginning operand %d `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7,iVar9 + 1,pbVar16);\n      return false;\n    }\n    goto LAB_00046c60;\n  }\n  bVar4 = *local_28;\n  pbVar10 = local_28;\n  if (bVar4 == 0x20) {\n    bVar4 = local_28[1];\n    pbVar10 = local_28 + 1;\n  }\n  if (bVar4 != 0x3a) {\n    if (bVar4 == 0x7b) {\n      pbVar10 = (byte *)FUN_00045070();\n      if (pbVar10 == (byte *)0x0) {\n        return false;\n      }\n      bVar4 = *pbVar10;\n    }\n    iVar9 = DAT_00080558;\n    if (bVar4 == 0) {\n      uVar3 = *(uint *)(iVar6 + 8);\n      iVar1 = DAT_00080558 + 0xe;\n      (&DAT_00088fa0)[iVar1 * 2] = (&DAT_00088fa0)[iVar1 * 2] | *(uint *)(iVar6 + 4) & 0xffbfffff;\n      *(uint *)(&DAT_00088fa4 + iVar1 * 8) = *(uint *)(&DAT_00088fa4 + iVar1 * 8) | uVar3;\n      (&DAT_00088fa4)[iVar1 * 8] = (&DAT_00088fa4)[iVar1 * 8] & 0xbf;\n      DAT_00089000 = DAT_00089000 + 1;\n      (&DAT_00089038)[iVar9] = iVar6;\n      return true;\n    }\nLAB_00046ad0:\n    uVar7 = dcgettext(0,"junk `%s\' after register",5);\n    FUN_0002bd60(uVar7,pbVar10);\n    return false;\n  }\n  if ((*(ushort *)(iVar6 + 4) & 0x180) == 0) goto LAB_00046ad0;\n  switch(*(undefined1 *)(iVar6 + 0xd)) {\n  case 0:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_es_0007fff8;\n    break;\n  case 1:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_cs_0007ffc8;\n    break;\n  case 2:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ss_0007ffcc;\n    break;\n  case 3:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ds_0007ff80;\n    break;\n  case 4:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_fs_0007ffac;\n    break;\n  case 5:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_gs_0007ff68;\n  }\n  bVar4 = pbVar10[1];\n  pbVar16 = pbVar10 + 1;\n  if (bVar4 == 0x20) {\n    bVar4 = pbVar10[2];\n    pbVar16 = pbVar10 + 2;\n  }\n  if (((&DAT_00089120)[bVar4] == '\0') && ((&DAT_00089220)[bVar4] == '\0')) {\n    if (bVar4 != 0x28) {\n      if (bVar4 != 0x2a) {\n        pcVar13 = "bad memory operand `%s\'";\n        goto LAB_00046f4c;\n      }\nLAB_00046c3c:\n      if (pbVar16[1] == 0x20) {\n        pbVar16 = pbVar16 + 2;\n      }\n      else {\n        pbVar16 = pbVar16 + 1;\n      }\n      pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);\n      *pbVar10 = *pbVar10 | 2;\n    }\n  }\n  else if (bVar4 == 0x2a) goto LAB_00046c3c;\nLAB_00046c60:\n  if (DAT_00089008 == 1) {\n    iVar9 = FUN_00046270();\n    if (iVar9 == 0) {\n      return false;\n    }\n    if (DAT_00089008 != 1) goto LAB_00046c6f;\n    puVar11 = (undefined4 *)*DAT_00088f88;\n    if ((*(byte *)((int)puVar11 + 0x27) & 1) == 0) goto LAB_0004729e;\n  }\n  else {\nLAB_00046c6f:\n    if (DAT_00089008 == 2) {\n      puVar11 = (undefined4 *)*DAT_00088f88;\nLAB_0004729e:\n      uVar7 = *puVar11;\n      uVar12 = dcgettext(0,"too many memory references for `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7);\n      return false;\n    }\n  }\n  sVar8 = strlen((char *)pbVar16);\n  local_44 = pbVar16 + sVar8;\n  pbVar10 = (byte *)strchr((char *)pbVar16,0x7b);\n  if (((pbVar10 != (byte *)0x0) && (pbVar10 < local_44)) &&\n     (iVar9 = FUN_00045070(), local_44 = pbVar10, iVar9 == 0)) {\n    return false;\n  }\n  pbVar10 = local_44 + -1;\n  if (local_44[-1] == 0x20) {\n    pbVar10 = local_44 + -2;\n    local_44 = local_44 + -1;\n  }\n  pbVar15 = local_44;\n  if (*pbVar10 == 0x29) {\n    bVar4 = pbVar10[-1];\n    iVar9 = 1;\n    pbVar15 = pbVar10 + -1;\n    if (bVar4 == 0x29) goto LAB_000471f8;\nLAB_000471e0:\n    if (bVar4 != 0x28) goto LAB_000471eb;\n    iVar9 = iVar9 + -1;\n    do {\n      if (iVar9 == 0) {\n        bVar4 = pbVar15[1];\n        if (bVar4 == 0x20) {\n          bVar4 = pbVar10[1];\n          pbVar10 = pbVar15 + 2;\n        }\n        if (bVar4 == 0x2c) {\n          pbVar2 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar2 = *pbVar2 | 0x40;\n          if (DAT_00089074 != 0) goto LAB_00047347;\n          bVar4 = *pbVar10;\n        }\n        else {\n          DAT_00089074 = FUN_00044f30();\n          if (DAT_00089074 == 0) {\n            if (*pbVar10 == 0x25) {\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }\n            if (pbVar16 != local_44) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar10 = *pbVar10 | 0x40;\nLAB_00047347:\n          bVar4 = *local_28;\n          pbVar10 = local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            pbVar10 = local_28 + 1;\n          }\n        }\n        if (bVar4 != 0x2c) {\n          if (bVar4 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }\n          break;\n        }\n        local_44 = pbVar10 + 2;\n        if (pbVar10[1] != 0x20) {\n          local_44 = pbVar10 + 1;\n        }\n        DAT_00089078 = FUN_00044f30();\n        uVar7 = DAT_00089978;\n        if (DAT_00089078 == 0) {\n          if (*local_44 == 0x25) {\n            pcVar13 = strchr((char *)local_44,0x2c);\n            if (pcVar13 != (char *)0x0) {\n              *pcVar13 = '\0';\n            }\n            uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            FUN_0002bd60(uVar7,local_44);\n            return false;\n          }\n          if (*local_44 == 0x29) {\n            uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1);\n            FUN_0002bd60(uVar7,0x29);\n            return false;\n          }\n        }\n        else {\n          bVar4 = *local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            local_28 = local_28 + 1;\n          }\n          if (bVar4 != 0x2c) {\n            DAT_00089978 = (byte *)uVar7;\n            if (bVar4 != 0x29) {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          bVar4 = local_28[1];\n          local_44 = local_28 + 1;\n          if (bVar4 == 0x20) {\n            local_44 = local_28 + 2;\n            bVar4 = local_28[2];\n          }\n          DAT_00089978 = (byte *)uVar7;\n          if (bVar4 == 0x29) break;\n        }\n        DAT_00089978 = local_44;\n        lVar18 = FUN_0002d860();\n        if (lVar18 == 2) {\n          DAT_0008907c = 1;\n          sVar14 = 1;\nLAB_0004751e:\n          if (DAT_00089078 == 0) {\n            uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);\n            FUN_0002bc80(uVar12,1 << sVar14);\n            DAT_0008907c = 0;\n          }\n        }\n        else {\n          if (-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18)) {\n            if (lVar18 == 4) {\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }\n            else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (lVar18 != 1) {\nLAB_0004760c:\n            bVar4 = *DAT_00089978;\n            *DAT_00089978 = 0;\n            uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            FUN_0002bd60(uVar12,local_44);\n            *DAT_00089978 = bVar4;\n            DAT_00089978 = (byte *)uVar7;\n            return false;\n          }\n          DAT_0008907c = 0;\n        }\n        if (DAT_00089978 == (byte *)0x0) {\n          DAT_00089978 = (byte *)uVar7;\n          return false;\n        }\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (bVar4 != 0x29) {\n          pcVar13 = "expecting `)\' after scale factor in `%s\'";\nLAB_00047255:\n          uVar7 = dcgettext(0,pcVar13,5);\n          FUN_0002bd60(uVar7,param_1);\n          return false;\n        }\n        break;\n      }\nLAB_000471eb:\n      pbVar10 = pbVar15;\n      bVar4 = pbVar10[-1];\n      pbVar15 = pbVar10 + -1;\n      if (bVar4 != 0x29) goto LAB_000471e0;\nLAB_000471f8:\n      iVar9 = iVar9 + 1;\n    } while( true );\n  }\n  local_44 = pbVar15;\n  if (pbVar16 == local_44) goto LAB_00046e80;\nLAB_00046cd4:\n  iVar6 = DAT_00089004;\n  iVar9 = DAT_00080558;\n  if (DAT_00089004 == 2) {\n    pcVar13 = "at most %d displacement operands are allowed";\nLAB_00047443:\n    uVar7 = dcgettext(0,pcVar13,5);\n    FUN_0002bd60(uVar7,2);\n    return false;\n  }\n  if (((*(byte *)((int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8 + 3) & 2) == 0) &&\n     ((*(byte *)(*DAT_00088f88 + 0x24) & 0x60) != 0)) {\n    if (DAT_00088f0c == 2) {\n      if ((DAT_00089093 != '\0') || (local_48 = 0xc0000, DAT_00088ff8 == 'w')) goto LAB_00046d4f;\n    }\n    else {\n      bVar17 = true;\n      if (DAT_00089093 == '\0') {\n        cVar5 = 'l';\n        if (DAT_00088f0c != 1) {\n          cVar5 = 'w';\n        }\n        bVar17 = DAT_00088ff8 == cVar5;\n      }\n      local_48 = 0x40000;\n      if ((DAT_00088f0c == 1) != bVar17) {\nLAB_00046d4f:\n        local_48 = 0x20000;\n      }\n    }\n  }\n  else {\n    local_48 = 0x40000;\n    if (DAT_00088f0c == 2) {\n      local_48 = 0x1c0000;\n      if (DAT_00089092 != '\0') {\n        local_48 = 0x40000;\n      }\n    }\n    else if ((DAT_00089092 != '\0') != (DAT_00088f0c == 1)) goto LAB_00046d4f;\n  }\n  (&DAT_00088fa0)[(DAT_00080558 + 0xe) * 2] = (&DAT_00088fa0)[(DAT_00080558 + 0xe) * 2] | local_48;\n  iVar1 = DAT_00089004 * 0x14;\n  (&DAT_00089038)[iVar9] = &DAT_00088f60 + iVar1;\n  uVar7 = DAT_00089978;\n  DAT_00089004 = DAT_00089004 + 1;\n  pbVar10 = DAT_000890fc + 1;\n  DAT_00089978 = pbVar16;\n  *DAT_000890fc = *local_44;\n  DAT_000890fc = pbVar10;\n  *local_44 = 0;\n  pbVar16 = (byte *)FUN_000453b0();\n  if (pbVar16 != (byte *)0x0) {\n    DAT_00089978 = pbVar16;\n  }\n  FUN_000221d0(0,&DAT_00088f60 + iVar1,1);\n  bVar4 = *DAT_00089978;\n  if (bVar4 == 0x20) {\n    bVar4 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }\n  pbVar10 = DAT_00089978;\n  if (bVar4 != 0) {\n    uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n    FUN_0002bd60(uVar12,pbVar10);\n  }\n  DAT_00089978 = (byte *)uVar7;\n  if (pbVar16 != (byte *)0x0) {\n    free(pbVar16);\n    if (((&DAT_00088f70)[iVar6 * 0x14] == '\x02') || ((&DAT_00088f70)[iVar6 * 0x14] == '\x05')) {\n      (&DAT_00088f70)[iVar6 * 0x14] = 0;\n    }\n  }\n  iVar9 = FUN_000466b0();\n  pbVar16 = DAT_000890fc + -1;\n  DAT_000890fc = DAT_000890fc + -1;\n  *local_44 = *pbVar16;\n  if (iVar9 == 0) {\n    return false;\n  }\nLAB_00046e80:\n  if (((((DAT_00089074 != 0) && (*(int *)(DAT_00089074 + 8) == DAT_000654e4)) &&\n       (*(int *)(DAT_00089074 + 4) == DAT_000654e0)) && ((DAT_00089078 == 0 && (DAT_0008907c == 0)))\n      ) && ((*(int *)(&DAT_00089080 + DAT_00089008 * 4) == 0 &&\n            (iVar9 = DAT_00080558 + 0xe, (*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f) == 0\n            )))) {\n    (&DAT_00088fa0)[iVar9 * 2] = 0;\n    *(undefined4 *)(&DAT_00088fa4 + iVar9 * 8) = 0;\n    pbVar16 = (byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2);\n    *pbVar16 = *pbVar16 | 0x80;\n    return true;\n  }\nLAB_00046ea4:\n  iVar9 = FUN_00045de0();\n  if (iVar9 == 0) {\n    return false;\n  }\n  pbVar16 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);\n  *pbVar16 = *pbVar16 | 0x10;\n  if (DAT_00089008 == 0) {\n    DAT_00089088 = xstrdup(param_1);\n  }\n  DAT_00089008 = DAT_00089008 + 1;\n  return true;\n}" (primitive_type "bool") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00046910(byte *param_1)" (identifier "FUN_00046910") (parameter_list "(byte *param_1)" (( "(") (parameter_declaration "byte *param_1" (type_identifier "byte") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  int iVar1;\n  byte *pbVar2;\n  uint uVar3;\n  byte bVar4;\n  char cVar5;\n  int iVar6;\n  undefined4 uVar7;\n  size_t sVar8;\n  int iVar9;\n  byte *pbVar10;\n  undefined4 *puVar11;\n  undefined4 uVar12;\n  char *pcVar13;\n  sbyte sVar14;\n  undefined4 extraout_ECX;\n  byte *pbVar15;\n  byte *pbVar16;\n  bool bVar17;\n  longlong lVar18;\n  uint local_48;\n  byte *local_44;\n  byte *local_28;\n  \n  bVar4 = *param_1;\n  pbVar16 = param_1;\n  if (bVar4 == 0x20) {\n    bVar4 = param_1[1];\n    pbVar16 = param_1 + 1;\n  }\n  if (bVar4 == 0x2a) {\n    if (pbVar16[1] == 0x20) {\n      pbVar16 = pbVar16 + 2;\n    }\n    else {\n      pbVar16 = pbVar16 + 1;\n    }\n    pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);\n    *pbVar10 = *pbVar10 | 2;\n  }\n  iVar6 = FUN_00044f30();\n  iVar9 = DAT_0008900c;\n  if (iVar6 == 0) {\n    bVar4 = *pbVar16;\n    if (bVar4 == 0x25) {\n      pcVar13 = "bad register name `%s\'";\nLAB_00046f4c:\n      uVar7 = dcgettext(0,pcVar13,5);\n      FUN_0002bd60(uVar7,pbVar16);\n      return false;\n    }\n    if (bVar4 == 0x24) {\n      if ((*(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3) & 2) != 0) {\n        uVar7 = dcgettext(0,"immediate operand illegal with absolute jump",5);\n        FUN_0002bd60(uVar7);\n        return false;\n      }\n      if (DAT_0008900c != 2) {\n        iVar6 = DAT_0008900c * 5;\n        DAT_0008900c = DAT_0008900c + 1;\n        (&DAT_00089038)[DAT_00080558] = &DAT_00088f20 + iVar6;\n        uVar7 = DAT_00089978;\n        local_44 = pbVar16 + 2;\n        if (pbVar16[1] != 0x20) {\n          local_44 = pbVar16 + 1;\n        }\n        DAT_00089978 = local_44;\n        pbVar16 = (byte *)FUN_000453b0();\n        if (pbVar16 != (byte *)0x0) {\n          DAT_00089978 = pbVar16;\n        }\n        FUN_000221d0(0,&DAT_00088f20 + iVar6,1);\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n          DAT_00089978 = DAT_00089978 + 1;\n        }\n        if (bVar4 == 0x7b) {\n          DAT_00089978 = (byte *)FUN_00045070();\n          if (DAT_00089978 == (byte *)0x0) {\n            return false;\n          }\n          bVar4 = *DAT_00089978;\n        }\n        pbVar10 = DAT_00089978;\n        if (bVar4 != 0) {\n          uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n          FUN_0002bd60(uVar12,pbVar10);\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (pbVar16 != (byte *)0x0) {\n          free(pbVar16);\n          if (((&DAT_00088f30)[iVar9 * 0x14] == '\x02') || ((&DAT_00088f30)[iVar9 * 0x14] == '\x05')\n             ) {\n            (&DAT_00088f30)[iVar9 * 0x14] = 0;\n          }\n        }\n        iVar9 = FUN_00041f60(0xffffffff,0xffffffff,local_44);\n        return iVar9 != 0;\n      }\n      pcVar13 = "at most %d immediate operands are allowed";\n      goto LAB_00047443;\n    }\n    if (*param_1 == 0x7b) {\n      iVar9 = FUN_000464f0();\n      if (iVar9 != 0) {\n        return true;\n      }\n      bVar4 = *pbVar16;\n    }\n    iVar9 = DAT_00080558;\n    if ((((&DAT_00089120)[bVar4] == '\0') && (bVar4 != 0x28 && bVar4 != 0x22)) &&\n       ((&DAT_00089220)[bVar4] == '\0')) {\n      uVar7 = FUN_00046660();\n      uVar12 = dcgettext(0,"invalid char %s beginning operand %d `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7,iVar9 + 1,pbVar16);\n      return false;\n    }\n    goto LAB_00046c60;\n  }\n  bVar4 = *local_28;\n  pbVar10 = local_28;\n  if (bVar4 == 0x20) {\n    bVar4 = local_28[1];\n    pbVar10 = local_28 + 1;\n  }\n  if (bVar4 != 0x3a) {\n    if (bVar4 == 0x7b) {\n      pbVar10 = (byte *)FUN_00045070();\n      if (pbVar10 == (byte *)0x0) {\n        return false;\n      }\n      bVar4 = *pbVar10;\n    }\n    iVar9 = DAT_00080558;\n    if (bVar4 == 0) {\n      uVar3 = *(uint *)(iVar6 + 8);\n      iVar1 = DAT_00080558 + 0xe;\n      (&DAT_00088fa0)[iVar1 * 2] = (&DAT_00088fa0)[iVar1 * 2] | *(uint *)(iVar6 + 4) & 0xffbfffff;\n      *(uint *)(&DAT_00088fa4 + iVar1 * 8) = *(uint *)(&DAT_00088fa4 + iVar1 * 8) | uVar3;\n      (&DAT_00088fa4)[iVar1 * 8] = (&DAT_00088fa4)[iVar1 * 8] & 0xbf;\n      DAT_00089000 = DAT_00089000 + 1;\n      (&DAT_00089038)[iVar9] = iVar6;\n      return true;\n    }\nLAB_00046ad0:\n    uVar7 = dcgettext(0,"junk `%s\' after register",5);\n    FUN_0002bd60(uVar7,pbVar10);\n    return false;\n  }\n  if ((*(ushort *)(iVar6 + 4) & 0x180) == 0) goto LAB_00046ad0;\n  switch(*(undefined1 *)(iVar6 + 0xd)) {\n  case 0:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_es_0007fff8;\n    break;\n  case 1:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_cs_0007ffc8;\n    break;\n  case 2:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ss_0007ffcc;\n    break;\n  case 3:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ds_0007ff80;\n    break;\n  case 4:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_fs_0007ffac;\n    break;\n  case 5:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_gs_0007ff68;\n  }\n  bVar4 = pbVar10[1];\n  pbVar16 = pbVar10 + 1;\n  if (bVar4 == 0x20) {\n    bVar4 = pbVar10[2];\n    pbVar16 = pbVar10 + 2;\n  }\n  if (((&DAT_00089120)[bVar4] == '\0') && ((&DAT_00089220)[bVar4] == '\0')) {\n    if (bVar4 != 0x28) {\n      if (bVar4 != 0x2a) {\n        pcVar13 = "bad memory operand `%s\'";\n        goto LAB_00046f4c;\n      }\nLAB_00046c3c:\n      if (pbVar16[1] == 0x20) {\n        pbVar16 = pbVar16 + 2;\n      }\n      else {\n        pbVar16 = pbVar16 + 1;\n      }\n      pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);\n      *pbVar10 = *pbVar10 | 2;\n    }\n  }\n  else if (bVar4 == 0x2a) goto LAB_00046c3c;\nLAB_00046c60:\n  if (DAT_00089008 == 1) {\n    iVar9 = FUN_00046270();\n    if (iVar9 == 0) {\n      return false;\n    }\n    if (DAT_00089008 != 1) goto LAB_00046c6f;\n    puVar11 = (undefined4 *)*DAT_00088f88;\n    if ((*(byte *)((int)puVar11 + 0x27) & 1) == 0) goto LAB_0004729e;\n  }\n  else {\nLAB_00046c6f:\n    if (DAT_00089008 == 2) {\n      puVar11 = (undefined4 *)*DAT_00088f88;\nLAB_0004729e:\n      uVar7 = *puVar11;\n      uVar12 = dcgettext(0,"too many memory references for `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7);\n      return false;\n    }\n  }\n  sVar8 = strlen((char *)pbVar16);\n  local_44 = pbVar16 + sVar8;\n  pbVar10 = (byte *)strchr((char *)pbVar16,0x7b);\n  if (((pbVar10 != (byte *)0x0) && (pbVar10 < local_44)) &&\n     (iVar9 = FUN_00045070(), local_44 = pbVar10, iVar9 == 0)) {\n    return false;\n  }\n  pbVar10 = local_44 + -1;\n  if (local_44[-1] == 0x20) {\n    pbVar10 = local_44 + -2;\n    local_44 = local_44 + -1;\n  }\n  pbVar15 = local_44;\n  if (*pbVar10 == 0x29) {\n    bVar4 = pbVar10[-1];\n    iVar9 = 1;\n    pbVar15 = pbVar10 + -1;\n    if (bVar4 == 0x29) goto LAB_000471f8;\nLAB_000471e0:\n    if (bVar4 != 0x28) goto LAB_000471eb;\n    iVar9 = iVar9 + -1;\n    do {\n      if (iVar9 == 0) {\n        bVar4 = pbVar15[1];\n        if (bVar4 == 0x20) {\n          bVar4 = pbVar10[1];\n          pbVar10 = pbVar15 + 2;\n        }\n        if (bVar4 == 0x2c) {\n          pbVar2 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar2 = *pbVar2 | 0x40;\n          if (DAT_00089074 != 0) goto LAB_00047347;\n          bVar4 = *pbVar10;\n        }\n        else {\n          DAT_00089074 = FUN_00044f30();\n          if (DAT_00089074 == 0) {\n            if (*pbVar10 == 0x25) {\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }\n            if (pbVar16 != local_44) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar10 = *pbVar10 | 0x40;\nLAB_00047347:\n          bVar4 = *local_28;\n          pbVar10 = local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            pbVar10 = local_28 + 1;\n          }\n        }\n        if (bVar4 != 0x2c) {\n          if (bVar4 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }\n          break;\n        }\n        local_44 = pbVar10 + 2;\n        if (pbVar10[1] != 0x20) {\n          local_44 = pbVar10 + 1;\n        }\n        DAT_00089078 = FUN_00044f30();\n        uVar7 = DAT_00089978;\n        if (DAT_00089078 == 0) {\n          if (*local_44 == 0x25) {\n            pcVar13 = strchr((char *)local_44,0x2c);\n            if (pcVar13 != (char *)0x0) {\n              *pcVar13 = '\0';\n            }\n            uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            FUN_0002bd60(uVar7,local_44);\n            return false;\n          }\n          if (*local_44 == 0x29) {\n            uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1);\n            FUN_0002bd60(uVar7,0x29);\n            return false;\n          }\n        }\n        else {\n          bVar4 = *local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            local_28 = local_28 + 1;\n          }\n          if (bVar4 != 0x2c) {\n            DAT_00089978 = (byte *)uVar7;\n            if (bVar4 != 0x29) {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          bVar4 = local_28[1];\n          local_44 = local_28 + 1;\n          if (bVar4 == 0x20) {\n            local_44 = local_28 + 2;\n            bVar4 = local_28[2];\n          }\n          DAT_00089978 = (byte *)uVar7;\n          if (bVar4 == 0x29) break;\n        }\n        DAT_00089978 = local_44;\n        lVar18 = FUN_0002d860();\n        if (lVar18 == 2) {\n          DAT_0008907c = 1;\n          sVar14 = 1;\nLAB_0004751e:\n          if (DAT_00089078 == 0) {\n            uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);\n            FUN_0002bc80(uVar12,1 << sVar14);\n            DAT_0008907c = 0;\n          }\n        }\n        else {\n          if (-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18)) {\n            if (lVar18 == 4) {\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }\n            else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (lVar18 != 1) {\nLAB_0004760c:\n            bVar4 = *DAT_00089978;\n            *DAT_00089978 = 0;\n            uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            FUN_0002bd60(uVar12,local_44);\n            *DAT_00089978 = bVar4;\n            DAT_00089978 = (byte *)uVar7;\n            return false;\n          }\n          DAT_0008907c = 0;\n        }\n        if (DAT_00089978 == (byte *)0x0) {\n          DAT_00089978 = (byte *)uVar7;\n          return false;\n        }\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (bVar4 != 0x29) {\n          pcVar13 = "expecting `)\' after scale factor in `%s\'";\nLAB_00047255:\n          uVar7 = dcgettext(0,pcVar13,5);\n          FUN_0002bd60(uVar7,param_1);\n          return false;\n        }\n        break;\n      }\nLAB_000471eb:\n      pbVar10 = pbVar15;\n      bVar4 = pbVar10[-1];\n      pbVar15 = pbVar10 + -1;\n      if (bVar4 != 0x29) goto LAB_000471e0;\nLAB_000471f8:\n      iVar9 = iVar9 + 1;\n    } while( true );\n  }\n  local_44 = pbVar15;\n  if (pbVar16 == local_44) goto LAB_00046e80;\nLAB_00046cd4:\n  iVar6 = DAT_00089004;\n  iVar9 = DAT_00080558;\n  if (DAT_00089004 == 2) {\n    pcVar13 = "at most %d displacement operands are allowed";\nLAB_00047443:\n    uVar7 = dcgettext(0,pcVar13,5);\n    FUN_0002bd60(uVar7,2);\n    return false;\n  }\n  if (((*(byte *)((int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8 + 3) & 2) == 0) &&\n     ((*(byte *)(*DAT_00088f88 + 0x24) & 0x60) != 0)) {\n    if (DAT_00088f0c == 2) {\n      if ((DAT_00089093 != '\0') || (local_48 = 0xc0000, DAT_00088ff8 == 'w')) goto LAB_00046d4f;\n    }\n    else {\n      bVar17 = true;\n      if (DAT_00089093 == '\0') {\n        cVar5 = 'l';\n        if (DAT_00088f0c != 1) {\n          cVar5 = 'w';\n        }\n        bVar17 = DAT_00088ff8 == cVar5;\n      }\n      local_48 = 0x40000;\n      if ((DAT_00088f0c == 1) != bVar17) {\nLAB_00046d4f:\n        local_48 = 0x20000;\n      }\n    }\n  }\n  else {\n    local_48 = 0x40000;\n    if (DAT_00088f0c == 2) {\n      local_48 = 0x1c0000;\n      if (DAT_00089092 != '\0') {\n        local_48 = 0x40000;\n      }\n    }\n    else if ((DAT_00089092 != '\0') != (DAT_00088f0c == 1)) goto LAB_00046d4f;\n  }\n  (&DAT_00088fa0)[(DAT_00080558 + 0xe) * 2] = (&DAT_00088fa0)[(DAT_00080558 + 0xe) * 2] | local_48;\n  iVar1 = DAT_00089004 * 0x14;\n  (&DAT_00089038)[iVar9] = &DAT_00088f60 + iVar1;\n  uVar7 = DAT_00089978;\n  DAT_00089004 = DAT_00089004 + 1;\n  pbVar10 = DAT_000890fc + 1;\n  DAT_00089978 = pbVar16;\n  *DAT_000890fc = *local_44;\n  DAT_000890fc = pbVar10;\n  *local_44 = 0;\n  pbVar16 = (byte *)FUN_000453b0();\n  if (pbVar16 != (byte *)0x0) {\n    DAT_00089978 = pbVar16;\n  }\n  FUN_000221d0(0,&DAT_00088f60 + iVar1,1);\n  bVar4 = *DAT_00089978;\n  if (bVar4 == 0x20) {\n    bVar4 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }\n  pbVar10 = DAT_00089978;\n  if (bVar4 != 0) {\n    uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n    FUN_0002bd60(uVar12,pbVar10);\n  }\n  DAT_00089978 = (byte *)uVar7;\n  if (pbVar16 != (byte *)0x0) {\n    free(pbVar16);\n    if (((&DAT_00088f70)[iVar6 * 0x14] == '\x02') || ((&DAT_00088f70)[iVar6 * 0x14] == '\x05')) {\n      (&DAT_00088f70)[iVar6 * 0x14] = 0;\n    }\n  }\n  iVar9 = FUN_000466b0();\n  pbVar16 = DAT_000890fc + -1;\n  DAT_000890fc = DAT_000890fc + -1;\n  *local_44 = *pbVar16;\n  if (iVar9 == 0) {\n    return false;\n  }\nLAB_00046e80:\n  if (((((DAT_00089074 != 0) && (*(int *)(DAT_00089074 + 8) == DAT_000654e4)) &&\n       (*(int *)(DAT_00089074 + 4) == DAT_000654e0)) && ((DAT_00089078 == 0 && (DAT_0008907c == 0)))\n      ) && ((*(int *)(&DAT_00089080 + DAT_00089008 * 4) == 0 &&\n            (iVar9 = DAT_00080558 + 0xe, (*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f) == 0\n            )))) {\n    (&DAT_00088fa0)[iVar9 * 2] = 0;\n    *(undefined4 *)(&DAT_00088fa4 + iVar9 * 8) = 0;\n    pbVar16 = (byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2);\n    *pbVar16 = *pbVar16 | 0x80;\n    return true;\n  }\nLAB_00046ea4:\n  iVar9 = FUN_00045de0();\n  if (iVar9 == 0) {\n    return false;\n  }\n  pbVar16 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);\n  *pbVar16 = *pbVar16 | 0x10;\n  if (DAT_00089008 == 0) {\n    DAT_00089088 = xstrdup(param_1);\n  }\n  DAT_00089008 = DAT_00089008 + 1;\n  return true;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "byte *pbVar2;" (type_identifier "byte") (pointer_declarator "*pbVar2" (* "*") (identifier "pbVar2")) (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "byte bVar4;" (type_identifier "byte") (identifier "bVar4") (; ";")) (declaration "char cVar5;" (primitive_type "char") (identifier "cVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "size_t sVar8;" (primitive_type "size_t") (identifier "sVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "byte *pbVar10;" (type_identifier "byte") (pointer_declarator "*pbVar10" (* "*") (identifier "pbVar10")) (; ";")) (declaration "undefined4 *puVar11;" (type_identifier "undefined4") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "undefined4 uVar12;" (type_identifier "undefined4") (identifier "uVar12") (; ";")) (declaration "char *pcVar13;" (primitive_type "char") (pointer_declarator "*pcVar13" (* "*") (identifier "pcVar13")) (; ";")) (declaration "sbyte sVar14;" (type_identifier "sbyte") (identifier "sVar14") (; ";")) (declaration "undefined4 extraout_ECX;" (type_identifier "undefined4") (identifier "extraout_ECX") (; ";")) (declaration "byte *pbVar15;" (type_identifier "byte") (pointer_declarator "*pbVar15" (* "*") (identifier "pbVar15")) (; ";")) (declaration "byte *pbVar16;" (type_identifier "byte") (pointer_declarator "*pbVar16" (* "*") (identifier "pbVar16")) (; ";")) (declaration "bool bVar17;" (primitive_type "bool") (identifier "bVar17") (; ";")) (declaration "longlong lVar18;" (type_identifier "longlong") (identifier "lVar18") (; ";")) (declaration "uint local_48;" (type_identifier "uint") (identifier "local_48") (; ";")) (declaration "byte *local_44;" (type_identifier "byte") (pointer_declarator "*local_44" (* "*") (identifier "local_44")) (; ";")) (declaration "byte *local_28;" (type_identifier "byte") (pointer_declarator "*local_28" (* "*") (identifier "local_28")) (; ";")) (expression_statement "bVar4 = *param_1;" (assignment_expression "bVar4 = *param_1" (identifier "bVar4") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "pbVar16 = param_1;" (assignment_expression "pbVar16 = param_1" (identifier "pbVar16") (= "=") (identifier "param_1")) (; ";")) (if_statement "if (bVar4 == 0x20) {\n    bVar4 = param_1[1];\n    pbVar16 = param_1 + 1;\n  }" (if "if") (parenthesized_expression "(bVar4 == 0x20)" (( "(") (binary_expression "bVar4 == 0x20" (identifier "bVar4") (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n    bVar4 = param_1[1];\n    pbVar16 = param_1 + 1;\n  }" ({ "{") (expression_statement "bVar4 = param_1[1];" (assignment_expression "bVar4 = param_1[1]" (identifier "bVar4") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pbVar16 = param_1 + 1;" (assignment_expression "pbVar16 = param_1 + 1" (identifier "pbVar16") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if (bVar4 == 0x2a) {\n    if (pbVar16[1] == 0x20) {\n      pbVar16 = pbVar16 + 2;\n    }\n    else {\n      pbVar16 = pbVar16 + 1;\n    }\n    pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);\n    *pbVar10 = *pbVar10 | 2;\n  }" (if "if") (parenthesized_expression "(bVar4 == 0x2a)" (( "(") (binary_expression "bVar4 == 0x2a" (identifier "bVar4") (== "==") (number_literal "0x2a")) () ")")) (compound_statement "{\n    if (pbVar16[1] == 0x20) {\n      pbVar16 = pbVar16 + 2;\n    }\n    else {\n      pbVar16 = pbVar16 + 1;\n    }\n    pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);\n    *pbVar10 = *pbVar10 | 2;\n  }" ({ "{") (if_statement "if (pbVar16[1] == 0x20) {\n      pbVar16 = pbVar16 + 2;\n    }\n    else {\n      pbVar16 = pbVar16 + 1;\n    }" (if "if") (parenthesized_expression "(pbVar16[1] == 0x20)" (( "(") (binary_expression "pbVar16[1] == 0x20" (subscript_expression "pbVar16[1]" (identifier "pbVar16") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n      pbVar16 = pbVar16 + 2;\n    }" ({ "{") (expression_statement "pbVar16 = pbVar16 + 2;" (assignment_expression "pbVar16 = pbVar16 + 2" (identifier "pbVar16") (= "=") (binary_expression "pbVar16 + 2" (identifier "pbVar16") (+ "+") (number_literal "2"))) (; ";")) (} "}")) (else_clause "else {\n      pbVar16 = pbVar16 + 1;\n    }" (else "else") (compound_statement "{\n      pbVar16 = pbVar16 + 1;\n    }" ({ "{") (expression_statement "pbVar16 = pbVar16 + 1;" (assignment_expression "pbVar16 = pbVar16 + 1" (identifier "pbVar16") (= "=") (binary_expression "pbVar16 + 1" (identifier "pbVar16") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);" (assignment_expression "pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3)" (identifier "pbVar10") (= "=") (cast_expression "(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&DAT_00089010 + DAT_00080558 * 8 + 3)" (( "(") (binary_expression "(int)&DAT_00089010 + DAT_00080558 * 8 + 3" (binary_expression "(int)&DAT_00089010 + DAT_00080558 * 8" (cast_expression "(int)&DAT_00089010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&DAT_00089010" (& "&") (identifier "DAT_00089010"))) (+ "+") (binary_expression "DAT_00080558 * 8" (identifier "DAT_00080558") (* "*") (number_literal "8"))) (+ "+") (number_literal "3")) () ")")))) (; ";")) (expression_statement "*pbVar10 = *pbVar10 | 2;" (assignment_expression "*pbVar10 = *pbVar10 | 2" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (= "=") (binary_expression "*pbVar10 | 2" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (| "|") (number_literal "2"))) (; ";")) (} "}"))) (expression_statement "iVar6 = FUN_00044f30();" (assignment_expression "iVar6 = FUN_00044f30()" (identifier "iVar6") (= "=") (call_expression "FUN_00044f30()" (identifier "FUN_00044f30") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar9 = DAT_0008900c;" (assignment_expression "iVar9 = DAT_0008900c" (identifier "iVar9") (= "=") (identifier "DAT_0008900c")) (; ";")) (if_statement "if (iVar6 == 0) {\n    bVar4 = *pbVar16;\n    if (bVar4 == 0x25) {\n      pcVar13 = "bad register name `%s\'";\nLAB_00046f4c:\n      uVar7 = dcgettext(0,pcVar13,5);\n      FUN_0002bd60(uVar7,pbVar16);\n      return false;\n    }\n    if (bVar4 == 0x24) {\n      if ((*(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3) & 2) != 0) {\n        uVar7 = dcgettext(0,"immediate operand illegal with absolute jump",5);\n        FUN_0002bd60(uVar7);\n        return false;\n      }\n      if (DAT_0008900c != 2) {\n        iVar6 = DAT_0008900c * 5;\n        DAT_0008900c = DAT_0008900c + 1;\n        (&DAT_00089038)[DAT_00080558] = &DAT_00088f20 + iVar6;\n        uVar7 = DAT_00089978;\n        local_44 = pbVar16 + 2;\n        if (pbVar16[1] != 0x20) {\n          local_44 = pbVar16 + 1;\n        }\n        DAT_00089978 = local_44;\n        pbVar16 = (byte *)FUN_000453b0();\n        if (pbVar16 != (byte *)0x0) {\n          DAT_00089978 = pbVar16;\n        }\n        FUN_000221d0(0,&DAT_00088f20 + iVar6,1);\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n          DAT_00089978 = DAT_00089978 + 1;\n        }\n        if (bVar4 == 0x7b) {\n          DAT_00089978 = (byte *)FUN_00045070();\n          if (DAT_00089978 == (byte *)0x0) {\n            return false;\n          }\n          bVar4 = *DAT_00089978;\n        }\n        pbVar10 = DAT_00089978;\n        if (bVar4 != 0) {\n          uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n          FUN_0002bd60(uVar12,pbVar10);\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (pbVar16 != (byte *)0x0) {\n          free(pbVar16);\n          if (((&DAT_00088f30)[iVar9 * 0x14] == '\x02') || ((&DAT_00088f30)[iVar9 * 0x14] == '\x05')\n             ) {\n            (&DAT_00088f30)[iVar9 * 0x14] = 0;\n          }\n        }\n        iVar9 = FUN_00041f60(0xffffffff,0xffffffff,local_44);\n        return iVar9 != 0;\n      }\n      pcVar13 = "at most %d immediate operands are allowed";\n      goto LAB_00047443;\n    }\n    if (*param_1 == 0x7b) {\n      iVar9 = FUN_000464f0();\n      if (iVar9 != 0) {\n        return true;\n      }\n      bVar4 = *pbVar16;\n    }\n    iVar9 = DAT_00080558;\n    if ((((&DAT_00089120)[bVar4] == '\0') && (bVar4 != 0x28 && bVar4 != 0x22)) &&\n       ((&DAT_00089220)[bVar4] == '\0')) {\n      uVar7 = FUN_00046660();\n      uVar12 = dcgettext(0,"invalid char %s beginning operand %d `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7,iVar9 + 1,pbVar16);\n      return false;\n    }\n    goto LAB_00046c60;\n  }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    bVar4 = *pbVar16;\n    if (bVar4 == 0x25) {\n      pcVar13 = "bad register name `%s\'";\nLAB_00046f4c:\n      uVar7 = dcgettext(0,pcVar13,5);\n      FUN_0002bd60(uVar7,pbVar16);\n      return false;\n    }\n    if (bVar4 == 0x24) {\n      if ((*(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3) & 2) != 0) {\n        uVar7 = dcgettext(0,"immediate operand illegal with absolute jump",5);\n        FUN_0002bd60(uVar7);\n        return false;\n      }\n      if (DAT_0008900c != 2) {\n        iVar6 = DAT_0008900c * 5;\n        DAT_0008900c = DAT_0008900c + 1;\n        (&DAT_00089038)[DAT_00080558] = &DAT_00088f20 + iVar6;\n        uVar7 = DAT_00089978;\n        local_44 = pbVar16 + 2;\n        if (pbVar16[1] != 0x20) {\n          local_44 = pbVar16 + 1;\n        }\n        DAT_00089978 = local_44;\n        pbVar16 = (byte *)FUN_000453b0();\n        if (pbVar16 != (byte *)0x0) {\n          DAT_00089978 = pbVar16;\n        }\n        FUN_000221d0(0,&DAT_00088f20 + iVar6,1);\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n          DAT_00089978 = DAT_00089978 + 1;\n        }\n        if (bVar4 == 0x7b) {\n          DAT_00089978 = (byte *)FUN_00045070();\n          if (DAT_00089978 == (byte *)0x0) {\n            return false;\n          }\n          bVar4 = *DAT_00089978;\n        }\n        pbVar10 = DAT_00089978;\n        if (bVar4 != 0) {\n          uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n          FUN_0002bd60(uVar12,pbVar10);\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (pbVar16 != (byte *)0x0) {\n          free(pbVar16);\n          if (((&DAT_00088f30)[iVar9 * 0x14] == '\x02') || ((&DAT_00088f30)[iVar9 * 0x14] == '\x05')\n             ) {\n            (&DAT_00088f30)[iVar9 * 0x14] = 0;\n          }\n        }\n        iVar9 = FUN_00041f60(0xffffffff,0xffffffff,local_44);\n        return iVar9 != 0;\n      }\n      pcVar13 = "at most %d immediate operands are allowed";\n      goto LAB_00047443;\n    }\n    if (*param_1 == 0x7b) {\n      iVar9 = FUN_000464f0();\n      if (iVar9 != 0) {\n        return true;\n      }\n      bVar4 = *pbVar16;\n    }\n    iVar9 = DAT_00080558;\n    if ((((&DAT_00089120)[bVar4] == '\0') && (bVar4 != 0x28 && bVar4 != 0x22)) &&\n       ((&DAT_00089220)[bVar4] == '\0')) {\n      uVar7 = FUN_00046660();\n      uVar12 = dcgettext(0,"invalid char %s beginning operand %d `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7,iVar9 + 1,pbVar16);\n      return false;\n    }\n    goto LAB_00046c60;\n  }" ({ "{") (expression_statement "bVar4 = *pbVar16;" (assignment_expression "bVar4 = *pbVar16" (identifier "bVar4") (= "=") (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16"))) (; ";")) (if_statement "if (bVar4 == 0x25) {\n      pcVar13 = "bad register name `%s\'";\nLAB_00046f4c:\n      uVar7 = dcgettext(0,pcVar13,5);\n      FUN_0002bd60(uVar7,pbVar16);\n      return false;\n    }" (if "if") (parenthesized_expression "(bVar4 == 0x25)" (( "(") (binary_expression "bVar4 == 0x25" (identifier "bVar4") (== "==") (number_literal "0x25")) () ")")) (compound_statement "{\n      pcVar13 = "bad register name `%s\'";\nLAB_00046f4c:\n      uVar7 = dcgettext(0,pcVar13,5);\n      FUN_0002bd60(uVar7,pbVar16);\n      return false;\n    }" ({ "{") (expression_statement "pcVar13 = "bad register name `%s\'";" (assignment_expression "pcVar13 = "bad register name `%s\'"" (identifier "pcVar13") (= "=") (string_literal ""bad register name `%s\'"" (" """) (string_content "bad register name `%s") (escape_sequence "\'") (" """))) (; ";")) (labeled_statement "LAB_00046f4c:\n      uVar7 = dcgettext(0,pcVar13,5);" (statement_identifier "LAB_00046f4c") (: ":") (expression_statement "uVar7 = dcgettext(0,pcVar13,5);" (assignment_expression "uVar7 = dcgettext(0,pcVar13,5)" (identifier "uVar7") (= "=") (call_expression "dcgettext(0,pcVar13,5)" (identifier "dcgettext") (argument_list "(0,pcVar13,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar13") (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "FUN_0002bd60(uVar7,pbVar16);" (call_expression "FUN_0002bd60(uVar7,pbVar16)" (identifier "FUN_0002bd60") (argument_list "(uVar7,pbVar16)" (( "(") (identifier "uVar7") (, ",") (identifier "pbVar16") () ")"))) (; ";")) (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}"))) (if_statement "if (bVar4 == 0x24) {\n      if ((*(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3) & 2) != 0) {\n        uVar7 = dcgettext(0,"immediate operand illegal with absolute jump",5);\n        FUN_0002bd60(uVar7);\n        return false;\n      }\n      if (DAT_0008900c != 2) {\n        iVar6 = DAT_0008900c * 5;\n        DAT_0008900c = DAT_0008900c + 1;\n        (&DAT_00089038)[DAT_00080558] = &DAT_00088f20 + iVar6;\n        uVar7 = DAT_00089978;\n        local_44 = pbVar16 + 2;\n        if (pbVar16[1] != 0x20) {\n          local_44 = pbVar16 + 1;\n        }\n        DAT_00089978 = local_44;\n        pbVar16 = (byte *)FUN_000453b0();\n        if (pbVar16 != (byte *)0x0) {\n          DAT_00089978 = pbVar16;\n        }\n        FUN_000221d0(0,&DAT_00088f20 + iVar6,1);\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n          DAT_00089978 = DAT_00089978 + 1;\n        }\n        if (bVar4 == 0x7b) {\n          DAT_00089978 = (byte *)FUN_00045070();\n          if (DAT_00089978 == (byte *)0x0) {\n            return false;\n          }\n          bVar4 = *DAT_00089978;\n        }\n        pbVar10 = DAT_00089978;\n        if (bVar4 != 0) {\n          uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n          FUN_0002bd60(uVar12,pbVar10);\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (pbVar16 != (byte *)0x0) {\n          free(pbVar16);\n          if (((&DAT_00088f30)[iVar9 * 0x14] == '\x02') || ((&DAT_00088f30)[iVar9 * 0x14] == '\x05')\n             ) {\n            (&DAT_00088f30)[iVar9 * 0x14] = 0;\n          }\n        }\n        iVar9 = FUN_00041f60(0xffffffff,0xffffffff,local_44);\n        return iVar9 != 0;\n      }\n      pcVar13 = "at most %d immediate operands are allowed";\n      goto LAB_00047443;\n    }" (if "if") (parenthesized_expression "(bVar4 == 0x24)" (( "(") (binary_expression "bVar4 == 0x24" (identifier "bVar4") (== "==") (number_literal "0x24")) () ")")) (compound_statement "{\n      if ((*(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3) & 2) != 0) {\n        uVar7 = dcgettext(0,"immediate operand illegal with absolute jump",5);\n        FUN_0002bd60(uVar7);\n        return false;\n      }\n      if (DAT_0008900c != 2) {\n        iVar6 = DAT_0008900c * 5;\n        DAT_0008900c = DAT_0008900c + 1;\n        (&DAT_00089038)[DAT_00080558] = &DAT_00088f20 + iVar6;\n        uVar7 = DAT_00089978;\n        local_44 = pbVar16 + 2;\n        if (pbVar16[1] != 0x20) {\n          local_44 = pbVar16 + 1;\n        }\n        DAT_00089978 = local_44;\n        pbVar16 = (byte *)FUN_000453b0();\n        if (pbVar16 != (byte *)0x0) {\n          DAT_00089978 = pbVar16;\n        }\n        FUN_000221d0(0,&DAT_00088f20 + iVar6,1);\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n          DAT_00089978 = DAT_00089978 + 1;\n        }\n        if (bVar4 == 0x7b) {\n          DAT_00089978 = (byte *)FUN_00045070();\n          if (DAT_00089978 == (byte *)0x0) {\n            return false;\n          }\n          bVar4 = *DAT_00089978;\n        }\n        pbVar10 = DAT_00089978;\n        if (bVar4 != 0) {\n          uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n          FUN_0002bd60(uVar12,pbVar10);\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (pbVar16 != (byte *)0x0) {\n          free(pbVar16);\n          if (((&DAT_00088f30)[iVar9 * 0x14] == '\x02') || ((&DAT_00088f30)[iVar9 * 0x14] == '\x05')\n             ) {\n            (&DAT_00088f30)[iVar9 * 0x14] = 0;\n          }\n        }\n        iVar9 = FUN_00041f60(0xffffffff,0xffffffff,local_44);\n        return iVar9 != 0;\n      }\n      pcVar13 = "at most %d immediate operands are allowed";\n      goto LAB_00047443;\n    }" ({ "{") (if_statement "if ((*(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3) & 2) != 0) {\n        uVar7 = dcgettext(0,"immediate operand illegal with absolute jump",5);\n        FUN_0002bd60(uVar7);\n        return false;\n      }" (if "if") (parenthesized_expression "((*(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3) & 2) != 0)" (( "(") (binary_expression "(*(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3) & 2) != 0" (parenthesized_expression "(*(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3) & 2)" (( "(") (binary_expression "*(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3) & 2" (pointer_expression "*(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3)" (* "*") (cast_expression "(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&DAT_00089010 + DAT_00080558 * 8 + 3)" (( "(") (binary_expression "(int)&DAT_00089010 + DAT_00080558 * 8 + 3" (binary_expression "(int)&DAT_00089010 + DAT_00080558 * 8" (cast_expression "(int)&DAT_00089010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&DAT_00089010" (& "&") (identifier "DAT_00089010"))) (+ "+") (binary_expression "DAT_00080558 * 8" (identifier "DAT_00080558") (* "*") (number_literal "8"))) (+ "+") (number_literal "3")) () ")")))) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar7 = dcgettext(0,"immediate operand illegal with absolute jump",5);\n        FUN_0002bd60(uVar7);\n        return false;\n      }" ({ "{") (expression_statement "uVar7 = dcgettext(0,"immediate operand illegal with absolute jump",5);" (assignment_expression "uVar7 = dcgettext(0,"immediate operand illegal with absolute jump",5)" (identifier "uVar7") (= "=") (call_expression "dcgettext(0,"immediate operand illegal with absolute jump",5)" (identifier "dcgettext") (argument_list "(0,"immediate operand illegal with absolute jump",5)" (( "(") (number_literal "0") (, ",") (string_literal ""immediate operand illegal with absolute jump"" (" """) (string_content "immediate operand illegal with absolute jump") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002bd60(uVar7);" (call_expression "FUN_0002bd60(uVar7)" (identifier "FUN_0002bd60") (argument_list "(uVar7)" (( "(") (identifier "uVar7") () ")"))) (; ";")) (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}"))) (if_statement "if (DAT_0008900c != 2) {\n        iVar6 = DAT_0008900c * 5;\n        DAT_0008900c = DAT_0008900c + 1;\n        (&DAT_00089038)[DAT_00080558] = &DAT_00088f20 + iVar6;\n        uVar7 = DAT_00089978;\n        local_44 = pbVar16 + 2;\n        if (pbVar16[1] != 0x20) {\n          local_44 = pbVar16 + 1;\n        }\n        DAT_00089978 = local_44;\n        pbVar16 = (byte *)FUN_000453b0();\n        if (pbVar16 != (byte *)0x0) {\n          DAT_00089978 = pbVar16;\n        }\n        FUN_000221d0(0,&DAT_00088f20 + iVar6,1);\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n          DAT_00089978 = DAT_00089978 + 1;\n        }\n        if (bVar4 == 0x7b) {\n          DAT_00089978 = (byte *)FUN_00045070();\n          if (DAT_00089978 == (byte *)0x0) {\n            return false;\n          }\n          bVar4 = *DAT_00089978;\n        }\n        pbVar10 = DAT_00089978;\n        if (bVar4 != 0) {\n          uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n          FUN_0002bd60(uVar12,pbVar10);\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (pbVar16 != (byte *)0x0) {\n          free(pbVar16);\n          if (((&DAT_00088f30)[iVar9 * 0x14] == '\x02') || ((&DAT_00088f30)[iVar9 * 0x14] == '\x05')\n             ) {\n            (&DAT_00088f30)[iVar9 * 0x14] = 0;\n          }\n        }\n        iVar9 = FUN_00041f60(0xffffffff,0xffffffff,local_44);\n        return iVar9 != 0;\n      }" (if "if") (parenthesized_expression "(DAT_0008900c != 2)" (( "(") (binary_expression "DAT_0008900c != 2" (identifier "DAT_0008900c") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n        iVar6 = DAT_0008900c * 5;\n        DAT_0008900c = DAT_0008900c + 1;\n        (&DAT_00089038)[DAT_00080558] = &DAT_00088f20 + iVar6;\n        uVar7 = DAT_00089978;\n        local_44 = pbVar16 + 2;\n        if (pbVar16[1] != 0x20) {\n          local_44 = pbVar16 + 1;\n        }\n        DAT_00089978 = local_44;\n        pbVar16 = (byte *)FUN_000453b0();\n        if (pbVar16 != (byte *)0x0) {\n          DAT_00089978 = pbVar16;\n        }\n        FUN_000221d0(0,&DAT_00088f20 + iVar6,1);\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n          DAT_00089978 = DAT_00089978 + 1;\n        }\n        if (bVar4 == 0x7b) {\n          DAT_00089978 = (byte *)FUN_00045070();\n          if (DAT_00089978 == (byte *)0x0) {\n            return false;\n          }\n          bVar4 = *DAT_00089978;\n        }\n        pbVar10 = DAT_00089978;\n        if (bVar4 != 0) {\n          uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n          FUN_0002bd60(uVar12,pbVar10);\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (pbVar16 != (byte *)0x0) {\n          free(pbVar16);\n          if (((&DAT_00088f30)[iVar9 * 0x14] == '\x02') || ((&DAT_00088f30)[iVar9 * 0x14] == '\x05')\n             ) {\n            (&DAT_00088f30)[iVar9 * 0x14] = 0;\n          }\n        }\n        iVar9 = FUN_00041f60(0xffffffff,0xffffffff,local_44);\n        return iVar9 != 0;\n      }" ({ "{") (expression_statement "iVar6 = DAT_0008900c * 5;" (assignment_expression "iVar6 = DAT_0008900c * 5" (identifier "iVar6") (= "=") (binary_expression "DAT_0008900c * 5" (identifier "DAT_0008900c") (* "*") (number_literal "5"))) (; ";")) (expression_statement "DAT_0008900c = DAT_0008900c + 1;" (assignment_expression "DAT_0008900c = DAT_0008900c + 1" (identifier "DAT_0008900c") (= "=") (binary_expression "DAT_0008900c + 1" (identifier "DAT_0008900c") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "(&DAT_00089038)[DAT_00080558] = &DAT_00088f20 + iVar6;" (assignment_expression "(&DAT_00089038)[DAT_00080558] = &DAT_00088f20 + iVar6" (subscript_expression "(&DAT_00089038)[DAT_00080558]" (parenthesized_expression "(&DAT_00089038)" (( "(") (pointer_expression "&DAT_00089038" (& "&") (identifier "DAT_00089038")) () ")")) ([ "[") (identifier "DAT_00080558") (] "]")) (= "=") (binary_expression "&DAT_00088f20 + iVar6" (pointer_expression "&DAT_00088f20" (& "&") (identifier "DAT_00088f20")) (+ "+") (identifier "iVar6"))) (; ";")) (expression_statement "uVar7 = DAT_00089978;" (assignment_expression "uVar7 = DAT_00089978" (identifier "uVar7") (= "=") (identifier "DAT_00089978")) (; ";")) (expression_statement "local_44 = pbVar16 + 2;" (assignment_expression "local_44 = pbVar16 + 2" (identifier "local_44") (= "=") (binary_expression "pbVar16 + 2" (identifier "pbVar16") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if (pbVar16[1] != 0x20) {\n          local_44 = pbVar16 + 1;\n        }" (if "if") (parenthesized_expression "(pbVar16[1] != 0x20)" (( "(") (binary_expression "pbVar16[1] != 0x20" (subscript_expression "pbVar16[1]" (identifier "pbVar16") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0x20")) () ")")) (compound_statement "{\n          local_44 = pbVar16 + 1;\n        }" ({ "{") (expression_statement "local_44 = pbVar16 + 1;" (assignment_expression "local_44 = pbVar16 + 1" (identifier "local_44") (= "=") (binary_expression "pbVar16 + 1" (identifier "pbVar16") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "DAT_00089978 = local_44;" (assignment_expression "DAT_00089978 = local_44" (identifier "DAT_00089978") (= "=") (identifier "local_44")) (; ";")) (expression_statement "pbVar16 = (byte *)FUN_000453b0();" (assignment_expression "pbVar16 = (byte *)FUN_000453b0()" (identifier "pbVar16") (= "=") (cast_expression "(byte *)FUN_000453b0()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000453b0()" (identifier "FUN_000453b0") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (pbVar16 != (byte *)0x0) {\n          DAT_00089978 = pbVar16;\n        }" (if "if") (parenthesized_expression "(pbVar16 != (byte *)0x0)" (( "(") (binary_expression "pbVar16 != (byte *)0x0" (identifier "pbVar16") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          DAT_00089978 = pbVar16;\n        }" ({ "{") (expression_statement "DAT_00089978 = pbVar16;" (assignment_expression "DAT_00089978 = pbVar16" (identifier "DAT_00089978") (= "=") (identifier "pbVar16")) (; ";")) (} "}"))) (expression_statement "FUN_000221d0(0,&DAT_00088f20 + iVar6,1);" (call_expression "FUN_000221d0(0,&DAT_00088f20 + iVar6,1)" (identifier "FUN_000221d0") (argument_list "(0,&DAT_00088f20 + iVar6,1)" (( "(") (number_literal "0") (, ",") (binary_expression "&DAT_00088f20 + iVar6" (pointer_expression "&DAT_00088f20" (& "&") (identifier "DAT_00088f20")) (+ "+") (identifier "iVar6")) (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "bVar4 = *DAT_00089978;" (assignment_expression "bVar4 = *DAT_00089978" (identifier "bVar4") (= "=") (pointer_expression "*DAT_00089978" (* "*") (identifier "DAT_00089978"))) (; ";")) (if_statement "if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n          DAT_00089978 = DAT_00089978 + 1;\n        }" (if "if") (parenthesized_expression "(bVar4 == 0x20)" (( "(") (binary_expression "bVar4 == 0x20" (identifier "bVar4") (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n          bVar4 = DAT_00089978[1];\n          DAT_00089978 = DAT_00089978 + 1;\n        }" ({ "{") (expression_statement "bVar4 = DAT_00089978[1];" (assignment_expression "bVar4 = DAT_00089978[1]" (identifier "bVar4") (= "=") (subscript_expression "DAT_00089978[1]" (identifier "DAT_00089978") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "DAT_00089978 = DAT_00089978 + 1;" (assignment_expression "DAT_00089978 = DAT_00089978 + 1" (identifier "DAT_00089978") (= "=") (binary_expression "DAT_00089978 + 1" (identifier "DAT_00089978") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if (bVar4 == 0x7b) {\n          DAT_00089978 = (byte *)FUN_00045070();\n          if (DAT_00089978 == (byte *)0x0) {\n            return false;\n          }\n          bVar4 = *DAT_00089978;\n        }" (if "if") (parenthesized_expression "(bVar4 == 0x7b)" (( "(") (binary_expression "bVar4 == 0x7b" (identifier "bVar4") (== "==") (number_literal "0x7b")) () ")")) (compound_statement "{\n          DAT_00089978 = (byte *)FUN_00045070();\n          if (DAT_00089978 == (byte *)0x0) {\n            return false;\n          }\n          bVar4 = *DAT_00089978;\n        }" ({ "{") (expression_statement "DAT_00089978 = (byte *)FUN_00045070();" (assignment_expression "DAT_00089978 = (byte *)FUN_00045070()" (identifier "DAT_00089978") (= "=") (cast_expression "(byte *)FUN_00045070()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00045070()" (identifier "FUN_00045070") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (DAT_00089978 == (byte *)0x0) {\n            return false;\n          }" (if "if") (parenthesized_expression "(DAT_00089978 == (byte *)0x0)" (( "(") (binary_expression "DAT_00089978 == (byte *)0x0" (identifier "DAT_00089978") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            return false;\n          }" ({ "{") (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}"))) (expression_statement "bVar4 = *DAT_00089978;" (assignment_expression "bVar4 = *DAT_00089978" (identifier "bVar4") (= "=") (pointer_expression "*DAT_00089978" (* "*") (identifier "DAT_00089978"))) (; ";")) (} "}"))) (expression_statement "pbVar10 = DAT_00089978;" (assignment_expression "pbVar10 = DAT_00089978" (identifier "pbVar10") (= "=") (identifier "DAT_00089978")) (; ";")) (if_statement "if (bVar4 != 0) {\n          uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n          FUN_0002bd60(uVar12,pbVar10);\n        }" (if "if") (parenthesized_expression "(bVar4 != 0)" (( "(") (binary_expression "bVar4 != 0" (identifier "bVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n          FUN_0002bd60(uVar12,pbVar10);\n        }" ({ "{") (expression_statement "uVar12 = dcgettext(0,"junk `%s\' after expression",5);" (assignment_expression "uVar12 = dcgettext(0,"junk `%s\' after expression",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"junk `%s\' after expression",5)" (identifier "dcgettext") (argument_list "(0,"junk `%s\' after expression",5)" (( "(") (number_literal "0") (, ",") (string_literal ""junk `%s\' after expression"" (" """) (string_content "junk `%s") (escape_sequence "\'") (string_content " after expression") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002bd60(uVar12,pbVar10);" (call_expression "FUN_0002bd60(uVar12,pbVar10)" (identifier "FUN_0002bd60") (argument_list "(uVar12,pbVar10)" (( "(") (identifier "uVar12") (, ",") (identifier "pbVar10") () ")"))) (; ";")) (} "}"))) (expression_statement "DAT_00089978 = (byte *)uVar7;" (assignment_expression "DAT_00089978 = (byte *)uVar7" (identifier "DAT_00089978") (= "=") (cast_expression "(byte *)uVar7" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar7"))) (; ";")) (if_statement "if (pbVar16 != (byte *)0x0) {\n          free(pbVar16);\n          if (((&DAT_00088f30)[iVar9 * 0x14] == '\x02') || ((&DAT_00088f30)[iVar9 * 0x14] == '\x05')\n             ) {\n            (&DAT_00088f30)[iVar9 * 0x14] = 0;\n          }\n        }" (if "if") (parenthesized_expression "(pbVar16 != (byte *)0x0)" (( "(") (binary_expression "pbVar16 != (byte *)0x0" (identifier "pbVar16") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          free(pbVar16);\n          if (((&DAT_00088f30)[iVar9 * 0x14] == '\x02') || ((&DAT_00088f30)[iVar9 * 0x14] == '\x05')\n             ) {\n            (&DAT_00088f30)[iVar9 * 0x14] = 0;\n          }\n        }" ({ "{") (expression_statement "free(pbVar16);" (call_expression "free(pbVar16)" (identifier "free") (argument_list "(pbVar16)" (( "(") (identifier "pbVar16") () ")"))) (; ";")) (if_statement "if (((&DAT_00088f30)[iVar9 * 0x14] == '\x02') || ((&DAT_00088f30)[iVar9 * 0x14] == '\x05')\n             ) {\n            (&DAT_00088f30)[iVar9 * 0x14] = 0;\n          }" (if "if") (parenthesized_expression "(((&DAT_00088f30)[iVar9 * 0x14] == '\x02') || ((&DAT_00088f30)[iVar9 * 0x14] == '\x05')\n             )" (( "(") (binary_expression "((&DAT_00088f30)[iVar9 * 0x14] == '\x02') || ((&DAT_00088f30)[iVar9 * 0x14] == '\x05')" (parenthesized_expression "((&DAT_00088f30)[iVar9 * 0x14] == '\x02')" (( "(") (binary_expression "(&DAT_00088f30)[iVar9 * 0x14] == '\x02'" (subscript_expression "(&DAT_00088f30)[iVar9 * 0x14]" (parenthesized_expression "(&DAT_00088f30)" (( "(") (pointer_expression "&DAT_00088f30" (& "&") (identifier "DAT_00088f30")) () ")")) ([ "[") (binary_expression "iVar9 * 0x14" (identifier "iVar9") (* "*") (number_literal "0x14")) (] "]")) (== "==") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (|| "||") (parenthesized_expression "((&DAT_00088f30)[iVar9 * 0x14] == '\x05')" (( "(") (binary_expression "(&DAT_00088f30)[iVar9 * 0x14] == '\x05'" (subscript_expression "(&DAT_00088f30)[iVar9 * 0x14]" (parenthesized_expression "(&DAT_00088f30)" (( "(") (pointer_expression "&DAT_00088f30" (& "&") (identifier "DAT_00088f30")) () ")")) ([ "[") (binary_expression "iVar9 * 0x14" (identifier "iVar9") (* "*") (number_literal "0x14")) (] "]")) (== "==") (char_literal "'\x05'" (' "'") (escape_sequence "\x05") (' "'"))) () ")"))) () ")")) (compound_statement "{\n            (&DAT_00088f30)[iVar9 * 0x14] = 0;\n          }" ({ "{") (expression_statement "(&DAT_00088f30)[iVar9 * 0x14] = 0;" (assignment_expression "(&DAT_00088f30)[iVar9 * 0x14] = 0" (subscript_expression "(&DAT_00088f30)[iVar9 * 0x14]" (parenthesized_expression "(&DAT_00088f30)" (( "(") (pointer_expression "&DAT_00088f30" (& "&") (identifier "DAT_00088f30")) () ")")) ([ "[") (binary_expression "iVar9 * 0x14" (identifier "iVar9") (* "*") (number_literal "0x14")) (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar9 = FUN_00041f60(0xffffffff,0xffffffff,local_44);" (assignment_expression "iVar9 = FUN_00041f60(0xffffffff,0xffffffff,local_44)" (identifier "iVar9") (= "=") (call_expression "FUN_00041f60(0xffffffff,0xffffffff,local_44)" (identifier "FUN_00041f60") (argument_list "(0xffffffff,0xffffffff,local_44)" (( "(") (number_literal "0xffffffff") (, ",") (number_literal "0xffffffff") (, ",") (identifier "local_44") () ")")))) (; ";")) (return_statement "return iVar9 != 0;" (return "return") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "pcVar13 = "at most %d immediate operands are allowed";" (assignment_expression "pcVar13 = "at most %d immediate operands are allowed"" (identifier "pcVar13") (= "=") (string_literal ""at most %d immediate operands are allowed"" (" """) (string_content "at most %d immediate operands are allowed") (" """))) (; ";")) (goto_statement "goto LAB_00047443;" (goto "goto") (statement_identifier "LAB_00047443") (; ";")) (} "}"))) (if_statement "if (*param_1 == 0x7b) {\n      iVar9 = FUN_000464f0();\n      if (iVar9 != 0) {\n        return true;\n      }\n      bVar4 = *pbVar16;\n    }" (if "if") (parenthesized_expression "(*param_1 == 0x7b)" (( "(") (binary_expression "*param_1 == 0x7b" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (== "==") (number_literal "0x7b")) () ")")) (compound_statement "{\n      iVar9 = FUN_000464f0();\n      if (iVar9 != 0) {\n        return true;\n      }\n      bVar4 = *pbVar16;\n    }" ({ "{") (expression_statement "iVar9 = FUN_000464f0();" (assignment_expression "iVar9 = FUN_000464f0()" (identifier "iVar9") (= "=") (call_expression "FUN_000464f0()" (identifier "FUN_000464f0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar9 != 0) {\n        return true;\n      }" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        return true;\n      }" ({ "{") (return_statement "return true;" (return "return") (true "true") (; ";")) (} "}"))) (expression_statement "bVar4 = *pbVar16;" (assignment_expression "bVar4 = *pbVar16" (identifier "bVar4") (= "=") (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16"))) (; ";")) (} "}"))) (expression_statement "iVar9 = DAT_00080558;" (assignment_expression "iVar9 = DAT_00080558" (identifier "iVar9") (= "=") (identifier "DAT_00080558")) (; ";")) (if_statement "if ((((&DAT_00089120)[bVar4] == '\0') && (bVar4 != 0x28 && bVar4 != 0x22)) &&\n       ((&DAT_00089220)[bVar4] == '\0')) {\n      uVar7 = FUN_00046660();\n      uVar12 = dcgettext(0,"invalid char %s beginning operand %d `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7,iVar9 + 1,pbVar16);\n      return false;\n    }" (if "if") (parenthesized_expression "((((&DAT_00089120)[bVar4] == '\0') && (bVar4 != 0x28 && bVar4 != 0x22)) &&\n       ((&DAT_00089220)[bVar4] == '\0'))" (( "(") (binary_expression "(((&DAT_00089120)[bVar4] == '\0') && (bVar4 != 0x28 && bVar4 != 0x22)) &&\n       ((&DAT_00089220)[bVar4] == '\0')" (parenthesized_expression "(((&DAT_00089120)[bVar4] == '\0') && (bVar4 != 0x28 && bVar4 != 0x22))" (( "(") (binary_expression "((&DAT_00089120)[bVar4] == '\0') && (bVar4 != 0x28 && bVar4 != 0x22)" (parenthesized_expression "((&DAT_00089120)[bVar4] == '\0')" (( "(") (binary_expression "(&DAT_00089120)[bVar4] == '\0'" (subscript_expression "(&DAT_00089120)[bVar4]" (parenthesized_expression "(&DAT_00089120)" (( "(") (pointer_expression "&DAT_00089120" (& "&") (identifier "DAT_00089120")) () ")")) ([ "[") (identifier "bVar4") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(bVar4 != 0x28 && bVar4 != 0x22)" (( "(") (binary_expression "bVar4 != 0x28 && bVar4 != 0x22" (binary_expression "bVar4 != 0x28" (identifier "bVar4") (!= "!=") (number_literal "0x28")) (&& "&&") (binary_expression "bVar4 != 0x22" (identifier "bVar4") (!= "!=") (number_literal "0x22"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((&DAT_00089220)[bVar4] == '\0')" (( "(") (binary_expression "(&DAT_00089220)[bVar4] == '\0'" (subscript_expression "(&DAT_00089220)[bVar4]" (parenthesized_expression "(&DAT_00089220)" (( "(") (pointer_expression "&DAT_00089220" (& "&") (identifier "DAT_00089220")) () ")")) ([ "[") (identifier "bVar4") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n      uVar7 = FUN_00046660();\n      uVar12 = dcgettext(0,"invalid char %s beginning operand %d `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7,iVar9 + 1,pbVar16);\n      return false;\n    }" ({ "{") (expression_statement "uVar7 = FUN_00046660();" (assignment_expression "uVar7 = FUN_00046660()" (identifier "uVar7") (= "=") (call_expression "FUN_00046660()" (identifier "FUN_00046660") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar12 = dcgettext(0,"invalid char %s beginning operand %d `%s\'",5);" (assignment_expression "uVar12 = dcgettext(0,"invalid char %s beginning operand %d `%s\'",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"invalid char %s beginning operand %d `%s\'",5)" (identifier "dcgettext") (argument_list "(0,"invalid char %s beginning operand %d `%s\'",5)" (( "(") (number_literal "0") (, ",") (string_literal ""invalid char %s beginning operand %d `%s\'"" (" """) (string_content "invalid char %s beginning operand %d `%s") (escape_sequence "\'") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002bd60(uVar12,uVar7,iVar9 + 1,pbVar16);" (call_expression "FUN_0002bd60(uVar12,uVar7,iVar9 + 1,pbVar16)" (identifier "FUN_0002bd60") (argument_list "(uVar12,uVar7,iVar9 + 1,pbVar16)" (( "(") (identifier "uVar12") (, ",") (identifier "uVar7") (, ",") (binary_expression "iVar9 + 1" (identifier "iVar9") (+ "+") (number_literal "1")) (, ",") (identifier "pbVar16") () ")"))) (; ";")) (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}"))) (goto_statement "goto LAB_00046c60;" (goto "goto") (statement_identifier "LAB_00046c60") (; ";")) (} "}"))) (expression_statement "bVar4 = *local_28;" (assignment_expression "bVar4 = *local_28" (identifier "bVar4") (= "=") (pointer_expression "*local_28" (* "*") (identifier "local_28"))) (; ";")) (expression_statement "pbVar10 = local_28;" (assignment_expression "pbVar10 = local_28" (identifier "pbVar10") (= "=") (identifier "local_28")) (; ";")) (if_statement "if (bVar4 == 0x20) {\n    bVar4 = local_28[1];\n    pbVar10 = local_28 + 1;\n  }" (if "if") (parenthesized_expression "(bVar4 == 0x20)" (( "(") (binary_expression "bVar4 == 0x20" (identifier "bVar4") (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n    bVar4 = local_28[1];\n    pbVar10 = local_28 + 1;\n  }" ({ "{") (expression_statement "bVar4 = local_28[1];" (assignment_expression "bVar4 = local_28[1]" (identifier "bVar4") (= "=") (subscript_expression "local_28[1]" (identifier "local_28") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pbVar10 = local_28 + 1;" (assignment_expression "pbVar10 = local_28 + 1" (identifier "pbVar10") (= "=") (binary_expression "local_28 + 1" (identifier "local_28") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if (bVar4 != 0x3a) {\n    if (bVar4 == 0x7b) {\n      pbVar10 = (byte *)FUN_00045070();\n      if (pbVar10 == (byte *)0x0) {\n        return false;\n      }\n      bVar4 = *pbVar10;\n    }\n    iVar9 = DAT_00080558;\n    if (bVar4 == 0) {\n      uVar3 = *(uint *)(iVar6 + 8);\n      iVar1 = DAT_00080558 + 0xe;\n      (&DAT_00088fa0)[iVar1 * 2] = (&DAT_00088fa0)[iVar1 * 2] | *(uint *)(iVar6 + 4) & 0xffbfffff;\n      *(uint *)(&DAT_00088fa4 + iVar1 * 8) = *(uint *)(&DAT_00088fa4 + iVar1 * 8) | uVar3;\n      (&DAT_00088fa4)[iVar1 * 8] = (&DAT_00088fa4)[iVar1 * 8] & 0xbf;\n      DAT_00089000 = DAT_00089000 + 1;\n      (&DAT_00089038)[iVar9] = iVar6;\n      return true;\n    }\nLAB_00046ad0:\n    uVar7 = dcgettext(0,"junk `%s\' after register",5);\n    FUN_0002bd60(uVar7,pbVar10);\n    return false;\n  }" (if "if") (parenthesized_expression "(bVar4 != 0x3a)" (( "(") (binary_expression "bVar4 != 0x3a" (identifier "bVar4") (!= "!=") (number_literal "0x3a")) () ")")) (compound_statement "{\n    if (bVar4 == 0x7b) {\n      pbVar10 = (byte *)FUN_00045070();\n      if (pbVar10 == (byte *)0x0) {\n        return false;\n      }\n      bVar4 = *pbVar10;\n    }\n    iVar9 = DAT_00080558;\n    if (bVar4 == 0) {\n      uVar3 = *(uint *)(iVar6 + 8);\n      iVar1 = DAT_00080558 + 0xe;\n      (&DAT_00088fa0)[iVar1 * 2] = (&DAT_00088fa0)[iVar1 * 2] | *(uint *)(iVar6 + 4) & 0xffbfffff;\n      *(uint *)(&DAT_00088fa4 + iVar1 * 8) = *(uint *)(&DAT_00088fa4 + iVar1 * 8) | uVar3;\n      (&DAT_00088fa4)[iVar1 * 8] = (&DAT_00088fa4)[iVar1 * 8] & 0xbf;\n      DAT_00089000 = DAT_00089000 + 1;\n      (&DAT_00089038)[iVar9] = iVar6;\n      return true;\n    }\nLAB_00046ad0:\n    uVar7 = dcgettext(0,"junk `%s\' after register",5);\n    FUN_0002bd60(uVar7,pbVar10);\n    return false;\n  }" ({ "{") (if_statement "if (bVar4 == 0x7b) {\n      pbVar10 = (byte *)FUN_00045070();\n      if (pbVar10 == (byte *)0x0) {\n        return false;\n      }\n      bVar4 = *pbVar10;\n    }" (if "if") (parenthesized_expression "(bVar4 == 0x7b)" (( "(") (binary_expression "bVar4 == 0x7b" (identifier "bVar4") (== "==") (number_literal "0x7b")) () ")")) (compound_statement "{\n      pbVar10 = (byte *)FUN_00045070();\n      if (pbVar10 == (byte *)0x0) {\n        return false;\n      }\n      bVar4 = *pbVar10;\n    }" ({ "{") (expression_statement "pbVar10 = (byte *)FUN_00045070();" (assignment_expression "pbVar10 = (byte *)FUN_00045070()" (identifier "pbVar10") (= "=") (cast_expression "(byte *)FUN_00045070()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00045070()" (identifier "FUN_00045070") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (pbVar10 == (byte *)0x0) {\n        return false;\n      }" (if "if") (parenthesized_expression "(pbVar10 == (byte *)0x0)" (( "(") (binary_expression "pbVar10 == (byte *)0x0" (identifier "pbVar10") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        return false;\n      }" ({ "{") (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}"))) (expression_statement "bVar4 = *pbVar10;" (assignment_expression "bVar4 = *pbVar10" (identifier "bVar4") (= "=") (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10"))) (; ";")) (} "}"))) (expression_statement "iVar9 = DAT_00080558;" (assignment_expression "iVar9 = DAT_00080558" (identifier "iVar9") (= "=") (identifier "DAT_00080558")) (; ";")) (if_statement "if (bVar4 == 0) {\n      uVar3 = *(uint *)(iVar6 + 8);\n      iVar1 = DAT_00080558 + 0xe;\n      (&DAT_00088fa0)[iVar1 * 2] = (&DAT_00088fa0)[iVar1 * 2] | *(uint *)(iVar6 + 4) & 0xffbfffff;\n      *(uint *)(&DAT_00088fa4 + iVar1 * 8) = *(uint *)(&DAT_00088fa4 + iVar1 * 8) | uVar3;\n      (&DAT_00088fa4)[iVar1 * 8] = (&DAT_00088fa4)[iVar1 * 8] & 0xbf;\n      DAT_00089000 = DAT_00089000 + 1;\n      (&DAT_00089038)[iVar9] = iVar6;\n      return true;\n    }" (if "if") (parenthesized_expression "(bVar4 == 0)" (( "(") (binary_expression "bVar4 == 0" (identifier "bVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar3 = *(uint *)(iVar6 + 8);\n      iVar1 = DAT_00080558 + 0xe;\n      (&DAT_00088fa0)[iVar1 * 2] = (&DAT_00088fa0)[iVar1 * 2] | *(uint *)(iVar6 + 4) & 0xffbfffff;\n      *(uint *)(&DAT_00088fa4 + iVar1 * 8) = *(uint *)(&DAT_00088fa4 + iVar1 * 8) | uVar3;\n      (&DAT_00088fa4)[iVar1 * 8] = (&DAT_00088fa4)[iVar1 * 8] & 0xbf;\n      DAT_00089000 = DAT_00089000 + 1;\n      (&DAT_00089038)[iVar9] = iVar6;\n      return true;\n    }" ({ "{") (expression_statement "uVar3 = *(uint *)(iVar6 + 8);" (assignment_expression "uVar3 = *(uint *)(iVar6 + 8)" (identifier "uVar3") (= "=") (pointer_expression "*(uint *)(iVar6 + 8)" (* "*") (cast_expression "(uint *)(iVar6 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 8)" (( "(") (binary_expression "iVar6 + 8" (identifier "iVar6") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "iVar1 = DAT_00080558 + 0xe;" (assignment_expression "iVar1 = DAT_00080558 + 0xe" (identifier "iVar1") (= "=") (binary_expression "DAT_00080558 + 0xe" (identifier "DAT_00080558") (+ "+") (number_literal "0xe"))) (; ";")) (expression_statement "(&DAT_00088fa0)[iVar1 * 2] = (&DAT_00088fa0)[iVar1 * 2] | *(uint *)(iVar6 + 4) & 0xffbfffff;" (assignment_expression "(&DAT_00088fa0)[iVar1 * 2] = (&DAT_00088fa0)[iVar1 * 2] | *(uint *)(iVar6 + 4) & 0xffbfffff" (subscript_expression "(&DAT_00088fa0)[iVar1 * 2]" (parenthesized_expression "(&DAT_00088fa0)" (( "(") (pointer_expression "&DAT_00088fa0" (& "&") (identifier "DAT_00088fa0")) () ")")) ([ "[") (binary_expression "iVar1 * 2" (identifier "iVar1") (* "*") (number_literal "2")) (] "]")) (= "=") (binary_expression "(&DAT_00088fa0)[iVar1 * 2] | *(uint *)(iVar6 + 4) & 0xffbfffff" (subscript_expression "(&DAT_00088fa0)[iVar1 * 2]" (parenthesized_expression "(&DAT_00088fa0)" (( "(") (pointer_expression "&DAT_00088fa0" (& "&") (identifier "DAT_00088fa0")) () ")")) ([ "[") (binary_expression "iVar1 * 2" (identifier "iVar1") (* "*") (number_literal "2")) (] "]")) (| "|") (binary_expression "*(uint *)(iVar6 + 4) & 0xffbfffff" (pointer_expression "*(uint *)(iVar6 + 4)" (* "*") (cast_expression "(uint *)(iVar6 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 4)" (( "(") (binary_expression "iVar6 + 4" (identifier "iVar6") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0xffbfffff")))) (; ";")) (expression_statement "*(uint *)(&DAT_00088fa4 + iVar1 * 8) = *(uint *)(&DAT_00088fa4 + iVar1 * 8) | uVar3;" (assignment_expression "*(uint *)(&DAT_00088fa4 + iVar1 * 8) = *(uint *)(&DAT_00088fa4 + iVar1 * 8) | uVar3" (pointer_expression "*(uint *)(&DAT_00088fa4 + iVar1 * 8)" (* "*") (cast_expression "(uint *)(&DAT_00088fa4 + iVar1 * 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00088fa4 + iVar1 * 8)" (( "(") (binary_expression "&DAT_00088fa4 + iVar1 * 8" (pointer_expression "&DAT_00088fa4" (& "&") (identifier "DAT_00088fa4")) (+ "+") (binary_expression "iVar1 * 8" (identifier "iVar1") (* "*") (number_literal "8"))) () ")")))) (= "=") (binary_expression "*(uint *)(&DAT_00088fa4 + iVar1 * 8) | uVar3" (pointer_expression "*(uint *)(&DAT_00088fa4 + iVar1 * 8)" (* "*") (cast_expression "(uint *)(&DAT_00088fa4 + iVar1 * 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00088fa4 + iVar1 * 8)" (( "(") (binary_expression "&DAT_00088fa4 + iVar1 * 8" (pointer_expression "&DAT_00088fa4" (& "&") (identifier "DAT_00088fa4")) (+ "+") (binary_expression "iVar1 * 8" (identifier "iVar1") (* "*") (number_literal "8"))) () ")")))) (| "|") (identifier "uVar3"))) (; ";")) (expression_statement "(&DAT_00088fa4)[iVar1 * 8] = (&DAT_00088fa4)[iVar1 * 8] & 0xbf;" (assignment_expression "(&DAT_00088fa4)[iVar1 * 8] = (&DAT_00088fa4)[iVar1 * 8] & 0xbf" (subscript_expression "(&DAT_00088fa4)[iVar1 * 8]" (parenthesized_expression "(&DAT_00088fa4)" (( "(") (pointer_expression "&DAT_00088fa4" (& "&") (identifier "DAT_00088fa4")) () ")")) ([ "[") (binary_expression "iVar1 * 8" (identifier "iVar1") (* "*") (number_literal "8")) (] "]")) (= "=") (binary_expression "(&DAT_00088fa4)[iVar1 * 8] & 0xbf" (subscript_expression "(&DAT_00088fa4)[iVar1 * 8]" (parenthesized_expression "(&DAT_00088fa4)" (( "(") (pointer_expression "&DAT_00088fa4" (& "&") (identifier "DAT_00088fa4")) () ")")) ([ "[") (binary_expression "iVar1 * 8" (identifier "iVar1") (* "*") (number_literal "8")) (] "]")) (& "&") (number_literal "0xbf"))) (; ";")) (expression_statement "DAT_00089000 = DAT_00089000 + 1;" (assignment_expression "DAT_00089000 = DAT_00089000 + 1" (identifier "DAT_00089000") (= "=") (binary_expression "DAT_00089000 + 1" (identifier "DAT_00089000") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "(&DAT_00089038)[iVar9] = iVar6;" (assignment_expression "(&DAT_00089038)[iVar9] = iVar6" (subscript_expression "(&DAT_00089038)[iVar9]" (parenthesized_expression "(&DAT_00089038)" (( "(") (pointer_expression "&DAT_00089038" (& "&") (identifier "DAT_00089038")) () ")")) ([ "[") (identifier "iVar9") (] "]")) (= "=") (identifier "iVar6")) (; ";")) (return_statement "return true;" (return "return") (true "true") (; ";")) (} "}"))) (labeled_statement "LAB_00046ad0:\n    uVar7 = dcgettext(0,"junk `%s\' after register",5);" (statement_identifier "LAB_00046ad0") (: ":") (expression_statement "uVar7 = dcgettext(0,"junk `%s\' after register",5);" (assignment_expression "uVar7 = dcgettext(0,"junk `%s\' after register",5)" (identifier "uVar7") (= "=") (call_expression "dcgettext(0,"junk `%s\' after register",5)" (identifier "dcgettext") (argument_list "(0,"junk `%s\' after register",5)" (( "(") (number_literal "0") (, ",") (string_literal ""junk `%s\' after register"" (" """) (string_content "junk `%s") (escape_sequence "\'") (string_content " after register") (" """)) (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "FUN_0002bd60(uVar7,pbVar10);" (call_expression "FUN_0002bd60(uVar7,pbVar10)" (identifier "FUN_0002bd60") (argument_list "(uVar7,pbVar10)" (( "(") (identifier "uVar7") (, ",") (identifier "pbVar10") () ")"))) (; ";")) (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}"))) (if_statement "if ((*(ushort *)(iVar6 + 4) & 0x180) == 0) goto LAB_00046ad0;" (if "if") (parenthesized_expression "((*(ushort *)(iVar6 + 4) & 0x180) == 0)" (( "(") (binary_expression "(*(ushort *)(iVar6 + 4) & 0x180) == 0" (parenthesized_expression "(*(ushort *)(iVar6 + 4) & 0x180)" (( "(") (binary_expression "*(ushort *)(iVar6 + 4) & 0x180" (pointer_expression "*(ushort *)(iVar6 + 4)" (* "*") (cast_expression "(ushort *)(iVar6 + 4)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 4)" (( "(") (binary_expression "iVar6 + 4" (identifier "iVar6") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0x180")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00046ad0;" (goto "goto") (statement_identifier "LAB_00046ad0") (; ";"))) (switch_statement "switch(*(undefined1 *)(iVar6 + 0xd)) {\n  case 0:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_es_0007fff8;\n    break;\n  case 1:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_cs_0007ffc8;\n    break;\n  case 2:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ss_0007ffcc;\n    break;\n  case 3:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ds_0007ff80;\n    break;\n  case 4:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_fs_0007ffac;\n    break;\n  case 5:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_gs_0007ff68;\n  }" (switch "switch") (parenthesized_expression "(*(undefined1 *)(iVar6 + 0xd))" (( "(") (pointer_expression "*(undefined1 *)(iVar6 + 0xd)" (* "*") (cast_expression "(undefined1 *)(iVar6 + 0xd)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0xd)" (( "(") (binary_expression "iVar6 + 0xd" (identifier "iVar6") (+ "+") (number_literal "0xd")) () ")")))) () ")")) (compound_statement "{\n  case 0:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_es_0007fff8;\n    break;\n  case 1:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_cs_0007ffc8;\n    break;\n  case 2:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ss_0007ffcc;\n    break;\n  case 3:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ds_0007ff80;\n    break;\n  case 4:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_fs_0007ffac;\n    break;\n  case 5:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_gs_0007ff68;\n  }" ({ "{") (case_statement "case 0:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_es_0007fff8;\n    break;" (case "case") (number_literal "0") (: ":") (expression_statement "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_es_0007fff8;" (assignment_expression "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_es_0007fff8" (pointer_expression "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4)" (* "*") (cast_expression "(undefined **)(&DAT_00089080 + DAT_00089008 * 4)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(&DAT_00089080 + DAT_00089008 * 4)" (( "(") (binary_expression "&DAT_00089080 + DAT_00089008 * 4" (pointer_expression "&DAT_00089080" (& "&") (identifier "DAT_00089080")) (+ "+") (binary_expression "DAT_00089008 * 4" (identifier "DAT_00089008") (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "PTR_es_0007fff8")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 1:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_cs_0007ffc8;\n    break;" (case "case") (number_literal "1") (: ":") (expression_statement "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_cs_0007ffc8;" (assignment_expression "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_cs_0007ffc8" (pointer_expression "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4)" (* "*") (cast_expression "(undefined **)(&DAT_00089080 + DAT_00089008 * 4)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(&DAT_00089080 + DAT_00089008 * 4)" (( "(") (binary_expression "&DAT_00089080 + DAT_00089008 * 4" (pointer_expression "&DAT_00089080" (& "&") (identifier "DAT_00089080")) (+ "+") (binary_expression "DAT_00089008 * 4" (identifier "DAT_00089008") (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "PTR_cs_0007ffc8")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 2:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ss_0007ffcc;\n    break;" (case "case") (number_literal "2") (: ":") (expression_statement "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ss_0007ffcc;" (assignment_expression "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ss_0007ffcc" (pointer_expression "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4)" (* "*") (cast_expression "(undefined **)(&DAT_00089080 + DAT_00089008 * 4)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(&DAT_00089080 + DAT_00089008 * 4)" (( "(") (binary_expression "&DAT_00089080 + DAT_00089008 * 4" (pointer_expression "&DAT_00089080" (& "&") (identifier "DAT_00089080")) (+ "+") (binary_expression "DAT_00089008 * 4" (identifier "DAT_00089008") (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "PTR_ss_0007ffcc")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 3:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ds_0007ff80;\n    break;" (case "case") (number_literal "3") (: ":") (expression_statement "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ds_0007ff80;" (assignment_expression "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ds_0007ff80" (pointer_expression "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4)" (* "*") (cast_expression "(undefined **)(&DAT_00089080 + DAT_00089008 * 4)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(&DAT_00089080 + DAT_00089008 * 4)" (( "(") (binary_expression "&DAT_00089080 + DAT_00089008 * 4" (pointer_expression "&DAT_00089080" (& "&") (identifier "DAT_00089080")) (+ "+") (binary_expression "DAT_00089008 * 4" (identifier "DAT_00089008") (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "PTR_ds_0007ff80")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 4:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_fs_0007ffac;\n    break;" (case "case") (number_literal "4") (: ":") (expression_statement "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_fs_0007ffac;" (assignment_expression "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_fs_0007ffac" (pointer_expression "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4)" (* "*") (cast_expression "(undefined **)(&DAT_00089080 + DAT_00089008 * 4)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(&DAT_00089080 + DAT_00089008 * 4)" (( "(") (binary_expression "&DAT_00089080 + DAT_00089008 * 4" (pointer_expression "&DAT_00089080" (& "&") (identifier "DAT_00089080")) (+ "+") (binary_expression "DAT_00089008 * 4" (identifier "DAT_00089008") (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "PTR_fs_0007ffac")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 5:\n    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_gs_0007ff68;" (case "case") (number_literal "5") (: ":") (expression_statement "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_gs_0007ff68;" (assignment_expression "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_gs_0007ff68" (pointer_expression "*(undefined **)(&DAT_00089080 + DAT_00089008 * 4)" (* "*") (cast_expression "(undefined **)(&DAT_00089080 + DAT_00089008 * 4)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(&DAT_00089080 + DAT_00089008 * 4)" (( "(") (binary_expression "&DAT_00089080 + DAT_00089008 * 4" (pointer_expression "&DAT_00089080" (& "&") (identifier "DAT_00089080")) (+ "+") (binary_expression "DAT_00089008 * 4" (identifier "DAT_00089008") (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "PTR_gs_0007ff68")) (; ";"))) (} "}"))) (expression_statement "bVar4 = pbVar10[1];" (assignment_expression "bVar4 = pbVar10[1]" (identifier "bVar4") (= "=") (subscript_expression "pbVar10[1]" (identifier "pbVar10") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pbVar16 = pbVar10 + 1;" (assignment_expression "pbVar16 = pbVar10 + 1" (identifier "pbVar16") (= "=") (binary_expression "pbVar10 + 1" (identifier "pbVar10") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (bVar4 == 0x20) {\n    bVar4 = pbVar10[2];\n    pbVar16 = pbVar10 + 2;\n  }" (if "if") (parenthesized_expression "(bVar4 == 0x20)" (( "(") (binary_expression "bVar4 == 0x20" (identifier "bVar4") (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n    bVar4 = pbVar10[2];\n    pbVar16 = pbVar10 + 2;\n  }" ({ "{") (expression_statement "bVar4 = pbVar10[2];" (assignment_expression "bVar4 = pbVar10[2]" (identifier "bVar4") (= "=") (subscript_expression "pbVar10[2]" (identifier "pbVar10") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "pbVar16 = pbVar10 + 2;" (assignment_expression "pbVar16 = pbVar10 + 2" (identifier "pbVar16") (= "=") (binary_expression "pbVar10 + 2" (identifier "pbVar10") (+ "+") (number_literal "2"))) (; ";")) (} "}"))) (if_statement "if (((&DAT_00089120)[bVar4] == '\0') && ((&DAT_00089220)[bVar4] == '\0')) {\n    if (bVar4 != 0x28) {\n      if (bVar4 != 0x2a) {\n        pcVar13 = "bad memory operand `%s\'";\n        goto LAB_00046f4c;\n      }\nLAB_00046c3c:\n      if (pbVar16[1] == 0x20) {\n        pbVar16 = pbVar16 + 2;\n      }\n      else {\n        pbVar16 = pbVar16 + 1;\n      }\n      pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);\n      *pbVar10 = *pbVar10 | 2;\n    }\n  }\n  else if (bVar4 == 0x2a) goto LAB_00046c3c;" (if "if") (parenthesized_expression "(((&DAT_00089120)[bVar4] == '\0') && ((&DAT_00089220)[bVar4] == '\0'))" (( "(") (binary_expression "((&DAT_00089120)[bVar4] == '\0') && ((&DAT_00089220)[bVar4] == '\0')" (parenthesized_expression "((&DAT_00089120)[bVar4] == '\0')" (( "(") (binary_expression "(&DAT_00089120)[bVar4] == '\0'" (subscript_expression "(&DAT_00089120)[bVar4]" (parenthesized_expression "(&DAT_00089120)" (( "(") (pointer_expression "&DAT_00089120" (& "&") (identifier "DAT_00089120")) () ")")) ([ "[") (identifier "bVar4") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "((&DAT_00089220)[bVar4] == '\0')" (( "(") (binary_expression "(&DAT_00089220)[bVar4] == '\0'" (subscript_expression "(&DAT_00089220)[bVar4]" (parenthesized_expression "(&DAT_00089220)" (( "(") (pointer_expression "&DAT_00089220" (& "&") (identifier "DAT_00089220")) () ")")) ([ "[") (identifier "bVar4") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n    if (bVar4 != 0x28) {\n      if (bVar4 != 0x2a) {\n        pcVar13 = "bad memory operand `%s\'";\n        goto LAB_00046f4c;\n      }\nLAB_00046c3c:\n      if (pbVar16[1] == 0x20) {\n        pbVar16 = pbVar16 + 2;\n      }\n      else {\n        pbVar16 = pbVar16 + 1;\n      }\n      pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);\n      *pbVar10 = *pbVar10 | 2;\n    }\n  }" ({ "{") (if_statement "if (bVar4 != 0x28) {\n      if (bVar4 != 0x2a) {\n        pcVar13 = "bad memory operand `%s\'";\n        goto LAB_00046f4c;\n      }\nLAB_00046c3c:\n      if (pbVar16[1] == 0x20) {\n        pbVar16 = pbVar16 + 2;\n      }\n      else {\n        pbVar16 = pbVar16 + 1;\n      }\n      pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);\n      *pbVar10 = *pbVar10 | 2;\n    }" (if "if") (parenthesized_expression "(bVar4 != 0x28)" (( "(") (binary_expression "bVar4 != 0x28" (identifier "bVar4") (!= "!=") (number_literal "0x28")) () ")")) (compound_statement "{\n      if (bVar4 != 0x2a) {\n        pcVar13 = "bad memory operand `%s\'";\n        goto LAB_00046f4c;\n      }\nLAB_00046c3c:\n      if (pbVar16[1] == 0x20) {\n        pbVar16 = pbVar16 + 2;\n      }\n      else {\n        pbVar16 = pbVar16 + 1;\n      }\n      pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);\n      *pbVar10 = *pbVar10 | 2;\n    }" ({ "{") (if_statement "if (bVar4 != 0x2a) {\n        pcVar13 = "bad memory operand `%s\'";\n        goto LAB_00046f4c;\n      }" (if "if") (parenthesized_expression "(bVar4 != 0x2a)" (( "(") (binary_expression "bVar4 != 0x2a" (identifier "bVar4") (!= "!=") (number_literal "0x2a")) () ")")) (compound_statement "{\n        pcVar13 = "bad memory operand `%s\'";\n        goto LAB_00046f4c;\n      }" ({ "{") (expression_statement "pcVar13 = "bad memory operand `%s\'";" (assignment_expression "pcVar13 = "bad memory operand `%s\'"" (identifier "pcVar13") (= "=") (string_literal ""bad memory operand `%s\'"" (" """) (string_content "bad memory operand `%s") (escape_sequence "\'") (" """))) (; ";")) (goto_statement "goto LAB_00046f4c;" (goto "goto") (statement_identifier "LAB_00046f4c") (; ";")) (} "}"))) (labeled_statement "LAB_00046c3c:\n      if (pbVar16[1] == 0x20) {\n        pbVar16 = pbVar16 + 2;\n      }\n      else {\n        pbVar16 = pbVar16 + 1;\n      }" (statement_identifier "LAB_00046c3c") (: ":") (if_statement "if (pbVar16[1] == 0x20) {\n        pbVar16 = pbVar16 + 2;\n      }\n      else {\n        pbVar16 = pbVar16 + 1;\n      }" (if "if") (parenthesized_expression "(pbVar16[1] == 0x20)" (( "(") (binary_expression "pbVar16[1] == 0x20" (subscript_expression "pbVar16[1]" (identifier "pbVar16") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n        pbVar16 = pbVar16 + 2;\n      }" ({ "{") (expression_statement "pbVar16 = pbVar16 + 2;" (assignment_expression "pbVar16 = pbVar16 + 2" (identifier "pbVar16") (= "=") (binary_expression "pbVar16 + 2" (identifier "pbVar16") (+ "+") (number_literal "2"))) (; ";")) (} "}")) (else_clause "else {\n        pbVar16 = pbVar16 + 1;\n      }" (else "else") (compound_statement "{\n        pbVar16 = pbVar16 + 1;\n      }" ({ "{") (expression_statement "pbVar16 = pbVar16 + 1;" (assignment_expression "pbVar16 = pbVar16 + 1" (identifier "pbVar16") (= "=") (binary_expression "pbVar16 + 1" (identifier "pbVar16") (+ "+") (number_literal "1"))) (; ";")) (} "}"))))) (expression_statement "pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);" (assignment_expression "pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3)" (identifier "pbVar10") (= "=") (cast_expression "(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&DAT_00089010 + DAT_00080558 * 8 + 3)" (( "(") (binary_expression "(int)&DAT_00089010 + DAT_00080558 * 8 + 3" (binary_expression "(int)&DAT_00089010 + DAT_00080558 * 8" (cast_expression "(int)&DAT_00089010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&DAT_00089010" (& "&") (identifier "DAT_00089010"))) (+ "+") (binary_expression "DAT_00080558 * 8" (identifier "DAT_00080558") (* "*") (number_literal "8"))) (+ "+") (number_literal "3")) () ")")))) (; ";")) (expression_statement "*pbVar10 = *pbVar10 | 2;" (assignment_expression "*pbVar10 = *pbVar10 | 2" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (= "=") (binary_expression "*pbVar10 | 2" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (| "|") (number_literal "2"))) (; ";")) (} "}"))) (} "}")) (else_clause "else if (bVar4 == 0x2a) goto LAB_00046c3c;" (else "else") (if_statement "if (bVar4 == 0x2a) goto LAB_00046c3c;" (if "if") (parenthesized_expression "(bVar4 == 0x2a)" (( "(") (binary_expression "bVar4 == 0x2a" (identifier "bVar4") (== "==") (number_literal "0x2a")) () ")")) (goto_statement "goto LAB_00046c3c;" (goto "goto") (statement_identifier "LAB_00046c3c") (; ";"))))) (labeled_statement "LAB_00046c60:\n  if (DAT_00089008 == 1) {\n    iVar9 = FUN_00046270();\n    if (iVar9 == 0) {\n      return false;\n    }\n    if (DAT_00089008 != 1) goto LAB_00046c6f;\n    puVar11 = (undefined4 *)*DAT_00088f88;\n    if ((*(byte *)((int)puVar11 + 0x27) & 1) == 0) goto LAB_0004729e;\n  }\n  else {\nLAB_00046c6f:\n    if (DAT_00089008 == 2) {\n      puVar11 = (undefined4 *)*DAT_00088f88;\nLAB_0004729e:\n      uVar7 = *puVar11;\n      uVar12 = dcgettext(0,"too many memory references for `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7);\n      return false;\n    }\n  }" (statement_identifier "LAB_00046c60") (: ":") (if_statement "if (DAT_00089008 == 1) {\n    iVar9 = FUN_00046270();\n    if (iVar9 == 0) {\n      return false;\n    }\n    if (DAT_00089008 != 1) goto LAB_00046c6f;\n    puVar11 = (undefined4 *)*DAT_00088f88;\n    if ((*(byte *)((int)puVar11 + 0x27) & 1) == 0) goto LAB_0004729e;\n  }\n  else {\nLAB_00046c6f:\n    if (DAT_00089008 == 2) {\n      puVar11 = (undefined4 *)*DAT_00088f88;\nLAB_0004729e:\n      uVar7 = *puVar11;\n      uVar12 = dcgettext(0,"too many memory references for `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7);\n      return false;\n    }\n  }" (if "if") (parenthesized_expression "(DAT_00089008 == 1)" (( "(") (binary_expression "DAT_00089008 == 1" (identifier "DAT_00089008") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n    iVar9 = FUN_00046270();\n    if (iVar9 == 0) {\n      return false;\n    }\n    if (DAT_00089008 != 1) goto LAB_00046c6f;\n    puVar11 = (undefined4 *)*DAT_00088f88;\n    if ((*(byte *)((int)puVar11 + 0x27) & 1) == 0) goto LAB_0004729e;\n  }" ({ "{") (expression_statement "iVar9 = FUN_00046270();" (assignment_expression "iVar9 = FUN_00046270()" (identifier "iVar9") (= "=") (call_expression "FUN_00046270()" (identifier "FUN_00046270") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar9 == 0) {\n      return false;\n    }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return false;\n    }" ({ "{") (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}"))) (if_statement "if (DAT_00089008 != 1) goto LAB_00046c6f;" (if "if") (parenthesized_expression "(DAT_00089008 != 1)" (( "(") (binary_expression "DAT_00089008 != 1" (identifier "DAT_00089008") (!= "!=") (number_literal "1")) () ")")) (goto_statement "goto LAB_00046c6f;" (goto "goto") (statement_identifier "LAB_00046c6f") (; ";"))) (expression_statement "puVar11 = (undefined4 *)*DAT_00088f88;" (assignment_expression "puVar11 = (undefined4 *)*DAT_00088f88" (identifier "puVar11") (= "=") (cast_expression "(undefined4 *)*DAT_00088f88" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*DAT_00088f88" (* "*") (identifier "DAT_00088f88")))) (; ";")) (if_statement "if ((*(byte *)((int)puVar11 + 0x27) & 1) == 0) goto LAB_0004729e;" (if "if") (parenthesized_expression "((*(byte *)((int)puVar11 + 0x27) & 1) == 0)" (( "(") (binary_expression "(*(byte *)((int)puVar11 + 0x27) & 1) == 0" (parenthesized_expression "(*(byte *)((int)puVar11 + 0x27) & 1)" (( "(") (binary_expression "*(byte *)((int)puVar11 + 0x27) & 1" (pointer_expression "*(byte *)((int)puVar11 + 0x27)" (* "*") (cast_expression "(byte *)((int)puVar11 + 0x27)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar11 + 0x27)" (( "(") (binary_expression "(int)puVar11 + 0x27" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (+ "+") (number_literal "0x27")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004729e;" (goto "goto") (statement_identifier "LAB_0004729e") (; ";"))) (} "}")) (else_clause "else {\nLAB_00046c6f:\n    if (DAT_00089008 == 2) {\n      puVar11 = (undefined4 *)*DAT_00088f88;\nLAB_0004729e:\n      uVar7 = *puVar11;\n      uVar12 = dcgettext(0,"too many memory references for `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7);\n      return false;\n    }\n  }" (else "else") (compound_statement "{\nLAB_00046c6f:\n    if (DAT_00089008 == 2) {\n      puVar11 = (undefined4 *)*DAT_00088f88;\nLAB_0004729e:\n      uVar7 = *puVar11;\n      uVar12 = dcgettext(0,"too many memory references for `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7);\n      return false;\n    }\n  }" ({ "{") (labeled_statement "LAB_00046c6f:\n    if (DAT_00089008 == 2) {\n      puVar11 = (undefined4 *)*DAT_00088f88;\nLAB_0004729e:\n      uVar7 = *puVar11;\n      uVar12 = dcgettext(0,"too many memory references for `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7);\n      return false;\n    }" (statement_identifier "LAB_00046c6f") (: ":") (if_statement "if (DAT_00089008 == 2) {\n      puVar11 = (undefined4 *)*DAT_00088f88;\nLAB_0004729e:\n      uVar7 = *puVar11;\n      uVar12 = dcgettext(0,"too many memory references for `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7);\n      return false;\n    }" (if "if") (parenthesized_expression "(DAT_00089008 == 2)" (( "(") (binary_expression "DAT_00089008 == 2" (identifier "DAT_00089008") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n      puVar11 = (undefined4 *)*DAT_00088f88;\nLAB_0004729e:\n      uVar7 = *puVar11;\n      uVar12 = dcgettext(0,"too many memory references for `%s\'",5);\n      FUN_0002bd60(uVar12,uVar7);\n      return false;\n    }" ({ "{") (expression_statement "puVar11 = (undefined4 *)*DAT_00088f88;" (assignment_expression "puVar11 = (undefined4 *)*DAT_00088f88" (identifier "puVar11") (= "=") (cast_expression "(undefined4 *)*DAT_00088f88" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*DAT_00088f88" (* "*") (identifier "DAT_00088f88")))) (; ";")) (labeled_statement "LAB_0004729e:\n      uVar7 = *puVar11;" (statement_identifier "LAB_0004729e") (: ":") (expression_statement "uVar7 = *puVar11;" (assignment_expression "uVar7 = *puVar11" (identifier "uVar7") (= "=") (pointer_expression "*puVar11" (* "*") (identifier "puVar11"))) (; ";"))) (expression_statement "uVar12 = dcgettext(0,"too many memory references for `%s\'",5);" (assignment_expression "uVar12 = dcgettext(0,"too many memory references for `%s\'",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"too many memory references for `%s\'",5)" (identifier "dcgettext") (argument_list "(0,"too many memory references for `%s\'",5)" (( "(") (number_literal "0") (, ",") (string_literal ""too many memory references for `%s\'"" (" """) (string_content "too many memory references for `%s") (escape_sequence "\'") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002bd60(uVar12,uVar7);" (call_expression "FUN_0002bd60(uVar12,uVar7)" (identifier "FUN_0002bd60") (argument_list "(uVar12,uVar7)" (( "(") (identifier "uVar12") (, ",") (identifier "uVar7") () ")"))) (; ";")) (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}")))) (} "}"))))) (expression_statement "sVar8 = strlen((char *)pbVar16);" (assignment_expression "sVar8 = strlen((char *)pbVar16)" (identifier "sVar8") (= "=") (call_expression "strlen((char *)pbVar16)" (identifier "strlen") (argument_list "((char *)pbVar16)" (( "(") (cast_expression "(char *)pbVar16" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar16")) () ")")))) (; ";")) (expression_statement "local_44 = pbVar16 + sVar8;" (assignment_expression "local_44 = pbVar16 + sVar8" (identifier "local_44") (= "=") (binary_expression "pbVar16 + sVar8" (identifier "pbVar16") (+ "+") (identifier "sVar8"))) (; ";")) (expression_statement "pbVar10 = (byte *)strchr((char *)pbVar16,0x7b);" (assignment_expression "pbVar10 = (byte *)strchr((char *)pbVar16,0x7b)" (identifier "pbVar10") (= "=") (cast_expression "(byte *)strchr((char *)pbVar16,0x7b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "strchr((char *)pbVar16,0x7b)" (identifier "strchr") (argument_list "((char *)pbVar16,0x7b)" (( "(") (cast_expression "(char *)pbVar16" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar16")) (, ",") (number_literal "0x7b") () ")"))))) (; ";")) (if_statement "if (((pbVar10 != (byte *)0x0) && (pbVar10 < local_44)) &&\n     (iVar9 = FUN_00045070(), local_44 = pbVar10, iVar9 == 0)) {\n    return false;\n  }" (if "if") (parenthesized_expression "(((pbVar10 != (byte *)0x0) && (pbVar10 < local_44)) &&\n     (iVar9 = FUN_00045070(), local_44 = pbVar10, iVar9 == 0))" (( "(") (binary_expression "((pbVar10 != (byte *)0x0) && (pbVar10 < local_44)) &&\n     (iVar9 = FUN_00045070(), local_44 = pbVar10, iVar9 == 0)" (parenthesized_expression "((pbVar10 != (byte *)0x0) && (pbVar10 < local_44))" (( "(") (binary_expression "(pbVar10 != (byte *)0x0) && (pbVar10 < local_44)" (parenthesized_expression "(pbVar10 != (byte *)0x0)" (( "(") (binary_expression "pbVar10 != (byte *)0x0" (identifier "pbVar10") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(pbVar10 < local_44)" (( "(") (binary_expression "pbVar10 < local_44" (identifier "pbVar10") (< "<") (identifier "local_44")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar9 = FUN_00045070(), local_44 = pbVar10, iVar9 == 0)" (( "(") (comma_expression "iVar9 = FUN_00045070(), local_44 = pbVar10, iVar9 == 0" (assignment_expression "iVar9 = FUN_00045070()" (identifier "iVar9") (= "=") (call_expression "FUN_00045070()" (identifier "FUN_00045070") (argument_list "()" (( "(") () ")")))) (, ",") (comma_expression "local_44 = pbVar10, iVar9 == 0" (assignment_expression "local_44 = pbVar10" (identifier "local_44") (= "=") (identifier "pbVar10")) (, ",") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")))) () ")"))) () ")")) (compound_statement "{\n    return false;\n  }" ({ "{") (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}"))) (expression_statement "pbVar10 = local_44 + -1;" (assignment_expression "pbVar10 = local_44 + -1" (identifier "pbVar10") (= "=") (binary_expression "local_44 + -1" (identifier "local_44") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (local_44[-1] == 0x20) {\n    pbVar10 = local_44 + -2;\n    local_44 = local_44 + -1;\n  }" (if "if") (parenthesized_expression "(local_44[-1] == 0x20)" (( "(") (binary_expression "local_44[-1] == 0x20" (subscript_expression "local_44[-1]" (identifier "local_44") ([ "[") (number_literal "-1") (] "]")) (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n    pbVar10 = local_44 + -2;\n    local_44 = local_44 + -1;\n  }" ({ "{") (expression_statement "pbVar10 = local_44 + -2;" (assignment_expression "pbVar10 = local_44 + -2" (identifier "pbVar10") (= "=") (binary_expression "local_44 + -2" (identifier "local_44") (+ "+") (number_literal "-2"))) (; ";")) (expression_statement "local_44 = local_44 + -1;" (assignment_expression "local_44 = local_44 + -1" (identifier "local_44") (= "=") (binary_expression "local_44 + -1" (identifier "local_44") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (expression_statement "pbVar15 = local_44;" (assignment_expression "pbVar15 = local_44" (identifier "pbVar15") (= "=") (identifier "local_44")) (; ";")) (if_statement "if (*pbVar10 == 0x29) {\n    bVar4 = pbVar10[-1];\n    iVar9 = 1;\n    pbVar15 = pbVar10 + -1;\n    if (bVar4 == 0x29) goto LAB_000471f8;\nLAB_000471e0:\n    if (bVar4 != 0x28) goto LAB_000471eb;\n    iVar9 = iVar9 + -1;\n    do {\n      if (iVar9 == 0) {\n        bVar4 = pbVar15[1];\n        if (bVar4 == 0x20) {\n          bVar4 = pbVar10[1];\n          pbVar10 = pbVar15 + 2;\n        }\n        if (bVar4 == 0x2c) {\n          pbVar2 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar2 = *pbVar2 | 0x40;\n          if (DAT_00089074 != 0) goto LAB_00047347;\n          bVar4 = *pbVar10;\n        }\n        else {\n          DAT_00089074 = FUN_00044f30();\n          if (DAT_00089074 == 0) {\n            if (*pbVar10 == 0x25) {\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }\n            if (pbVar16 != local_44) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar10 = *pbVar10 | 0x40;\nLAB_00047347:\n          bVar4 = *local_28;\n          pbVar10 = local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            pbVar10 = local_28 + 1;\n          }\n        }\n        if (bVar4 != 0x2c) {\n          if (bVar4 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }\n          break;\n        }\n        local_44 = pbVar10 + 2;\n        if (pbVar10[1] != 0x20) {\n          local_44 = pbVar10 + 1;\n        }\n        DAT_00089078 = FUN_00044f30();\n        uVar7 = DAT_00089978;\n        if (DAT_00089078 == 0) {\n          if (*local_44 == 0x25) {\n            pcVar13 = strchr((char *)local_44,0x2c);\n            if (pcVar13 != (char *)0x0) {\n              *pcVar13 = '\0';\n            }\n            uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            FUN_0002bd60(uVar7,local_44);\n            return false;\n          }\n          if (*local_44 == 0x29) {\n            uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1);\n            FUN_0002bd60(uVar7,0x29);\n            return false;\n          }\n        }\n        else {\n          bVar4 = *local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            local_28 = local_28 + 1;\n          }\n          if (bVar4 != 0x2c) {\n            DAT_00089978 = (byte *)uVar7;\n            if (bVar4 != 0x29) {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          bVar4 = local_28[1];\n          local_44 = local_28 + 1;\n          if (bVar4 == 0x20) {\n            local_44 = local_28 + 2;\n            bVar4 = local_28[2];\n          }\n          DAT_00089978 = (byte *)uVar7;\n          if (bVar4 == 0x29) break;\n        }\n        DAT_00089978 = local_44;\n        lVar18 = FUN_0002d860();\n        if (lVar18 == 2) {\n          DAT_0008907c = 1;\n          sVar14 = 1;\nLAB_0004751e:\n          if (DAT_00089078 == 0) {\n            uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);\n            FUN_0002bc80(uVar12,1 << sVar14);\n            DAT_0008907c = 0;\n          }\n        }\n        else {\n          if (-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18)) {\n            if (lVar18 == 4) {\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }\n            else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (lVar18 != 1) {\nLAB_0004760c:\n            bVar4 = *DAT_00089978;\n            *DAT_00089978 = 0;\n            uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            FUN_0002bd60(uVar12,local_44);\n            *DAT_00089978 = bVar4;\n            DAT_00089978 = (byte *)uVar7;\n            return false;\n          }\n          DAT_0008907c = 0;\n        }\n        if (DAT_00089978 == (byte *)0x0) {\n          DAT_00089978 = (byte *)uVar7;\n          return false;\n        }\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (bVar4 != 0x29) {\n          pcVar13 = "expecting `)\' after scale factor in `%s\'";\nLAB_00047255:\n          uVar7 = dcgettext(0,pcVar13,5);\n          FUN_0002bd60(uVar7,param_1);\n          return false;\n        }\n        break;\n      }\nLAB_000471eb:\n      pbVar10 = pbVar15;\n      bVar4 = pbVar10[-1];\n      pbVar15 = pbVar10 + -1;\n      if (bVar4 != 0x29) goto LAB_000471e0;\nLAB_000471f8:\n      iVar9 = iVar9 + 1;\n    } while( true );\n  }" (if "if") (parenthesized_expression "(*pbVar10 == 0x29)" (( "(") (binary_expression "*pbVar10 == 0x29" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (== "==") (number_literal "0x29")) () ")")) (compound_statement "{\n    bVar4 = pbVar10[-1];\n    iVar9 = 1;\n    pbVar15 = pbVar10 + -1;\n    if (bVar4 == 0x29) goto LAB_000471f8;\nLAB_000471e0:\n    if (bVar4 != 0x28) goto LAB_000471eb;\n    iVar9 = iVar9 + -1;\n    do {\n      if (iVar9 == 0) {\n        bVar4 = pbVar15[1];\n        if (bVar4 == 0x20) {\n          bVar4 = pbVar10[1];\n          pbVar10 = pbVar15 + 2;\n        }\n        if (bVar4 == 0x2c) {\n          pbVar2 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar2 = *pbVar2 | 0x40;\n          if (DAT_00089074 != 0) goto LAB_00047347;\n          bVar4 = *pbVar10;\n        }\n        else {\n          DAT_00089074 = FUN_00044f30();\n          if (DAT_00089074 == 0) {\n            if (*pbVar10 == 0x25) {\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }\n            if (pbVar16 != local_44) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar10 = *pbVar10 | 0x40;\nLAB_00047347:\n          bVar4 = *local_28;\n          pbVar10 = local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            pbVar10 = local_28 + 1;\n          }\n        }\n        if (bVar4 != 0x2c) {\n          if (bVar4 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }\n          break;\n        }\n        local_44 = pbVar10 + 2;\n        if (pbVar10[1] != 0x20) {\n          local_44 = pbVar10 + 1;\n        }\n        DAT_00089078 = FUN_00044f30();\n        uVar7 = DAT_00089978;\n        if (DAT_00089078 == 0) {\n          if (*local_44 == 0x25) {\n            pcVar13 = strchr((char *)local_44,0x2c);\n            if (pcVar13 != (char *)0x0) {\n              *pcVar13 = '\0';\n            }\n            uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            FUN_0002bd60(uVar7,local_44);\n            return false;\n          }\n          if (*local_44 == 0x29) {\n            uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1);\n            FUN_0002bd60(uVar7,0x29);\n            return false;\n          }\n        }\n        else {\n          bVar4 = *local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            local_28 = local_28 + 1;\n          }\n          if (bVar4 != 0x2c) {\n            DAT_00089978 = (byte *)uVar7;\n            if (bVar4 != 0x29) {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          bVar4 = local_28[1];\n          local_44 = local_28 + 1;\n          if (bVar4 == 0x20) {\n            local_44 = local_28 + 2;\n            bVar4 = local_28[2];\n          }\n          DAT_00089978 = (byte *)uVar7;\n          if (bVar4 == 0x29) break;\n        }\n        DAT_00089978 = local_44;\n        lVar18 = FUN_0002d860();\n        if (lVar18 == 2) {\n          DAT_0008907c = 1;\n          sVar14 = 1;\nLAB_0004751e:\n          if (DAT_00089078 == 0) {\n            uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);\n            FUN_0002bc80(uVar12,1 << sVar14);\n            DAT_0008907c = 0;\n          }\n        }\n        else {\n          if (-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18)) {\n            if (lVar18 == 4) {\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }\n            else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (lVar18 != 1) {\nLAB_0004760c:\n            bVar4 = *DAT_00089978;\n            *DAT_00089978 = 0;\n            uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            FUN_0002bd60(uVar12,local_44);\n            *DAT_00089978 = bVar4;\n            DAT_00089978 = (byte *)uVar7;\n            return false;\n          }\n          DAT_0008907c = 0;\n        }\n        if (DAT_00089978 == (byte *)0x0) {\n          DAT_00089978 = (byte *)uVar7;\n          return false;\n        }\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (bVar4 != 0x29) {\n          pcVar13 = "expecting `)\' after scale factor in `%s\'";\nLAB_00047255:\n          uVar7 = dcgettext(0,pcVar13,5);\n          FUN_0002bd60(uVar7,param_1);\n          return false;\n        }\n        break;\n      }\nLAB_000471eb:\n      pbVar10 = pbVar15;\n      bVar4 = pbVar10[-1];\n      pbVar15 = pbVar10 + -1;\n      if (bVar4 != 0x29) goto LAB_000471e0;\nLAB_000471f8:\n      iVar9 = iVar9 + 1;\n    } while( true );\n  }" ({ "{") (expression_statement "bVar4 = pbVar10[-1];" (assignment_expression "bVar4 = pbVar10[-1]" (identifier "bVar4") (= "=") (subscript_expression "pbVar10[-1]" (identifier "pbVar10") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" (identifier "iVar9") (= "=") (number_literal "1")) (; ";")) (expression_statement "pbVar15 = pbVar10 + -1;" (assignment_expression "pbVar15 = pbVar10 + -1" (identifier "pbVar15") (= "=") (binary_expression "pbVar10 + -1" (identifier "pbVar10") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (bVar4 == 0x29) goto LAB_000471f8;" (if "if") (parenthesized_expression "(bVar4 == 0x29)" (( "(") (binary_expression "bVar4 == 0x29" (identifier "bVar4") (== "==") (number_literal "0x29")) () ")")) (goto_statement "goto LAB_000471f8;" (goto "goto") (statement_identifier "LAB_000471f8") (; ";"))) (labeled_statement "LAB_000471e0:\n    if (bVar4 != 0x28) goto LAB_000471eb;" (statement_identifier "LAB_000471e0") (: ":") (if_statement "if (bVar4 != 0x28) goto LAB_000471eb;" (if "if") (parenthesized_expression "(bVar4 != 0x28)" (( "(") (binary_expression "bVar4 != 0x28" (identifier "bVar4") (!= "!=") (number_literal "0x28")) () ")")) (goto_statement "goto LAB_000471eb;" (goto "goto") (statement_identifier "LAB_000471eb") (; ";")))) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1"))) (; ";")) (do_statement "do {\n      if (iVar9 == 0) {\n        bVar4 = pbVar15[1];\n        if (bVar4 == 0x20) {\n          bVar4 = pbVar10[1];\n          pbVar10 = pbVar15 + 2;\n        }\n        if (bVar4 == 0x2c) {\n          pbVar2 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar2 = *pbVar2 | 0x40;\n          if (DAT_00089074 != 0) goto LAB_00047347;\n          bVar4 = *pbVar10;\n        }\n        else {\n          DAT_00089074 = FUN_00044f30();\n          if (DAT_00089074 == 0) {\n            if (*pbVar10 == 0x25) {\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }\n            if (pbVar16 != local_44) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar10 = *pbVar10 | 0x40;\nLAB_00047347:\n          bVar4 = *local_28;\n          pbVar10 = local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            pbVar10 = local_28 + 1;\n          }\n        }\n        if (bVar4 != 0x2c) {\n          if (bVar4 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }\n          break;\n        }\n        local_44 = pbVar10 + 2;\n        if (pbVar10[1] != 0x20) {\n          local_44 = pbVar10 + 1;\n        }\n        DAT_00089078 = FUN_00044f30();\n        uVar7 = DAT_00089978;\n        if (DAT_00089078 == 0) {\n          if (*local_44 == 0x25) {\n            pcVar13 = strchr((char *)local_44,0x2c);\n            if (pcVar13 != (char *)0x0) {\n              *pcVar13 = '\0';\n            }\n            uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            FUN_0002bd60(uVar7,local_44);\n            return false;\n          }\n          if (*local_44 == 0x29) {\n            uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1);\n            FUN_0002bd60(uVar7,0x29);\n            return false;\n          }\n        }\n        else {\n          bVar4 = *local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            local_28 = local_28 + 1;\n          }\n          if (bVar4 != 0x2c) {\n            DAT_00089978 = (byte *)uVar7;\n            if (bVar4 != 0x29) {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          bVar4 = local_28[1];\n          local_44 = local_28 + 1;\n          if (bVar4 == 0x20) {\n            local_44 = local_28 + 2;\n            bVar4 = local_28[2];\n          }\n          DAT_00089978 = (byte *)uVar7;\n          if (bVar4 == 0x29) break;\n        }\n        DAT_00089978 = local_44;\n        lVar18 = FUN_0002d860();\n        if (lVar18 == 2) {\n          DAT_0008907c = 1;\n          sVar14 = 1;\nLAB_0004751e:\n          if (DAT_00089078 == 0) {\n            uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);\n            FUN_0002bc80(uVar12,1 << sVar14);\n            DAT_0008907c = 0;\n          }\n        }\n        else {\n          if (-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18)) {\n            if (lVar18 == 4) {\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }\n            else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (lVar18 != 1) {\nLAB_0004760c:\n            bVar4 = *DAT_00089978;\n            *DAT_00089978 = 0;\n            uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            FUN_0002bd60(uVar12,local_44);\n            *DAT_00089978 = bVar4;\n            DAT_00089978 = (byte *)uVar7;\n            return false;\n          }\n          DAT_0008907c = 0;\n        }\n        if (DAT_00089978 == (byte *)0x0) {\n          DAT_00089978 = (byte *)uVar7;\n          return false;\n        }\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (bVar4 != 0x29) {\n          pcVar13 = "expecting `)\' after scale factor in `%s\'";\nLAB_00047255:\n          uVar7 = dcgettext(0,pcVar13,5);\n          FUN_0002bd60(uVar7,param_1);\n          return false;\n        }\n        break;\n      }\nLAB_000471eb:\n      pbVar10 = pbVar15;\n      bVar4 = pbVar10[-1];\n      pbVar15 = pbVar10 + -1;\n      if (bVar4 != 0x29) goto LAB_000471e0;\nLAB_000471f8:\n      iVar9 = iVar9 + 1;\n    } while( true );" (do "do") (compound_statement "{\n      if (iVar9 == 0) {\n        bVar4 = pbVar15[1];\n        if (bVar4 == 0x20) {\n          bVar4 = pbVar10[1];\n          pbVar10 = pbVar15 + 2;\n        }\n        if (bVar4 == 0x2c) {\n          pbVar2 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar2 = *pbVar2 | 0x40;\n          if (DAT_00089074 != 0) goto LAB_00047347;\n          bVar4 = *pbVar10;\n        }\n        else {\n          DAT_00089074 = FUN_00044f30();\n          if (DAT_00089074 == 0) {\n            if (*pbVar10 == 0x25) {\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }\n            if (pbVar16 != local_44) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar10 = *pbVar10 | 0x40;\nLAB_00047347:\n          bVar4 = *local_28;\n          pbVar10 = local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            pbVar10 = local_28 + 1;\n          }\n        }\n        if (bVar4 != 0x2c) {\n          if (bVar4 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }\n          break;\n        }\n        local_44 = pbVar10 + 2;\n        if (pbVar10[1] != 0x20) {\n          local_44 = pbVar10 + 1;\n        }\n        DAT_00089078 = FUN_00044f30();\n        uVar7 = DAT_00089978;\n        if (DAT_00089078 == 0) {\n          if (*local_44 == 0x25) {\n            pcVar13 = strchr((char *)local_44,0x2c);\n            if (pcVar13 != (char *)0x0) {\n              *pcVar13 = '\0';\n            }\n            uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            FUN_0002bd60(uVar7,local_44);\n            return false;\n          }\n          if (*local_44 == 0x29) {\n            uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1);\n            FUN_0002bd60(uVar7,0x29);\n            return false;\n          }\n        }\n        else {\n          bVar4 = *local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            local_28 = local_28 + 1;\n          }\n          if (bVar4 != 0x2c) {\n            DAT_00089978 = (byte *)uVar7;\n            if (bVar4 != 0x29) {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          bVar4 = local_28[1];\n          local_44 = local_28 + 1;\n          if (bVar4 == 0x20) {\n            local_44 = local_28 + 2;\n            bVar4 = local_28[2];\n          }\n          DAT_00089978 = (byte *)uVar7;\n          if (bVar4 == 0x29) break;\n        }\n        DAT_00089978 = local_44;\n        lVar18 = FUN_0002d860();\n        if (lVar18 == 2) {\n          DAT_0008907c = 1;\n          sVar14 = 1;\nLAB_0004751e:\n          if (DAT_00089078 == 0) {\n            uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);\n            FUN_0002bc80(uVar12,1 << sVar14);\n            DAT_0008907c = 0;\n          }\n        }\n        else {\n          if (-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18)) {\n            if (lVar18 == 4) {\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }\n            else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (lVar18 != 1) {\nLAB_0004760c:\n            bVar4 = *DAT_00089978;\n            *DAT_00089978 = 0;\n            uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            FUN_0002bd60(uVar12,local_44);\n            *DAT_00089978 = bVar4;\n            DAT_00089978 = (byte *)uVar7;\n            return false;\n          }\n          DAT_0008907c = 0;\n        }\n        if (DAT_00089978 == (byte *)0x0) {\n          DAT_00089978 = (byte *)uVar7;\n          return false;\n        }\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (bVar4 != 0x29) {\n          pcVar13 = "expecting `)\' after scale factor in `%s\'";\nLAB_00047255:\n          uVar7 = dcgettext(0,pcVar13,5);\n          FUN_0002bd60(uVar7,param_1);\n          return false;\n        }\n        break;\n      }\nLAB_000471eb:\n      pbVar10 = pbVar15;\n      bVar4 = pbVar10[-1];\n      pbVar15 = pbVar10 + -1;\n      if (bVar4 != 0x29) goto LAB_000471e0;\nLAB_000471f8:\n      iVar9 = iVar9 + 1;\n    }" ({ "{") (if_statement "if (iVar9 == 0) {\n        bVar4 = pbVar15[1];\n        if (bVar4 == 0x20) {\n          bVar4 = pbVar10[1];\n          pbVar10 = pbVar15 + 2;\n        }\n        if (bVar4 == 0x2c) {\n          pbVar2 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar2 = *pbVar2 | 0x40;\n          if (DAT_00089074 != 0) goto LAB_00047347;\n          bVar4 = *pbVar10;\n        }\n        else {\n          DAT_00089074 = FUN_00044f30();\n          if (DAT_00089074 == 0) {\n            if (*pbVar10 == 0x25) {\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }\n            if (pbVar16 != local_44) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar10 = *pbVar10 | 0x40;\nLAB_00047347:\n          bVar4 = *local_28;\n          pbVar10 = local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            pbVar10 = local_28 + 1;\n          }\n        }\n        if (bVar4 != 0x2c) {\n          if (bVar4 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }\n          break;\n        }\n        local_44 = pbVar10 + 2;\n        if (pbVar10[1] != 0x20) {\n          local_44 = pbVar10 + 1;\n        }\n        DAT_00089078 = FUN_00044f30();\n        uVar7 = DAT_00089978;\n        if (DAT_00089078 == 0) {\n          if (*local_44 == 0x25) {\n            pcVar13 = strchr((char *)local_44,0x2c);\n            if (pcVar13 != (char *)0x0) {\n              *pcVar13 = '\0';\n            }\n            uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            FUN_0002bd60(uVar7,local_44);\n            return false;\n          }\n          if (*local_44 == 0x29) {\n            uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1);\n            FUN_0002bd60(uVar7,0x29);\n            return false;\n          }\n        }\n        else {\n          bVar4 = *local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            local_28 = local_28 + 1;\n          }\n          if (bVar4 != 0x2c) {\n            DAT_00089978 = (byte *)uVar7;\n            if (bVar4 != 0x29) {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          bVar4 = local_28[1];\n          local_44 = local_28 + 1;\n          if (bVar4 == 0x20) {\n            local_44 = local_28 + 2;\n            bVar4 = local_28[2];\n          }\n          DAT_00089978 = (byte *)uVar7;\n          if (bVar4 == 0x29) break;\n        }\n        DAT_00089978 = local_44;\n        lVar18 = FUN_0002d860();\n        if (lVar18 == 2) {\n          DAT_0008907c = 1;\n          sVar14 = 1;\nLAB_0004751e:\n          if (DAT_00089078 == 0) {\n            uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);\n            FUN_0002bc80(uVar12,1 << sVar14);\n            DAT_0008907c = 0;\n          }\n        }\n        else {\n          if (-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18)) {\n            if (lVar18 == 4) {\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }\n            else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (lVar18 != 1) {\nLAB_0004760c:\n            bVar4 = *DAT_00089978;\n            *DAT_00089978 = 0;\n            uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            FUN_0002bd60(uVar12,local_44);\n            *DAT_00089978 = bVar4;\n            DAT_00089978 = (byte *)uVar7;\n            return false;\n          }\n          DAT_0008907c = 0;\n        }\n        if (DAT_00089978 == (byte *)0x0) {\n          DAT_00089978 = (byte *)uVar7;\n          return false;\n        }\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (bVar4 != 0x29) {\n          pcVar13 = "expecting `)\' after scale factor in `%s\'";\nLAB_00047255:\n          uVar7 = dcgettext(0,pcVar13,5);\n          FUN_0002bd60(uVar7,param_1);\n          return false;\n        }\n        break;\n      }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        bVar4 = pbVar15[1];\n        if (bVar4 == 0x20) {\n          bVar4 = pbVar10[1];\n          pbVar10 = pbVar15 + 2;\n        }\n        if (bVar4 == 0x2c) {\n          pbVar2 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar2 = *pbVar2 | 0x40;\n          if (DAT_00089074 != 0) goto LAB_00047347;\n          bVar4 = *pbVar10;\n        }\n        else {\n          DAT_00089074 = FUN_00044f30();\n          if (DAT_00089074 == 0) {\n            if (*pbVar10 == 0x25) {\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }\n            if (pbVar16 != local_44) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar10 = *pbVar10 | 0x40;\nLAB_00047347:\n          bVar4 = *local_28;\n          pbVar10 = local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            pbVar10 = local_28 + 1;\n          }\n        }\n        if (bVar4 != 0x2c) {\n          if (bVar4 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }\n          break;\n        }\n        local_44 = pbVar10 + 2;\n        if (pbVar10[1] != 0x20) {\n          local_44 = pbVar10 + 1;\n        }\n        DAT_00089078 = FUN_00044f30();\n        uVar7 = DAT_00089978;\n        if (DAT_00089078 == 0) {\n          if (*local_44 == 0x25) {\n            pcVar13 = strchr((char *)local_44,0x2c);\n            if (pcVar13 != (char *)0x0) {\n              *pcVar13 = '\0';\n            }\n            uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            FUN_0002bd60(uVar7,local_44);\n            return false;\n          }\n          if (*local_44 == 0x29) {\n            uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1);\n            FUN_0002bd60(uVar7,0x29);\n            return false;\n          }\n        }\n        else {\n          bVar4 = *local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            local_28 = local_28 + 1;\n          }\n          if (bVar4 != 0x2c) {\n            DAT_00089978 = (byte *)uVar7;\n            if (bVar4 != 0x29) {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          bVar4 = local_28[1];\n          local_44 = local_28 + 1;\n          if (bVar4 == 0x20) {\n            local_44 = local_28 + 2;\n            bVar4 = local_28[2];\n          }\n          DAT_00089978 = (byte *)uVar7;\n          if (bVar4 == 0x29) break;\n        }\n        DAT_00089978 = local_44;\n        lVar18 = FUN_0002d860();\n        if (lVar18 == 2) {\n          DAT_0008907c = 1;\n          sVar14 = 1;\nLAB_0004751e:\n          if (DAT_00089078 == 0) {\n            uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);\n            FUN_0002bc80(uVar12,1 << sVar14);\n            DAT_0008907c = 0;\n          }\n        }\n        else {\n          if (-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18)) {\n            if (lVar18 == 4) {\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }\n            else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (lVar18 != 1) {\nLAB_0004760c:\n            bVar4 = *DAT_00089978;\n            *DAT_00089978 = 0;\n            uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            FUN_0002bd60(uVar12,local_44);\n            *DAT_00089978 = bVar4;\n            DAT_00089978 = (byte *)uVar7;\n            return false;\n          }\n          DAT_0008907c = 0;\n        }\n        if (DAT_00089978 == (byte *)0x0) {\n          DAT_00089978 = (byte *)uVar7;\n          return false;\n        }\n        bVar4 = *DAT_00089978;\n        if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n        }\n        DAT_00089978 = (byte *)uVar7;\n        if (bVar4 != 0x29) {\n          pcVar13 = "expecting `)\' after scale factor in `%s\'";\nLAB_00047255:\n          uVar7 = dcgettext(0,pcVar13,5);\n          FUN_0002bd60(uVar7,param_1);\n          return false;\n        }\n        break;\n      }" ({ "{") (expression_statement "bVar4 = pbVar15[1];" (assignment_expression "bVar4 = pbVar15[1]" (identifier "bVar4") (= "=") (subscript_expression "pbVar15[1]" (identifier "pbVar15") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (bVar4 == 0x20) {\n          bVar4 = pbVar10[1];\n          pbVar10 = pbVar15 + 2;\n        }" (if "if") (parenthesized_expression "(bVar4 == 0x20)" (( "(") (binary_expression "bVar4 == 0x20" (identifier "bVar4") (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n          bVar4 = pbVar10[1];\n          pbVar10 = pbVar15 + 2;\n        }" ({ "{") (expression_statement "bVar4 = pbVar10[1];" (assignment_expression "bVar4 = pbVar10[1]" (identifier "bVar4") (= "=") (subscript_expression "pbVar10[1]" (identifier "pbVar10") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pbVar10 = pbVar15 + 2;" (assignment_expression "pbVar10 = pbVar15 + 2" (identifier "pbVar10") (= "=") (binary_expression "pbVar15 + 2" (identifier "pbVar15") (+ "+") (number_literal "2"))) (; ";")) (} "}"))) (if_statement "if (bVar4 == 0x2c) {\n          pbVar2 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar2 = *pbVar2 | 0x40;\n          if (DAT_00089074 != 0) goto LAB_00047347;\n          bVar4 = *pbVar10;\n        }\n        else {\n          DAT_00089074 = FUN_00044f30();\n          if (DAT_00089074 == 0) {\n            if (*pbVar10 == 0x25) {\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }\n            if (pbVar16 != local_44) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar10 = *pbVar10 | 0x40;\nLAB_00047347:\n          bVar4 = *local_28;\n          pbVar10 = local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            pbVar10 = local_28 + 1;\n          }\n        }" (if "if") (parenthesized_expression "(bVar4 == 0x2c)" (( "(") (binary_expression "bVar4 == 0x2c" (identifier "bVar4") (== "==") (number_literal "0x2c")) () ")")) (compound_statement "{\n          pbVar2 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar2 = *pbVar2 | 0x40;\n          if (DAT_00089074 != 0) goto LAB_00047347;\n          bVar4 = *pbVar10;\n        }" ({ "{") (expression_statement "pbVar2 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);" (assignment_expression "pbVar2 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2)" (identifier "pbVar2") (= "=") (cast_expression "(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&DAT_00089010 + DAT_00080558 * 8 + 2)" (( "(") (binary_expression "(int)&DAT_00089010 + DAT_00080558 * 8 + 2" (binary_expression "(int)&DAT_00089010 + DAT_00080558 * 8" (cast_expression "(int)&DAT_00089010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&DAT_00089010" (& "&") (identifier "DAT_00089010"))) (+ "+") (binary_expression "DAT_00080558 * 8" (identifier "DAT_00080558") (* "*") (number_literal "8"))) (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "*pbVar2 = *pbVar2 | 0x40;" (assignment_expression "*pbVar2 = *pbVar2 | 0x40" (pointer_expression "*pbVar2" (* "*") (identifier "pbVar2")) (= "=") (binary_expression "*pbVar2 | 0x40" (pointer_expression "*pbVar2" (* "*") (identifier "pbVar2")) (| "|") (number_literal "0x40"))) (; ";")) (if_statement "if (DAT_00089074 != 0) goto LAB_00047347;" (if "if") (parenthesized_expression "(DAT_00089074 != 0)" (( "(") (binary_expression "DAT_00089074 != 0" (identifier "DAT_00089074") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00047347;" (goto "goto") (statement_identifier "LAB_00047347") (; ";"))) (expression_statement "bVar4 = *pbVar10;" (assignment_expression "bVar4 = *pbVar10" (identifier "bVar4") (= "=") (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10"))) (; ";")) (} "}")) (else_clause "else {\n          DAT_00089074 = FUN_00044f30();\n          if (DAT_00089074 == 0) {\n            if (*pbVar10 == 0x25) {\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }\n            if (pbVar16 != local_44) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar10 = *pbVar10 | 0x40;\nLAB_00047347:\n          bVar4 = *local_28;\n          pbVar10 = local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            pbVar10 = local_28 + 1;\n          }\n        }" (else "else") (compound_statement "{\n          DAT_00089074 = FUN_00044f30();\n          if (DAT_00089074 == 0) {\n            if (*pbVar10 == 0x25) {\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }\n            if (pbVar16 != local_44) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }\n          pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);\n          *pbVar10 = *pbVar10 | 0x40;\nLAB_00047347:\n          bVar4 = *local_28;\n          pbVar10 = local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            pbVar10 = local_28 + 1;\n          }\n        }" ({ "{") (expression_statement "DAT_00089074 = FUN_00044f30();" (assignment_expression "DAT_00089074 = FUN_00044f30()" (identifier "DAT_00089074") (= "=") (call_expression "FUN_00044f30()" (identifier "FUN_00044f30") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (DAT_00089074 == 0) {\n            if (*pbVar10 == 0x25) {\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }\n            if (pbVar16 != local_44) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }" (if "if") (parenthesized_expression "(DAT_00089074 == 0)" (( "(") (binary_expression "DAT_00089074 == 0" (identifier "DAT_00089074") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            if (*pbVar10 == 0x25) {\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }\n            if (pbVar16 != local_44) goto LAB_00046cd4;\n            goto LAB_00046ea4;\n          }" ({ "{") (if_statement "if (*pbVar10 == 0x25) {\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }" (if "if") (parenthesized_expression "(*pbVar10 == 0x25)" (( "(") (binary_expression "*pbVar10 == 0x25" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (== "==") (number_literal "0x25")) () ")")) (compound_statement "{\n              pcVar13 = strchr((char *)pbVar10,0x2c);\n              if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }\n              uVar7 = dcgettext(0,"bad register name `%s\'",5);\n              FUN_0002bd60(uVar7,pbVar10);\n              return false;\n            }" ({ "{") (expression_statement "pcVar13 = strchr((char *)pbVar10,0x2c);" (assignment_expression "pcVar13 = strchr((char *)pbVar10,0x2c)" (identifier "pcVar13") (= "=") (call_expression "strchr((char *)pbVar10,0x2c)" (identifier "strchr") (argument_list "((char *)pbVar10,0x2c)" (( "(") (cast_expression "(char *)pbVar10" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar10")) (, ",") (number_literal "0x2c") () ")")))) (; ";")) (if_statement "if (pcVar13 != (char *)0x0) {\n                *pcVar13 = '\0';\n              }" (if "if") (parenthesized_expression "(pcVar13 != (char *)0x0)" (( "(") (binary_expression "pcVar13 != (char *)0x0" (identifier "pcVar13") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                *pcVar13 = '\0';\n              }" ({ "{") (expression_statement "*pcVar13 = '\0';" (assignment_expression "*pcVar13 = '\0'" (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}"))) (expression_statement "uVar7 = dcgettext(0,"bad register name `%s\'",5);" (assignment_expression "uVar7 = dcgettext(0,"bad register name `%s\'",5)" (identifier "uVar7") (= "=") (call_expression "dcgettext(0,"bad register name `%s\'",5)" (identifier "dcgettext") (argument_list "(0,"bad register name `%s\'",5)" (( "(") (number_literal "0") (, ",") (string_literal ""bad register name `%s\'"" (" """) (string_content "bad register name `%s") (escape_sequence "\'") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002bd60(uVar7,pbVar10);" (call_expression "FUN_0002bd60(uVar7,pbVar10)" (identifier "FUN_0002bd60") (argument_list "(uVar7,pbVar10)" (( "(") (identifier "uVar7") (, ",") (identifier "pbVar10") () ")"))) (; ";")) (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}"))) (if_statement "if (pbVar16 != local_44) goto LAB_00046cd4;" (if "if") (parenthesized_expression "(pbVar16 != local_44)" (( "(") (binary_expression "pbVar16 != local_44" (identifier "pbVar16") (!= "!=") (identifier "local_44")) () ")")) (goto_statement "goto LAB_00046cd4;" (goto "goto") (statement_identifier "LAB_00046cd4") (; ";"))) (goto_statement "goto LAB_00046ea4;" (goto "goto") (statement_identifier "LAB_00046ea4") (; ";")) (} "}"))) (expression_statement "pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);" (assignment_expression "pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2)" (identifier "pbVar10") (= "=") (cast_expression "(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&DAT_00089010 + DAT_00080558 * 8 + 2)" (( "(") (binary_expression "(int)&DAT_00089010 + DAT_00080558 * 8 + 2" (binary_expression "(int)&DAT_00089010 + DAT_00080558 * 8" (cast_expression "(int)&DAT_00089010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&DAT_00089010" (& "&") (identifier "DAT_00089010"))) (+ "+") (binary_expression "DAT_00080558 * 8" (identifier "DAT_00080558") (* "*") (number_literal "8"))) (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "*pbVar10 = *pbVar10 | 0x40;" (assignment_expression "*pbVar10 = *pbVar10 | 0x40" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (= "=") (binary_expression "*pbVar10 | 0x40" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (| "|") (number_literal "0x40"))) (; ";")) (labeled_statement "LAB_00047347:\n          bVar4 = *local_28;" (statement_identifier "LAB_00047347") (: ":") (expression_statement "bVar4 = *local_28;" (assignment_expression "bVar4 = *local_28" (identifier "bVar4") (= "=") (pointer_expression "*local_28" (* "*") (identifier "local_28"))) (; ";"))) (expression_statement "pbVar10 = local_28;" (assignment_expression "pbVar10 = local_28" (identifier "pbVar10") (= "=") (identifier "local_28")) (; ";")) (if_statement "if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            pbVar10 = local_28 + 1;\n          }" (if "if") (parenthesized_expression "(bVar4 == 0x20)" (( "(") (binary_expression "bVar4 == 0x20" (identifier "bVar4") (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n            bVar4 = local_28[1];\n            pbVar10 = local_28 + 1;\n          }" ({ "{") (expression_statement "bVar4 = local_28[1];" (assignment_expression "bVar4 = local_28[1]" (identifier "bVar4") (= "=") (subscript_expression "local_28[1]" (identifier "local_28") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pbVar10 = local_28 + 1;" (assignment_expression "pbVar10 = local_28 + 1" (identifier "pbVar10") (= "=") (binary_expression "local_28 + 1" (identifier "local_28") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (} "}")))) (if_statement "if (bVar4 != 0x2c) {\n          if (bVar4 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }\n          break;\n        }" (if "if") (parenthesized_expression "(bVar4 != 0x2c)" (( "(") (binary_expression "bVar4 != 0x2c" (identifier "bVar4") (!= "!=") (number_literal "0x2c")) () ")")) (compound_statement "{\n          if (bVar4 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }\n          break;\n        }" ({ "{") (if_statement "if (bVar4 != 0x29) {\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }" (if "if") (parenthesized_expression "(bVar4 != 0x29)" (( "(") (binary_expression "bVar4 != 0x29" (identifier "bVar4") (!= "!=") (number_literal "0x29")) () ")")) (compound_statement "{\n            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";\n            goto LAB_00047255;\n          }" ({ "{") (expression_statement "pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";" (assignment_expression "pcVar13 = "expecting `,\' or `)\' after base register in `%s\'"" (identifier "pcVar13") (= "=") (string_literal ""expecting `,\' or `)\' after base register in `%s\'"" (" """) (string_content "expecting `,") (escape_sequence "\'") (string_content " or `)") (escape_sequence "\'") (string_content " after base register in `%s") (escape_sequence "\'") (" """))) (; ";")) (goto_statement "goto LAB_00047255;" (goto "goto") (statement_identifier "LAB_00047255") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "local_44 = pbVar10 + 2;" (assignment_expression "local_44 = pbVar10 + 2" (identifier "local_44") (= "=") (binary_expression "pbVar10 + 2" (identifier "pbVar10") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if (pbVar10[1] != 0x20) {\n          local_44 = pbVar10 + 1;\n        }" (if "if") (parenthesized_expression "(pbVar10[1] != 0x20)" (( "(") (binary_expression "pbVar10[1] != 0x20" (subscript_expression "pbVar10[1]" (identifier "pbVar10") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0x20")) () ")")) (compound_statement "{\n          local_44 = pbVar10 + 1;\n        }" ({ "{") (expression_statement "local_44 = pbVar10 + 1;" (assignment_expression "local_44 = pbVar10 + 1" (identifier "local_44") (= "=") (binary_expression "pbVar10 + 1" (identifier "pbVar10") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "DAT_00089078 = FUN_00044f30();" (assignment_expression "DAT_00089078 = FUN_00044f30()" (identifier "DAT_00089078") (= "=") (call_expression "FUN_00044f30()" (identifier "FUN_00044f30") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar7 = DAT_00089978;" (assignment_expression "uVar7 = DAT_00089978" (identifier "uVar7") (= "=") (identifier "DAT_00089978")) (; ";")) (if_statement "if (DAT_00089078 == 0) {\n          if (*local_44 == 0x25) {\n            pcVar13 = strchr((char *)local_44,0x2c);\n            if (pcVar13 != (char *)0x0) {\n              *pcVar13 = '\0';\n            }\n            uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            FUN_0002bd60(uVar7,local_44);\n            return false;\n          }\n          if (*local_44 == 0x29) {\n            uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1);\n            FUN_0002bd60(uVar7,0x29);\n            return false;\n          }\n        }\n        else {\n          bVar4 = *local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            local_28 = local_28 + 1;\n          }\n          if (bVar4 != 0x2c) {\n            DAT_00089978 = (byte *)uVar7;\n            if (bVar4 != 0x29) {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          bVar4 = local_28[1];\n          local_44 = local_28 + 1;\n          if (bVar4 == 0x20) {\n            local_44 = local_28 + 2;\n            bVar4 = local_28[2];\n          }\n          DAT_00089978 = (byte *)uVar7;\n          if (bVar4 == 0x29) break;\n        }" (if "if") (parenthesized_expression "(DAT_00089078 == 0)" (( "(") (binary_expression "DAT_00089078 == 0" (identifier "DAT_00089078") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if (*local_44 == 0x25) {\n            pcVar13 = strchr((char *)local_44,0x2c);\n            if (pcVar13 != (char *)0x0) {\n              *pcVar13 = '\0';\n            }\n            uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            FUN_0002bd60(uVar7,local_44);\n            return false;\n          }\n          if (*local_44 == 0x29) {\n            uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1);\n            FUN_0002bd60(uVar7,0x29);\n            return false;\n          }\n        }" ({ "{") (if_statement "if (*local_44 == 0x25) {\n            pcVar13 = strchr((char *)local_44,0x2c);\n            if (pcVar13 != (char *)0x0) {\n              *pcVar13 = '\0';\n            }\n            uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            FUN_0002bd60(uVar7,local_44);\n            return false;\n          }" (if "if") (parenthesized_expression "(*local_44 == 0x25)" (( "(") (binary_expression "*local_44 == 0x25" (pointer_expression "*local_44" (* "*") (identifier "local_44")) (== "==") (number_literal "0x25")) () ")")) (compound_statement "{\n            pcVar13 = strchr((char *)local_44,0x2c);\n            if (pcVar13 != (char *)0x0) {\n              *pcVar13 = '\0';\n            }\n            uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX);\n            FUN_0002bd60(uVar7,local_44);\n            return false;\n          }" ({ "{") (expression_statement "pcVar13 = strchr((char *)local_44,0x2c);" (assignment_expression "pcVar13 = strchr((char *)local_44,0x2c)" (identifier "pcVar13") (= "=") (call_expression "strchr((char *)local_44,0x2c)" (identifier "strchr") (argument_list "((char *)local_44,0x2c)" (( "(") (cast_expression "(char *)local_44" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_44")) (, ",") (number_literal "0x2c") () ")")))) (; ";")) (if_statement "if (pcVar13 != (char *)0x0) {\n              *pcVar13 = '\0';\n            }" (if "if") (parenthesized_expression "(pcVar13 != (char *)0x0)" (( "(") (binary_expression "pcVar13 != (char *)0x0" (identifier "pcVar13") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              *pcVar13 = '\0';\n            }" ({ "{") (expression_statement "*pcVar13 = '\0';" (assignment_expression "*pcVar13 = '\0'" (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}"))) (expression_statement "uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX);" (assignment_expression "uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX)" (identifier "uVar7") (= "=") (call_expression "dcgettext(0,"bad register name `%s\'",5,extraout_ECX)" (identifier "dcgettext") (argument_list "(0,"bad register name `%s\'",5,extraout_ECX)" (( "(") (number_literal "0") (, ",") (string_literal ""bad register name `%s\'"" (" """) (string_content "bad register name `%s") (escape_sequence "\'") (" """)) (, ",") (number_literal "5") (, ",") (identifier "extraout_ECX") () ")")))) (; ";")) (expression_statement "FUN_0002bd60(uVar7,local_44);" (call_expression "FUN_0002bd60(uVar7,local_44)" (identifier "FUN_0002bd60") (argument_list "(uVar7,local_44)" (( "(") (identifier "uVar7") (, ",") (identifier "local_44") () ")"))) (; ";")) (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}"))) (if_statement "if (*local_44 == 0x29) {\n            uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1);\n            FUN_0002bd60(uVar7,0x29);\n            return false;\n          }" (if "if") (parenthesized_expression "(*local_44 == 0x29)" (( "(") (binary_expression "*local_44 == 0x29" (pointer_expression "*local_44" (* "*") (identifier "local_44")) (== "==") (number_literal "0x29")) () ")")) (compound_statement "{\n            uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1);\n            FUN_0002bd60(uVar7,0x29);\n            return false;\n          }" ({ "{") (expression_statement "uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1);" (assignment_expression "uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1)" (identifier "uVar7") (= "=") (call_expression "dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1)" (identifier "dcgettext") (argument_list "(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,\n                              param_1)" (( "(") (number_literal "0") (, ",") (string_literal ""expecting index register or scale factor after `,\'; got \'%c\'"" (" """) (string_content "expecting index register or scale factor after `,") (escape_sequence "\'") (string_content "; got ") (escape_sequence "\'") (string_content "%c") (escape_sequence "\'") (" """)) (, ",") (number_literal "5") (, ",") (identifier "param_1") () ")")))) (; ";")) (expression_statement "FUN_0002bd60(uVar7,0x29);" (call_expression "FUN_0002bd60(uVar7,0x29)" (identifier "FUN_0002bd60") (argument_list "(uVar7,0x29)" (( "(") (identifier "uVar7") (, ",") (number_literal "0x29") () ")"))) (; ";")) (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          bVar4 = *local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            local_28 = local_28 + 1;\n          }\n          if (bVar4 != 0x2c) {\n            DAT_00089978 = (byte *)uVar7;\n            if (bVar4 != 0x29) {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          bVar4 = local_28[1];\n          local_44 = local_28 + 1;\n          if (bVar4 == 0x20) {\n            local_44 = local_28 + 2;\n            bVar4 = local_28[2];\n          }\n          DAT_00089978 = (byte *)uVar7;\n          if (bVar4 == 0x29) break;\n        }" (else "else") (compound_statement "{\n          bVar4 = *local_28;\n          if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            local_28 = local_28 + 1;\n          }\n          if (bVar4 != 0x2c) {\n            DAT_00089978 = (byte *)uVar7;\n            if (bVar4 != 0x29) {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }\n          bVar4 = local_28[1];\n          local_44 = local_28 + 1;\n          if (bVar4 == 0x20) {\n            local_44 = local_28 + 2;\n            bVar4 = local_28[2];\n          }\n          DAT_00089978 = (byte *)uVar7;\n          if (bVar4 == 0x29) break;\n        }" ({ "{") (expression_statement "bVar4 = *local_28;" (assignment_expression "bVar4 = *local_28" (identifier "bVar4") (= "=") (pointer_expression "*local_28" (* "*") (identifier "local_28"))) (; ";")) (if_statement "if (bVar4 == 0x20) {\n            bVar4 = local_28[1];\n            local_28 = local_28 + 1;\n          }" (if "if") (parenthesized_expression "(bVar4 == 0x20)" (( "(") (binary_expression "bVar4 == 0x20" (identifier "bVar4") (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n            bVar4 = local_28[1];\n            local_28 = local_28 + 1;\n          }" ({ "{") (expression_statement "bVar4 = local_28[1];" (assignment_expression "bVar4 = local_28[1]" (identifier "bVar4") (= "=") (subscript_expression "local_28[1]" (identifier "local_28") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_28 = local_28 + 1;" (assignment_expression "local_28 = local_28 + 1" (identifier "local_28") (= "=") (binary_expression "local_28 + 1" (identifier "local_28") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if (bVar4 != 0x2c) {\n            DAT_00089978 = (byte *)uVar7;\n            if (bVar4 != 0x29) {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }" (if "if") (parenthesized_expression "(bVar4 != 0x2c)" (( "(") (binary_expression "bVar4 != 0x2c" (identifier "bVar4") (!= "!=") (number_literal "0x2c")) () ")")) (compound_statement "{\n            DAT_00089978 = (byte *)uVar7;\n            if (bVar4 != 0x29) {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }\n            break;\n          }" ({ "{") (expression_statement "DAT_00089978 = (byte *)uVar7;" (assignment_expression "DAT_00089978 = (byte *)uVar7" (identifier "DAT_00089978") (= "=") (cast_expression "(byte *)uVar7" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar7"))) (; ";")) (if_statement "if (bVar4 != 0x29) {\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }" (if "if") (parenthesized_expression "(bVar4 != 0x29)" (( "(") (binary_expression "bVar4 != 0x29" (identifier "bVar4") (!= "!=") (number_literal "0x29")) () ")")) (compound_statement "{\n              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";\n              goto LAB_00047255;\n            }" ({ "{") (expression_statement "pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";" (assignment_expression "pcVar13 = "expecting `,\' or `)\' after index register in `%s\'"" (identifier "pcVar13") (= "=") (string_literal ""expecting `,\' or `)\' after index register in `%s\'"" (" """) (string_content "expecting `,") (escape_sequence "\'") (string_content " or `)") (escape_sequence "\'") (string_content " after index register in `%s") (escape_sequence "\'") (" """))) (; ";")) (goto_statement "goto LAB_00047255;" (goto "goto") (statement_identifier "LAB_00047255") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "bVar4 = local_28[1];" (assignment_expression "bVar4 = local_28[1]" (identifier "bVar4") (= "=") (subscript_expression "local_28[1]" (identifier "local_28") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_44 = local_28 + 1;" (assignment_expression "local_44 = local_28 + 1" (identifier "local_44") (= "=") (binary_expression "local_28 + 1" (identifier "local_28") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (bVar4 == 0x20) {\n            local_44 = local_28 + 2;\n            bVar4 = local_28[2];\n          }" (if "if") (parenthesized_expression "(bVar4 == 0x20)" (( "(") (binary_expression "bVar4 == 0x20" (identifier "bVar4") (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n            local_44 = local_28 + 2;\n            bVar4 = local_28[2];\n          }" ({ "{") (expression_statement "local_44 = local_28 + 2;" (assignment_expression "local_44 = local_28 + 2" (identifier "local_44") (= "=") (binary_expression "local_28 + 2" (identifier "local_28") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "bVar4 = local_28[2];" (assignment_expression "bVar4 = local_28[2]" (identifier "bVar4") (= "=") (subscript_expression "local_28[2]" (identifier "local_28") ([ "[") (number_literal "2") (] "]"))) (; ";")) (} "}"))) (expression_statement "DAT_00089978 = (byte *)uVar7;" (assignment_expression "DAT_00089978 = (byte *)uVar7" (identifier "DAT_00089978") (= "=") (cast_expression "(byte *)uVar7" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar7"))) (; ";")) (if_statement "if (bVar4 == 0x29) break;" (if "if") (parenthesized_expression "(bVar4 == 0x29)" (( "(") (binary_expression "bVar4 == 0x29" (identifier "bVar4") (== "==") (number_literal "0x29")) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")))) (expression_statement "DAT_00089978 = local_44;" (assignment_expression "DAT_00089978 = local_44" (identifier "DAT_00089978") (= "=") (identifier "local_44")) (; ";")) (expression_statement "lVar18 = FUN_0002d860();" (assignment_expression "lVar18 = FUN_0002d860()" (identifier "lVar18") (= "=") (call_expression "FUN_0002d860()" (identifier "FUN_0002d860") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (lVar18 == 2) {\n          DAT_0008907c = 1;\n          sVar14 = 1;\nLAB_0004751e:\n          if (DAT_00089078 == 0) {\n            uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);\n            FUN_0002bc80(uVar12,1 << sVar14);\n            DAT_0008907c = 0;\n          }\n        }\n        else {\n          if (-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18)) {\n            if (lVar18 == 4) {\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }\n            else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (lVar18 != 1) {\nLAB_0004760c:\n            bVar4 = *DAT_00089978;\n            *DAT_00089978 = 0;\n            uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            FUN_0002bd60(uVar12,local_44);\n            *DAT_00089978 = bVar4;\n            DAT_00089978 = (byte *)uVar7;\n            return false;\n          }\n          DAT_0008907c = 0;\n        }" (if "if") (parenthesized_expression "(lVar18 == 2)" (( "(") (binary_expression "lVar18 == 2" (identifier "lVar18") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n          DAT_0008907c = 1;\n          sVar14 = 1;\nLAB_0004751e:\n          if (DAT_00089078 == 0) {\n            uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);\n            FUN_0002bc80(uVar12,1 << sVar14);\n            DAT_0008907c = 0;\n          }\n        }" ({ "{") (expression_statement "DAT_0008907c = 1;" (assignment_expression "DAT_0008907c = 1" (identifier "DAT_0008907c") (= "=") (number_literal "1")) (; ";")) (expression_statement "sVar14 = 1;" (assignment_expression "sVar14 = 1" (identifier "sVar14") (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_0004751e:\n          if (DAT_00089078 == 0) {\n            uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);\n            FUN_0002bc80(uVar12,1 << sVar14);\n            DAT_0008907c = 0;\n          }" (statement_identifier "LAB_0004751e") (: ":") (if_statement "if (DAT_00089078 == 0) {\n            uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);\n            FUN_0002bc80(uVar12,1 << sVar14);\n            DAT_0008907c = 0;\n          }" (if "if") (parenthesized_expression "(DAT_00089078 == 0)" (( "(") (binary_expression "DAT_00089078 == 0" (identifier "DAT_00089078") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);\n            FUN_0002bc80(uVar12,1 << sVar14);\n            DAT_0008907c = 0;\n          }" ({ "{") (expression_statement "uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);" (assignment_expression "uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"scale factor of %d without an index register",5,sVar14)" (identifier "dcgettext") (argument_list "(0,"scale factor of %d without an index register",5,sVar14)" (( "(") (number_literal "0") (, ",") (string_literal ""scale factor of %d without an index register"" (" """) (string_content "scale factor of %d without an index register") (" """)) (, ",") (number_literal "5") (, ",") (identifier "sVar14") () ")")))) (; ";")) (expression_statement "FUN_0002bc80(uVar12,1 << sVar14);" (call_expression "FUN_0002bc80(uVar12,1 << sVar14)" (identifier "FUN_0002bc80") (argument_list "(uVar12,1 << sVar14)" (( "(") (identifier "uVar12") (, ",") (binary_expression "1 << sVar14" (number_literal "1") (<< "<<") (identifier "sVar14")) () ")"))) (; ";")) (expression_statement "DAT_0008907c = 0;" (assignment_expression "DAT_0008907c = 0" (identifier "DAT_0008907c") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n          if (-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18)) {\n            if (lVar18 == 4) {\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }\n            else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (lVar18 != 1) {\nLAB_0004760c:\n            bVar4 = *DAT_00089978;\n            *DAT_00089978 = 0;\n            uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            FUN_0002bd60(uVar12,local_44);\n            *DAT_00089978 = bVar4;\n            DAT_00089978 = (byte *)uVar7;\n            return false;\n          }\n          DAT_0008907c = 0;\n        }" (else "else") (compound_statement "{\n          if (-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18)) {\n            if (lVar18 == 4) {\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }\n            else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }\n            goto LAB_0004751e;\n          }\n          if (lVar18 != 1) {\nLAB_0004760c:\n            bVar4 = *DAT_00089978;\n            *DAT_00089978 = 0;\n            uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            FUN_0002bd60(uVar12,local_44);\n            *DAT_00089978 = bVar4;\n            DAT_00089978 = (byte *)uVar7;\n            return false;\n          }\n          DAT_0008907c = 0;\n        }" ({ "{") (if_statement "if (-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18)) {\n            if (lVar18 == 4) {\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }\n            else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }\n            goto LAB_0004751e;\n          }" (if "if") (parenthesized_expression "(-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18))" (( "(") (binary_expression "-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18)" (unary_expression "-(int)((ulonglong)lVar18 >> 0x20)" (- "-") (cast_expression "(int)((ulonglong)lVar18 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar18 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar18 >> 0x20" (cast_expression "(ulonglong)lVar18" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar18")) (>> ">>") (number_literal "0x20")) () ")")))) (< "<") (cast_expression "(int)(uint)(2 < (uint)lVar18)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (call_expression "(uint)(2 < (uint)lVar18)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(2 < (uint)lVar18)" (( "(") (binary_expression "2 < (uint)lVar18" (number_literal "2") (< "<") (cast_expression "(uint)lVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar18"))) () ")"))))) () ")")) (compound_statement "{\n            if (lVar18 == 4) {\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }\n            else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }\n            goto LAB_0004751e;\n          }" ({ "{") (if_statement "if (lVar18 == 4) {\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }\n            else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }" (if "if") (parenthesized_expression "(lVar18 == 4)" (( "(") (binary_expression "lVar18 == 4" (identifier "lVar18") (== "==") (number_literal "4")) () ")")) (compound_statement "{\n              DAT_0008907c = 2;\n              sVar14 = 2;\n            }" ({ "{") (expression_statement "DAT_0008907c = 2;" (assignment_expression "DAT_0008907c = 2" (identifier "DAT_0008907c") (= "=") (number_literal "2")) (; ";")) (expression_statement "sVar14 = 2;" (assignment_expression "sVar14 = 2" (identifier "sVar14") (= "=") (number_literal "2")) (; ";")) (} "}")) (else_clause "else {\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }" (else "else") (compound_statement "{\n              if (lVar18 != 8) goto LAB_0004760c;\n              DAT_0008907c = 3;\n              sVar14 = 3;\n            }" ({ "{") (if_statement "if (lVar18 != 8) goto LAB_0004760c;" (if "if") (parenthesized_expression "(lVar18 != 8)" (( "(") (binary_expression "lVar18 != 8" (identifier "lVar18") (!= "!=") (number_literal "8")) () ")")) (goto_statement "goto LAB_0004760c;" (goto "goto") (statement_identifier "LAB_0004760c") (; ";"))) (expression_statement "DAT_0008907c = 3;" (assignment_expression "DAT_0008907c = 3" (identifier "DAT_0008907c") (= "=") (number_literal "3")) (; ";")) (expression_statement "sVar14 = 3;" (assignment_expression "sVar14 = 3" (identifier "sVar14") (= "=") (number_literal "3")) (; ";")) (} "}")))) (goto_statement "goto LAB_0004751e;" (goto "goto") (statement_identifier "LAB_0004751e") (; ";")) (} "}"))) (if_statement "if (lVar18 != 1) {\nLAB_0004760c:\n            bVar4 = *DAT_00089978;\n            *DAT_00089978 = 0;\n            uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            FUN_0002bd60(uVar12,local_44);\n            *DAT_00089978 = bVar4;\n            DAT_00089978 = (byte *)uVar7;\n            return false;\n          }" (if "if") (parenthesized_expression "(lVar18 != 1)" (( "(") (binary_expression "lVar18 != 1" (identifier "lVar18") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\nLAB_0004760c:\n            bVar4 = *DAT_00089978;\n            *DAT_00089978 = 0;\n            uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);\n            FUN_0002bd60(uVar12,local_44);\n            *DAT_00089978 = bVar4;\n            DAT_00089978 = (byte *)uVar7;\n            return false;\n          }" ({ "{") (labeled_statement "LAB_0004760c:\n            bVar4 = *DAT_00089978;" (statement_identifier "LAB_0004760c") (: ":") (expression_statement "bVar4 = *DAT_00089978;" (assignment_expression "bVar4 = *DAT_00089978" (identifier "bVar4") (= "=") (pointer_expression "*DAT_00089978" (* "*") (identifier "DAT_00089978"))) (; ";"))) (expression_statement "*DAT_00089978 = 0;" (assignment_expression "*DAT_00089978 = 0" (pointer_expression "*DAT_00089978" (* "*") (identifier "DAT_00089978")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);" (assignment_expression "uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5)" (identifier "dcgettext") (argument_list "(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5)" (( "(") (number_literal "0") (, ",") (string_literal ""expecting scale factor of 1, 2, 4, or 8: got `%s\'"" (" """) (string_content "expecting scale factor of 1, 2, 4, or 8: got `%s") (escape_sequence "\'") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002bd60(uVar12,local_44);" (call_expression "FUN_0002bd60(uVar12,local_44)" (identifier "FUN_0002bd60") (argument_list "(uVar12,local_44)" (( "(") (identifier "uVar12") (, ",") (identifier "local_44") () ")"))) (; ";")) (expression_statement "*DAT_00089978 = bVar4;" (assignment_expression "*DAT_00089978 = bVar4" (pointer_expression "*DAT_00089978" (* "*") (identifier "DAT_00089978")) (= "=") (identifier "bVar4")) (; ";")) (expression_statement "DAT_00089978 = (byte *)uVar7;" (assignment_expression "DAT_00089978 = (byte *)uVar7" (identifier "DAT_00089978") (= "=") (cast_expression "(byte *)uVar7" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar7"))) (; ";")) (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}"))) (expression_statement "DAT_0008907c = 0;" (assignment_expression "DAT_0008907c = 0" (identifier "DAT_0008907c") (= "=") (number_literal "0")) (; ";")) (} "}")))) (if_statement "if (DAT_00089978 == (byte *)0x0) {\n          DAT_00089978 = (byte *)uVar7;\n          return false;\n        }" (if "if") (parenthesized_expression "(DAT_00089978 == (byte *)0x0)" (( "(") (binary_expression "DAT_00089978 == (byte *)0x0" (identifier "DAT_00089978") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          DAT_00089978 = (byte *)uVar7;\n          return false;\n        }" ({ "{") (expression_statement "DAT_00089978 = (byte *)uVar7;" (assignment_expression "DAT_00089978 = (byte *)uVar7" (identifier "DAT_00089978") (= "=") (cast_expression "(byte *)uVar7" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar7"))) (; ";")) (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}"))) (expression_statement "bVar4 = *DAT_00089978;" (assignment_expression "bVar4 = *DAT_00089978" (identifier "bVar4") (= "=") (pointer_expression "*DAT_00089978" (* "*") (identifier "DAT_00089978"))) (; ";")) (if_statement "if (bVar4 == 0x20) {\n          bVar4 = DAT_00089978[1];\n        }" (if "if") (parenthesized_expression "(bVar4 == 0x20)" (( "(") (binary_expression "bVar4 == 0x20" (identifier "bVar4") (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n          bVar4 = DAT_00089978[1];\n        }" ({ "{") (expression_statement "bVar4 = DAT_00089978[1];" (assignment_expression "bVar4 = DAT_00089978[1]" (identifier "bVar4") (= "=") (subscript_expression "DAT_00089978[1]" (identifier "DAT_00089978") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}"))) (expression_statement "DAT_00089978 = (byte *)uVar7;" (assignment_expression "DAT_00089978 = (byte *)uVar7" (identifier "DAT_00089978") (= "=") (cast_expression "(byte *)uVar7" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar7"))) (; ";")) (if_statement "if (bVar4 != 0x29) {\n          pcVar13 = "expecting `)\' after scale factor in `%s\'";\nLAB_00047255:\n          uVar7 = dcgettext(0,pcVar13,5);\n          FUN_0002bd60(uVar7,param_1);\n          return false;\n        }" (if "if") (parenthesized_expression "(bVar4 != 0x29)" (( "(") (binary_expression "bVar4 != 0x29" (identifier "bVar4") (!= "!=") (number_literal "0x29")) () ")")) (compound_statement "{\n          pcVar13 = "expecting `)\' after scale factor in `%s\'";\nLAB_00047255:\n          uVar7 = dcgettext(0,pcVar13,5);\n          FUN_0002bd60(uVar7,param_1);\n          return false;\n        }" ({ "{") (expression_statement "pcVar13 = "expecting `)\' after scale factor in `%s\'";" (assignment_expression "pcVar13 = "expecting `)\' after scale factor in `%s\'"" (identifier "pcVar13") (= "=") (string_literal ""expecting `)\' after scale factor in `%s\'"" (" """) (string_content "expecting `)") (escape_sequence "\'") (string_content " after scale factor in `%s") (escape_sequence "\'") (" """))) (; ";")) (labeled_statement "LAB_00047255:\n          uVar7 = dcgettext(0,pcVar13,5);" (statement_identifier "LAB_00047255") (: ":") (expression_statement "uVar7 = dcgettext(0,pcVar13,5);" (assignment_expression "uVar7 = dcgettext(0,pcVar13,5)" (identifier "uVar7") (= "=") (call_expression "dcgettext(0,pcVar13,5)" (identifier "dcgettext") (argument_list "(0,pcVar13,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar13") (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "FUN_0002bd60(uVar7,param_1);" (call_expression "FUN_0002bd60(uVar7,param_1)" (identifier "FUN_0002bd60") (argument_list "(uVar7,param_1)" (( "(") (identifier "uVar7") (, ",") (identifier "param_1") () ")"))) (; ";")) (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (labeled_statement "LAB_000471eb:\n      pbVar10 = pbVar15;" (statement_identifier "LAB_000471eb") (: ":") (expression_statement "pbVar10 = pbVar15;" (assignment_expression "pbVar10 = pbVar15" (identifier "pbVar10") (= "=") (identifier "pbVar15")) (; ";"))) (expression_statement "bVar4 = pbVar10[-1];" (assignment_expression "bVar4 = pbVar10[-1]" (identifier "bVar4") (= "=") (subscript_expression "pbVar10[-1]" (identifier "pbVar10") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "pbVar15 = pbVar10 + -1;" (assignment_expression "pbVar15 = pbVar10 + -1" (identifier "pbVar15") (= "=") (binary_expression "pbVar10 + -1" (identifier "pbVar10") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (bVar4 != 0x29) goto LAB_000471e0;" (if "if") (parenthesized_expression "(bVar4 != 0x29)" (( "(") (binary_expression "bVar4 != 0x29" (identifier "bVar4") (!= "!=") (number_literal "0x29")) () ")")) (goto_statement "goto LAB_000471e0;" (goto "goto") (statement_identifier "LAB_000471e0") (; ";"))) (labeled_statement "LAB_000471f8:\n      iVar9 = iVar9 + 1;" (statement_identifier "LAB_000471f8") (: ":") (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + 1" (identifier "iVar9") (+ "+") (number_literal "1"))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (expression_statement "local_44 = pbVar15;" (assignment_expression "local_44 = pbVar15" (identifier "local_44") (= "=") (identifier "pbVar15")) (; ";")) (if_statement "if (pbVar16 == local_44) goto LAB_00046e80;" (if "if") (parenthesized_expression "(pbVar16 == local_44)" (( "(") (binary_expression "pbVar16 == local_44" (identifier "pbVar16") (== "==") (identifier "local_44")) () ")")) (goto_statement "goto LAB_00046e80;" (goto "goto") (statement_identifier "LAB_00046e80") (; ";"))) (labeled_statement "LAB_00046cd4:\n  iVar6 = DAT_00089004;" (statement_identifier "LAB_00046cd4") (: ":") (expression_statement "iVar6 = DAT_00089004;" (assignment_expression "iVar6 = DAT_00089004" (identifier "iVar6") (= "=") (identifier "DAT_00089004")) (; ";"))) (expression_statement "iVar9 = DAT_00080558;" (assignment_expression "iVar9 = DAT_00080558" (identifier "iVar9") (= "=") (identifier "DAT_00080558")) (; ";")) (if_statement "if (DAT_00089004 == 2) {\n    pcVar13 = "at most %d displacement operands are allowed";\nLAB_00047443:\n    uVar7 = dcgettext(0,pcVar13,5);\n    FUN_0002bd60(uVar7,2);\n    return false;\n  }" (if "if") (parenthesized_expression "(DAT_00089004 == 2)" (( "(") (binary_expression "DAT_00089004 == 2" (identifier "DAT_00089004") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n    pcVar13 = "at most %d displacement operands are allowed";\nLAB_00047443:\n    uVar7 = dcgettext(0,pcVar13,5);\n    FUN_0002bd60(uVar7,2);\n    return false;\n  }" ({ "{") (expression_statement "pcVar13 = "at most %d displacement operands are allowed";" (assignment_expression "pcVar13 = "at most %d displacement operands are allowed"" (identifier "pcVar13") (= "=") (string_literal ""at most %d displacement operands are allowed"" (" """) (string_content "at most %d displacement operands are allowed") (" """))) (; ";")) (labeled_statement "LAB_00047443:\n    uVar7 = dcgettext(0,pcVar13,5);" (statement_identifier "LAB_00047443") (: ":") (expression_statement "uVar7 = dcgettext(0,pcVar13,5);" (assignment_expression "uVar7 = dcgettext(0,pcVar13,5)" (identifier "uVar7") (= "=") (call_expression "dcgettext(0,pcVar13,5)" (identifier "dcgettext") (argument_list "(0,pcVar13,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar13") (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "FUN_0002bd60(uVar7,2);" (call_expression "FUN_0002bd60(uVar7,2)" (identifier "FUN_0002bd60") (argument_list "(uVar7,2)" (( "(") (identifier "uVar7") (, ",") (number_literal "2") () ")"))) (; ";")) (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}"))) (if_statement "if (((*(byte *)((int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8 + 3) & 2) == 0) &&\n     ((*(byte *)(*DAT_00088f88 + 0x24) & 0x60) != 0)) {\n    if (DAT_00088f0c == 2) {\n      if ((DAT_00089093 != '\0') || (local_48 = 0xc0000, DAT_00088ff8 == 'w')) goto LAB_00046d4f;\n    }\n    else {\n      bVar17 = true;\n      if (DAT_00089093 == '\0') {\n        cVar5 = 'l';\n        if (DAT_00088f0c != 1) {\n          cVar5 = 'w';\n        }\n        bVar17 = DAT_00088ff8 == cVar5;\n      }\n      local_48 = 0x40000;\n      if ((DAT_00088f0c == 1) != bVar17) {\nLAB_00046d4f:\n        local_48 = 0x20000;\n      }\n    }\n  }\n  else {\n    local_48 = 0x40000;\n    if (DAT_00088f0c == 2) {\n      local_48 = 0x1c0000;\n      if (DAT_00089092 != '\0') {\n        local_48 = 0x40000;\n      }\n    }\n    else if ((DAT_00089092 != '\0') != (DAT_00088f0c == 1)) goto LAB_00046d4f;\n  }" (if "if") (parenthesized_expression "(((*(byte *)((int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8 + 3) & 2) == 0) &&\n     ((*(byte *)(*DAT_00088f88 + 0x24) & 0x60) != 0))" (( "(") (binary_expression "((*(byte *)((int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8 + 3) & 2) == 0) &&\n     ((*(byte *)(*DAT_00088f88 + 0x24) & 0x60) != 0)" (parenthesized_expression "((*(byte *)((int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8 + 3) & 2) == 0)" (( "(") (binary_expression "(*(byte *)((int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8 + 3) & 2) == 0" (parenthesized_expression "(*(byte *)((int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8 + 3) & 2)" (( "(") (binary_expression "*(byte *)((int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8 + 3) & 2" (pointer_expression "*(byte *)((int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8 + 3)" (* "*") (cast_expression "(byte *)((int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8 + 3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8 + 3)" (( "(") (binary_expression "(int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8 + 3" (binary_expression "(int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8" (cast_expression "(int)&DAT_00088fa0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&DAT_00088fa0" (& "&") (identifier "DAT_00088fa0"))) (+ "+") (binary_expression "(DAT_00080558 + 0xe) * 8" (parenthesized_expression "(DAT_00080558 + 0xe)" (( "(") (binary_expression "DAT_00080558 + 0xe" (identifier "DAT_00080558") (+ "+") (number_literal "0xe")) () ")")) (* "*") (number_literal "8"))) (+ "+") (number_literal "3")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(*DAT_00088f88 + 0x24) & 0x60) != 0)" (( "(") (binary_expression "(*(byte *)(*DAT_00088f88 + 0x24) & 0x60) != 0" (parenthesized_expression "(*(byte *)(*DAT_00088f88 + 0x24) & 0x60)" (( "(") (binary_expression "*(byte *)(*DAT_00088f88 + 0x24) & 0x60" (pointer_expression "*(byte *)(*DAT_00088f88 + 0x24)" (* "*") (cast_expression "(byte *)(*DAT_00088f88 + 0x24)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*DAT_00088f88 + 0x24)" (( "(") (binary_expression "*DAT_00088f88 + 0x24" (pointer_expression "*DAT_00088f88" (* "*") (identifier "DAT_00088f88")) (+ "+") (number_literal "0x24")) () ")")))) (& "&") (number_literal "0x60")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    if (DAT_00088f0c == 2) {\n      if ((DAT_00089093 != '\0') || (local_48 = 0xc0000, DAT_00088ff8 == 'w')) goto LAB_00046d4f;\n    }\n    else {\n      bVar17 = true;\n      if (DAT_00089093 == '\0') {\n        cVar5 = 'l';\n        if (DAT_00088f0c != 1) {\n          cVar5 = 'w';\n        }\n        bVar17 = DAT_00088ff8 == cVar5;\n      }\n      local_48 = 0x40000;\n      if ((DAT_00088f0c == 1) != bVar17) {\nLAB_00046d4f:\n        local_48 = 0x20000;\n      }\n    }\n  }" ({ "{") (if_statement "if (DAT_00088f0c == 2) {\n      if ((DAT_00089093 != '\0') || (local_48 = 0xc0000, DAT_00088ff8 == 'w')) goto LAB_00046d4f;\n    }\n    else {\n      bVar17 = true;\n      if (DAT_00089093 == '\0') {\n        cVar5 = 'l';\n        if (DAT_00088f0c != 1) {\n          cVar5 = 'w';\n        }\n        bVar17 = DAT_00088ff8 == cVar5;\n      }\n      local_48 = 0x40000;\n      if ((DAT_00088f0c == 1) != bVar17) {\nLAB_00046d4f:\n        local_48 = 0x20000;\n      }\n    }" (if "if") (parenthesized_expression "(DAT_00088f0c == 2)" (( "(") (binary_expression "DAT_00088f0c == 2" (identifier "DAT_00088f0c") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n      if ((DAT_00089093 != '\0') || (local_48 = 0xc0000, DAT_00088ff8 == 'w')) goto LAB_00046d4f;\n    }" ({ "{") (if_statement "if ((DAT_00089093 != '\0') || (local_48 = 0xc0000, DAT_00088ff8 == 'w')) goto LAB_00046d4f;" (if "if") (parenthesized_expression "((DAT_00089093 != '\0') || (local_48 = 0xc0000, DAT_00088ff8 == 'w'))" (( "(") (binary_expression "(DAT_00089093 != '\0') || (local_48 = 0xc0000, DAT_00088ff8 == 'w')" (parenthesized_expression "(DAT_00089093 != '\0')" (( "(") (binary_expression "DAT_00089093 != '\0'" (identifier "DAT_00089093") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(local_48 = 0xc0000, DAT_00088ff8 == 'w')" (( "(") (comma_expression "local_48 = 0xc0000, DAT_00088ff8 == 'w'" (assignment_expression "local_48 = 0xc0000" (identifier "local_48") (= "=") (number_literal "0xc0000")) (, ",") (binary_expression "DAT_00088ff8 == 'w'" (identifier "DAT_00088ff8") (== "==") (char_literal "'w'" (' "'") (character "w") (' "'")))) () ")"))) () ")")) (goto_statement "goto LAB_00046d4f;" (goto "goto") (statement_identifier "LAB_00046d4f") (; ";"))) (} "}")) (else_clause "else {\n      bVar17 = true;\n      if (DAT_00089093 == '\0') {\n        cVar5 = 'l';\n        if (DAT_00088f0c != 1) {\n          cVar5 = 'w';\n        }\n        bVar17 = DAT_00088ff8 == cVar5;\n      }\n      local_48 = 0x40000;\n      if ((DAT_00088f0c == 1) != bVar17) {\nLAB_00046d4f:\n        local_48 = 0x20000;\n      }\n    }" (else "else") (compound_statement "{\n      bVar17 = true;\n      if (DAT_00089093 == '\0') {\n        cVar5 = 'l';\n        if (DAT_00088f0c != 1) {\n          cVar5 = 'w';\n        }\n        bVar17 = DAT_00088ff8 == cVar5;\n      }\n      local_48 = 0x40000;\n      if ((DAT_00088f0c == 1) != bVar17) {\nLAB_00046d4f:\n        local_48 = 0x20000;\n      }\n    }" ({ "{") (expression_statement "bVar17 = true;" (assignment_expression "bVar17 = true" (identifier "bVar17") (= "=") (true "true")) (; ";")) (if_statement "if (DAT_00089093 == '\0') {\n        cVar5 = 'l';\n        if (DAT_00088f0c != 1) {\n          cVar5 = 'w';\n        }\n        bVar17 = DAT_00088ff8 == cVar5;\n      }" (if "if") (parenthesized_expression "(DAT_00089093 == '\0')" (( "(") (binary_expression "DAT_00089093 == '\0'" (identifier "DAT_00089093") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        cVar5 = 'l';\n        if (DAT_00088f0c != 1) {\n          cVar5 = 'w';\n        }\n        bVar17 = DAT_00088ff8 == cVar5;\n      }" ({ "{") (expression_statement "cVar5 = 'l';" (assignment_expression "cVar5 = 'l'" (identifier "cVar5") (= "=") (char_literal "'l'" (' "'") (character "l") (' "'"))) (; ";")) (if_statement "if (DAT_00088f0c != 1) {\n          cVar5 = 'w';\n        }" (if "if") (parenthesized_expression "(DAT_00088f0c != 1)" (( "(") (binary_expression "DAT_00088f0c != 1" (identifier "DAT_00088f0c") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n          cVar5 = 'w';\n        }" ({ "{") (expression_statement "cVar5 = 'w';" (assignment_expression "cVar5 = 'w'" (identifier "cVar5") (= "=") (char_literal "'w'" (' "'") (character "w") (' "'"))) (; ";")) (} "}"))) (expression_statement "bVar17 = DAT_00088ff8 == cVar5;" (assignment_expression "bVar17 = DAT_00088ff8 == cVar5" (identifier "bVar17") (= "=") (binary_expression "DAT_00088ff8 == cVar5" (identifier "DAT_00088ff8") (== "==") (identifier "cVar5"))) (; ";")) (} "}"))) (expression_statement "local_48 = 0x40000;" (assignment_expression "local_48 = 0x40000" (identifier "local_48") (= "=") (number_literal "0x40000")) (; ";")) (if_statement "if ((DAT_00088f0c == 1) != bVar17) {\nLAB_00046d4f:\n        local_48 = 0x20000;\n      }" (if "if") (parenthesized_expression "((DAT_00088f0c == 1) != bVar17)" (( "(") (binary_expression "(DAT_00088f0c == 1) != bVar17" (parenthesized_expression "(DAT_00088f0c == 1)" (( "(") (binary_expression "DAT_00088f0c == 1" (identifier "DAT_00088f0c") (== "==") (number_literal "1")) () ")")) (!= "!=") (identifier "bVar17")) () ")")) (compound_statement "{\nLAB_00046d4f:\n        local_48 = 0x20000;\n      }" ({ "{") (labeled_statement "LAB_00046d4f:\n        local_48 = 0x20000;" (statement_identifier "LAB_00046d4f") (: ":") (expression_statement "local_48 = 0x20000;" (assignment_expression "local_48 = 0x20000" (identifier "local_48") (= "=") (number_literal "0x20000")) (; ";"))) (} "}"))) (} "}")))) (} "}")) (else_clause "else {\n    local_48 = 0x40000;\n    if (DAT_00088f0c == 2) {\n      local_48 = 0x1c0000;\n      if (DAT_00089092 != '\0') {\n        local_48 = 0x40000;\n      }\n    }\n    else if ((DAT_00089092 != '\0') != (DAT_00088f0c == 1)) goto LAB_00046d4f;\n  }" (else "else") (compound_statement "{\n    local_48 = 0x40000;\n    if (DAT_00088f0c == 2) {\n      local_48 = 0x1c0000;\n      if (DAT_00089092 != '\0') {\n        local_48 = 0x40000;\n      }\n    }\n    else if ((DAT_00089092 != '\0') != (DAT_00088f0c == 1)) goto LAB_00046d4f;\n  }" ({ "{") (expression_statement "local_48 = 0x40000;" (assignment_expression "local_48 = 0x40000" (identifier "local_48") (= "=") (number_literal "0x40000")) (; ";")) (if_statement "if (DAT_00088f0c == 2) {\n      local_48 = 0x1c0000;\n      if (DAT_00089092 != '\0') {\n        local_48 = 0x40000;\n      }\n    }\n    else if ((DAT_00089092 != '\0') != (DAT_00088f0c == 1)) goto LAB_00046d4f;" (if "if") (parenthesized_expression "(DAT_00088f0c == 2)" (( "(") (binary_expression "DAT_00088f0c == 2" (identifier "DAT_00088f0c") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n      local_48 = 0x1c0000;\n      if (DAT_00089092 != '\0') {\n        local_48 = 0x40000;\n      }\n    }" ({ "{") (expression_statement "local_48 = 0x1c0000;" (assignment_expression "local_48 = 0x1c0000" (identifier "local_48") (= "=") (number_literal "0x1c0000")) (; ";")) (if_statement "if (DAT_00089092 != '\0') {\n        local_48 = 0x40000;\n      }" (if "if") (parenthesized_expression "(DAT_00089092 != '\0')" (( "(") (binary_expression "DAT_00089092 != '\0'" (identifier "DAT_00089092") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        local_48 = 0x40000;\n      }" ({ "{") (expression_statement "local_48 = 0x40000;" (assignment_expression "local_48 = 0x40000" (identifier "local_48") (= "=") (number_literal "0x40000")) (; ";")) (} "}"))) (} "}")) (else_clause "else if ((DAT_00089092 != '\0') != (DAT_00088f0c == 1)) goto LAB_00046d4f;" (else "else") (if_statement "if ((DAT_00089092 != '\0') != (DAT_00088f0c == 1)) goto LAB_00046d4f;" (if "if") (parenthesized_expression "((DAT_00089092 != '\0') != (DAT_00088f0c == 1))" (( "(") (binary_expression "(DAT_00089092 != '\0') != (DAT_00088f0c == 1)" (parenthesized_expression "(DAT_00089092 != '\0')" (( "(") (binary_expression "DAT_00089092 != '\0'" (identifier "DAT_00089092") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (!= "!=") (parenthesized_expression "(DAT_00088f0c == 1)" (( "(") (binary_expression "DAT_00088f0c == 1" (identifier "DAT_00088f0c") (== "==") (number_literal "1")) () ")"))) () ")")) (goto_statement "goto LAB_00046d4f;" (goto "goto") (statement_identifier "LAB_00046d4f") (; ";"))))) (} "}")))) (expression_statement "(&DAT_00088fa0)[(DAT_00080558 + 0xe) * 2] = (&DAT_00088fa0)[(DAT_00080558 + 0xe) * 2] | local_48;" (assignment_expression "(&DAT_00088fa0)[(DAT_00080558 + 0xe) * 2] = (&DAT_00088fa0)[(DAT_00080558 + 0xe) * 2] | local_48" (subscript_expression "(&DAT_00088fa0)[(DAT_00080558 + 0xe) * 2]" (parenthesized_expression "(&DAT_00088fa0)" (( "(") (pointer_expression "&DAT_00088fa0" (& "&") (identifier "DAT_00088fa0")) () ")")) ([ "[") (binary_expression "(DAT_00080558 + 0xe) * 2" (parenthesized_expression "(DAT_00080558 + 0xe)" (( "(") (binary_expression "DAT_00080558 + 0xe" (identifier "DAT_00080558") (+ "+") (number_literal "0xe")) () ")")) (* "*") (number_literal "2")) (] "]")) (= "=") (binary_expression "(&DAT_00088fa0)[(DAT_00080558 + 0xe) * 2] | local_48" (subscript_expression "(&DAT_00088fa0)[(DAT_00080558 + 0xe) * 2]" (parenthesized_expression "(&DAT_00088fa0)" (( "(") (pointer_expression "&DAT_00088fa0" (& "&") (identifier "DAT_00088fa0")) () ")")) ([ "[") (binary_expression "(DAT_00080558 + 0xe) * 2" (parenthesized_expression "(DAT_00080558 + 0xe)" (( "(") (binary_expression "DAT_00080558 + 0xe" (identifier "DAT_00080558") (+ "+") (number_literal "0xe")) () ")")) (* "*") (number_literal "2")) (] "]")) (| "|") (identifier "local_48"))) (; ";")) (expression_statement "iVar1 = DAT_00089004 * 0x14;" (assignment_expression "iVar1 = DAT_00089004 * 0x14" (identifier "iVar1") (= "=") (binary_expression "DAT_00089004 * 0x14" (identifier "DAT_00089004") (* "*") (number_literal "0x14"))) (; ";")) (expression_statement "(&DAT_00089038)[iVar9] = &DAT_00088f60 + iVar1;" (assignment_expression "(&DAT_00089038)[iVar9] = &DAT_00088f60 + iVar1" (subscript_expression "(&DAT_00089038)[iVar9]" (parenthesized_expression "(&DAT_00089038)" (( "(") (pointer_expression "&DAT_00089038" (& "&") (identifier "DAT_00089038")) () ")")) ([ "[") (identifier "iVar9") (] "]")) (= "=") (binary_expression "&DAT_00088f60 + iVar1" (pointer_expression "&DAT_00088f60" (& "&") (identifier "DAT_00088f60")) (+ "+") (identifier "iVar1"))) (; ";")) (expression_statement "uVar7 = DAT_00089978;" (assignment_expression "uVar7 = DAT_00089978" (identifier "uVar7") (= "=") (identifier "DAT_00089978")) (; ";")) (expression_statement "DAT_00089004 = DAT_00089004 + 1;" (assignment_expression "DAT_00089004 = DAT_00089004 + 1" (identifier "DAT_00089004") (= "=") (binary_expression "DAT_00089004 + 1" (identifier "DAT_00089004") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar10 = DAT_000890fc + 1;" (assignment_expression "pbVar10 = DAT_000890fc + 1" (identifier "pbVar10") (= "=") (binary_expression "DAT_000890fc + 1" (identifier "DAT_000890fc") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "DAT_00089978 = pbVar16;" (assignment_expression "DAT_00089978 = pbVar16" (identifier "DAT_00089978") (= "=") (identifier "pbVar16")) (; ";")) (expression_statement "*DAT_000890fc = *local_44;" (assignment_expression "*DAT_000890fc = *local_44" (pointer_expression "*DAT_000890fc" (* "*") (identifier "DAT_000890fc")) (= "=") (pointer_expression "*local_44" (* "*") (identifier "local_44"))) (; ";")) (expression_statement "DAT_000890fc = pbVar10;" (assignment_expression "DAT_000890fc = pbVar10" (identifier "DAT_000890fc") (= "=") (identifier "pbVar10")) (; ";")) (expression_statement "*local_44 = 0;" (assignment_expression "*local_44 = 0" (pointer_expression "*local_44" (* "*") (identifier "local_44")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar16 = (byte *)FUN_000453b0();" (assignment_expression "pbVar16 = (byte *)FUN_000453b0()" (identifier "pbVar16") (= "=") (cast_expression "(byte *)FUN_000453b0()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000453b0()" (identifier "FUN_000453b0") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (pbVar16 != (byte *)0x0) {\n    DAT_00089978 = pbVar16;\n  }" (if "if") (parenthesized_expression "(pbVar16 != (byte *)0x0)" (( "(") (binary_expression "pbVar16 != (byte *)0x0" (identifier "pbVar16") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    DAT_00089978 = pbVar16;\n  }" ({ "{") (expression_statement "DAT_00089978 = pbVar16;" (assignment_expression "DAT_00089978 = pbVar16" (identifier "DAT_00089978") (= "=") (identifier "pbVar16")) (; ";")) (} "}"))) (expression_statement "FUN_000221d0(0,&DAT_00088f60 + iVar1,1);" (call_expression "FUN_000221d0(0,&DAT_00088f60 + iVar1,1)" (identifier "FUN_000221d0") (argument_list "(0,&DAT_00088f60 + iVar1,1)" (( "(") (number_literal "0") (, ",") (binary_expression "&DAT_00088f60 + iVar1" (pointer_expression "&DAT_00088f60" (& "&") (identifier "DAT_00088f60")) (+ "+") (identifier "iVar1")) (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "bVar4 = *DAT_00089978;" (assignment_expression "bVar4 = *DAT_00089978" (identifier "bVar4") (= "=") (pointer_expression "*DAT_00089978" (* "*") (identifier "DAT_00089978"))) (; ";")) (if_statement "if (bVar4 == 0x20) {\n    bVar4 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }" (if "if") (parenthesized_expression "(bVar4 == 0x20)" (( "(") (binary_expression "bVar4 == 0x20" (identifier "bVar4") (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n    bVar4 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }" ({ "{") (expression_statement "bVar4 = DAT_00089978[1];" (assignment_expression "bVar4 = DAT_00089978[1]" (identifier "bVar4") (= "=") (subscript_expression "DAT_00089978[1]" (identifier "DAT_00089978") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "DAT_00089978 = DAT_00089978 + 1;" (assignment_expression "DAT_00089978 = DAT_00089978 + 1" (identifier "DAT_00089978") (= "=") (binary_expression "DAT_00089978 + 1" (identifier "DAT_00089978") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "pbVar10 = DAT_00089978;" (assignment_expression "pbVar10 = DAT_00089978" (identifier "pbVar10") (= "=") (identifier "DAT_00089978")) (; ";")) (if_statement "if (bVar4 != 0) {\n    uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n    FUN_0002bd60(uVar12,pbVar10);\n  }" (if "if") (parenthesized_expression "(bVar4 != 0)" (( "(") (binary_expression "bVar4 != 0" (identifier "bVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar12 = dcgettext(0,"junk `%s\' after expression",5);\n    FUN_0002bd60(uVar12,pbVar10);\n  }" ({ "{") (expression_statement "uVar12 = dcgettext(0,"junk `%s\' after expression",5);" (assignment_expression "uVar12 = dcgettext(0,"junk `%s\' after expression",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"junk `%s\' after expression",5)" (identifier "dcgettext") (argument_list "(0,"junk `%s\' after expression",5)" (( "(") (number_literal "0") (, ",") (string_literal ""junk `%s\' after expression"" (" """) (string_content "junk `%s") (escape_sequence "\'") (string_content " after expression") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002bd60(uVar12,pbVar10);" (call_expression "FUN_0002bd60(uVar12,pbVar10)" (identifier "FUN_0002bd60") (argument_list "(uVar12,pbVar10)" (( "(") (identifier "uVar12") (, ",") (identifier "pbVar10") () ")"))) (; ";")) (} "}"))) (expression_statement "DAT_00089978 = (byte *)uVar7;" (assignment_expression "DAT_00089978 = (byte *)uVar7" (identifier "DAT_00089978") (= "=") (cast_expression "(byte *)uVar7" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar7"))) (; ";")) (if_statement "if (pbVar16 != (byte *)0x0) {\n    free(pbVar16);\n    if (((&DAT_00088f70)[iVar6 * 0x14] == '\x02') || ((&DAT_00088f70)[iVar6 * 0x14] == '\x05')) {\n      (&DAT_00088f70)[iVar6 * 0x14] = 0;\n    }\n  }" (if "if") (parenthesized_expression "(pbVar16 != (byte *)0x0)" (( "(") (binary_expression "pbVar16 != (byte *)0x0" (identifier "pbVar16") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    free(pbVar16);\n    if (((&DAT_00088f70)[iVar6 * 0x14] == '\x02') || ((&DAT_00088f70)[iVar6 * 0x14] == '\x05')) {\n      (&DAT_00088f70)[iVar6 * 0x14] = 0;\n    }\n  }" ({ "{") (expression_statement "free(pbVar16);" (call_expression "free(pbVar16)" (identifier "free") (argument_list "(pbVar16)" (( "(") (identifier "pbVar16") () ")"))) (; ";")) (if_statement "if (((&DAT_00088f70)[iVar6 * 0x14] == '\x02') || ((&DAT_00088f70)[iVar6 * 0x14] == '\x05')) {\n      (&DAT_00088f70)[iVar6 * 0x14] = 0;\n    }" (if "if") (parenthesized_expression "(((&DAT_00088f70)[iVar6 * 0x14] == '\x02') || ((&DAT_00088f70)[iVar6 * 0x14] == '\x05'))" (( "(") (binary_expression "((&DAT_00088f70)[iVar6 * 0x14] == '\x02') || ((&DAT_00088f70)[iVar6 * 0x14] == '\x05')" (parenthesized_expression "((&DAT_00088f70)[iVar6 * 0x14] == '\x02')" (( "(") (binary_expression "(&DAT_00088f70)[iVar6 * 0x14] == '\x02'" (subscript_expression "(&DAT_00088f70)[iVar6 * 0x14]" (parenthesized_expression "(&DAT_00088f70)" (( "(") (pointer_expression "&DAT_00088f70" (& "&") (identifier "DAT_00088f70")) () ")")) ([ "[") (binary_expression "iVar6 * 0x14" (identifier "iVar6") (* "*") (number_literal "0x14")) (] "]")) (== "==") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (|| "||") (parenthesized_expression "((&DAT_00088f70)[iVar6 * 0x14] == '\x05')" (( "(") (binary_expression "(&DAT_00088f70)[iVar6 * 0x14] == '\x05'" (subscript_expression "(&DAT_00088f70)[iVar6 * 0x14]" (parenthesized_expression "(&DAT_00088f70)" (( "(") (pointer_expression "&DAT_00088f70" (& "&") (identifier "DAT_00088f70")) () ")")) ([ "[") (binary_expression "iVar6 * 0x14" (identifier "iVar6") (* "*") (number_literal "0x14")) (] "]")) (== "==") (char_literal "'\x05'" (' "'") (escape_sequence "\x05") (' "'"))) () ")"))) () ")")) (compound_statement "{\n      (&DAT_00088f70)[iVar6 * 0x14] = 0;\n    }" ({ "{") (expression_statement "(&DAT_00088f70)[iVar6 * 0x14] = 0;" (assignment_expression "(&DAT_00088f70)[iVar6 * 0x14] = 0" (subscript_expression "(&DAT_00088f70)[iVar6 * 0x14]" (parenthesized_expression "(&DAT_00088f70)" (( "(") (pointer_expression "&DAT_00088f70" (& "&") (identifier "DAT_00088f70")) () ")")) ([ "[") (binary_expression "iVar6 * 0x14" (identifier "iVar6") (* "*") (number_literal "0x14")) (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar9 = FUN_000466b0();" (assignment_expression "iVar9 = FUN_000466b0()" (identifier "iVar9") (= "=") (call_expression "FUN_000466b0()" (identifier "FUN_000466b0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pbVar16 = DAT_000890fc + -1;" (assignment_expression "pbVar16 = DAT_000890fc + -1" (identifier "pbVar16") (= "=") (binary_expression "DAT_000890fc + -1" (identifier "DAT_000890fc") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "DAT_000890fc = DAT_000890fc + -1;" (assignment_expression "DAT_000890fc = DAT_000890fc + -1" (identifier "DAT_000890fc") (= "=") (binary_expression "DAT_000890fc + -1" (identifier "DAT_000890fc") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "*local_44 = *pbVar16;" (assignment_expression "*local_44 = *pbVar16" (pointer_expression "*local_44" (* "*") (identifier "local_44")) (= "=") (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16"))) (; ";")) (if_statement "if (iVar9 == 0) {\n    return false;\n  }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return false;\n  }" ({ "{") (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}"))) (labeled_statement "LAB_00046e80:\n  if (((((DAT_00089074 != 0) && (*(int *)(DAT_00089074 + 8) == DAT_000654e4)) &&\n       (*(int *)(DAT_00089074 + 4) == DAT_000654e0)) && ((DAT_00089078 == 0 && (DAT_0008907c == 0)))\n      ) && ((*(int *)(&DAT_00089080 + DAT_00089008 * 4) == 0 &&\n            (iVar9 = DAT_00080558 + 0xe, (*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f) == 0\n            )))) {\n    (&DAT_00088fa0)[iVar9 * 2] = 0;\n    *(undefined4 *)(&DAT_00088fa4 + iVar9 * 8) = 0;\n    pbVar16 = (byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2);\n    *pbVar16 = *pbVar16 | 0x80;\n    return true;\n  }" (statement_identifier "LAB_00046e80") (: ":") (if_statement "if (((((DAT_00089074 != 0) && (*(int *)(DAT_00089074 + 8) == DAT_000654e4)) &&\n       (*(int *)(DAT_00089074 + 4) == DAT_000654e0)) && ((DAT_00089078 == 0 && (DAT_0008907c == 0)))\n      ) && ((*(int *)(&DAT_00089080 + DAT_00089008 * 4) == 0 &&\n            (iVar9 = DAT_00080558 + 0xe, (*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f) == 0\n            )))) {\n    (&DAT_00088fa0)[iVar9 * 2] = 0;\n    *(undefined4 *)(&DAT_00088fa4 + iVar9 * 8) = 0;\n    pbVar16 = (byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2);\n    *pbVar16 = *pbVar16 | 0x80;\n    return true;\n  }" (if "if") (parenthesized_expression "(((((DAT_00089074 != 0) && (*(int *)(DAT_00089074 + 8) == DAT_000654e4)) &&\n       (*(int *)(DAT_00089074 + 4) == DAT_000654e0)) && ((DAT_00089078 == 0 && (DAT_0008907c == 0)))\n      ) && ((*(int *)(&DAT_00089080 + DAT_00089008 * 4) == 0 &&\n            (iVar9 = DAT_00080558 + 0xe, (*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f) == 0\n            ))))" (( "(") (binary_expression "((((DAT_00089074 != 0) && (*(int *)(DAT_00089074 + 8) == DAT_000654e4)) &&\n       (*(int *)(DAT_00089074 + 4) == DAT_000654e0)) && ((DAT_00089078 == 0 && (DAT_0008907c == 0)))\n      ) && ((*(int *)(&DAT_00089080 + DAT_00089008 * 4) == 0 &&\n            (iVar9 = DAT_00080558 + 0xe, (*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f) == 0\n            )))" (parenthesized_expression "((((DAT_00089074 != 0) && (*(int *)(DAT_00089074 + 8) == DAT_000654e4)) &&\n       (*(int *)(DAT_00089074 + 4) == DAT_000654e0)) && ((DAT_00089078 == 0 && (DAT_0008907c == 0)))\n      )" (( "(") (binary_expression "(((DAT_00089074 != 0) && (*(int *)(DAT_00089074 + 8) == DAT_000654e4)) &&\n       (*(int *)(DAT_00089074 + 4) == DAT_000654e0)) && ((DAT_00089078 == 0 && (DAT_0008907c == 0)))" (parenthesized_expression "(((DAT_00089074 != 0) && (*(int *)(DAT_00089074 + 8) == DAT_000654e4)) &&\n       (*(int *)(DAT_00089074 + 4) == DAT_000654e0))" (( "(") (binary_expression "((DAT_00089074 != 0) && (*(int *)(DAT_00089074 + 8) == DAT_000654e4)) &&\n       (*(int *)(DAT_00089074 + 4) == DAT_000654e0)" (parenthesized_expression "((DAT_00089074 != 0) && (*(int *)(DAT_00089074 + 8) == DAT_000654e4))" (( "(") (binary_expression "(DAT_00089074 != 0) && (*(int *)(DAT_00089074 + 8) == DAT_000654e4)" (parenthesized_expression "(DAT_00089074 != 0)" (( "(") (binary_expression "DAT_00089074 != 0" (identifier "DAT_00089074") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(DAT_00089074 + 8) == DAT_000654e4)" (( "(") (binary_expression "*(int *)(DAT_00089074 + 8) == DAT_000654e4" (pointer_expression "*(int *)(DAT_00089074 + 8)" (* "*") (cast_expression "(int *)(DAT_00089074 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00089074 + 8)" (( "(") (binary_expression "DAT_00089074 + 8" (identifier "DAT_00089074") (+ "+") (number_literal "8")) () ")")))) (== "==") (identifier "DAT_000654e4")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(DAT_00089074 + 4) == DAT_000654e0)" (( "(") (binary_expression "*(int *)(DAT_00089074 + 4) == DAT_000654e0" (pointer_expression "*(int *)(DAT_00089074 + 4)" (* "*") (cast_expression "(int *)(DAT_00089074 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00089074 + 4)" (( "(") (binary_expression "DAT_00089074 + 4" (identifier "DAT_00089074") (+ "+") (number_literal "4")) () ")")))) (== "==") (identifier "DAT_000654e0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((DAT_00089078 == 0 && (DAT_0008907c == 0)))" (( "(") (parenthesized_expression "(DAT_00089078 == 0 && (DAT_0008907c == 0))" (( "(") (binary_expression "DAT_00089078 == 0 && (DAT_0008907c == 0)" (binary_expression "DAT_00089078 == 0" (identifier "DAT_00089078") (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "(DAT_0008907c == 0)" (( "(") (binary_expression "DAT_0008907c == 0" (identifier "DAT_0008907c") (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((*(int *)(&DAT_00089080 + DAT_00089008 * 4) == 0 &&\n            (iVar9 = DAT_00080558 + 0xe, (*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f) == 0\n            )))" (( "(") (parenthesized_expression "(*(int *)(&DAT_00089080 + DAT_00089008 * 4) == 0 &&\n            (iVar9 = DAT_00080558 + 0xe, (*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f) == 0\n            ))" (( "(") (binary_expression "*(int *)(&DAT_00089080 + DAT_00089008 * 4) == 0 &&\n            (iVar9 = DAT_00080558 + 0xe, (*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f) == 0\n            )" (binary_expression "*(int *)(&DAT_00089080 + DAT_00089008 * 4) == 0" (pointer_expression "*(int *)(&DAT_00089080 + DAT_00089008 * 4)" (* "*") (cast_expression "(int *)(&DAT_00089080 + DAT_00089008 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00089080 + DAT_00089008 * 4)" (( "(") (binary_expression "&DAT_00089080 + DAT_00089008 * 4" (pointer_expression "&DAT_00089080" (& "&") (identifier "DAT_00089080")) (+ "+") (binary_expression "DAT_00089008 * 4" (identifier "DAT_00089008") (* "*") (number_literal "4"))) () ")")))) (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "(iVar9 = DAT_00080558 + 0xe, (*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f) == 0\n            )" (( "(") (comma_expression "iVar9 = DAT_00080558 + 0xe, (*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f) == 0" (assignment_expression "iVar9 = DAT_00080558 + 0xe" (identifier "iVar9") (= "=") (binary_expression "DAT_00080558 + 0xe" (identifier "DAT_00080558") (+ "+") (number_literal "0xe"))) (, ",") (binary_expression "(*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f) == 0" (parenthesized_expression "(*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f)" (( "(") (binary_expression "*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f" (pointer_expression "*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2)" (* "*") (cast_expression "(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&DAT_00088fa0 + iVar9 * 8 + 2)" (( "(") (binary_expression "(int)&DAT_00088fa0 + iVar9 * 8 + 2" (binary_expression "(int)&DAT_00088fa0 + iVar9 * 8" (cast_expression "(int)&DAT_00088fa0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&DAT_00088fa0" (& "&") (identifier "DAT_00088fa0"))) (+ "+") (binary_expression "iVar9 * 8" (identifier "iVar9") (* "*") (number_literal "8"))) (+ "+") (number_literal "2")) () ")")))) (& "&") (number_literal "0x1f")) () ")")) (== "==") (number_literal "0"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n    (&DAT_00088fa0)[iVar9 * 2] = 0;\n    *(undefined4 *)(&DAT_00088fa4 + iVar9 * 8) = 0;\n    pbVar16 = (byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2);\n    *pbVar16 = *pbVar16 | 0x80;\n    return true;\n  }" ({ "{") (expression_statement "(&DAT_00088fa0)[iVar9 * 2] = 0;" (assignment_expression "(&DAT_00088fa0)[iVar9 * 2] = 0" (subscript_expression "(&DAT_00088fa0)[iVar9 * 2]" (parenthesized_expression "(&DAT_00088fa0)" (( "(") (pointer_expression "&DAT_00088fa0" (& "&") (identifier "DAT_00088fa0")) () ")")) ([ "[") (binary_expression "iVar9 * 2" (identifier "iVar9") (* "*") (number_literal "2")) (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(&DAT_00088fa4 + iVar9 * 8) = 0;" (assignment_expression "*(undefined4 *)(&DAT_00088fa4 + iVar9 * 8) = 0" (pointer_expression "*(undefined4 *)(&DAT_00088fa4 + iVar9 * 8)" (* "*") (cast_expression "(undefined4 *)(&DAT_00088fa4 + iVar9 * 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00088fa4 + iVar9 * 8)" (( "(") (binary_expression "&DAT_00088fa4 + iVar9 * 8" (pointer_expression "&DAT_00088fa4" (& "&") (identifier "DAT_00088fa4")) (+ "+") (binary_expression "iVar9 * 8" (identifier "iVar9") (* "*") (number_literal "8"))) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar16 = (byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2);" (assignment_expression "pbVar16 = (byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2)" (identifier "pbVar16") (= "=") (cast_expression "(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&DAT_00088fa0 + iVar9 * 8 + 2)" (( "(") (binary_expression "(int)&DAT_00088fa0 + iVar9 * 8 + 2" (binary_expression "(int)&DAT_00088fa0 + iVar9 * 8" (cast_expression "(int)&DAT_00088fa0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&DAT_00088fa0" (& "&") (identifier "DAT_00088fa0"))) (+ "+") (binary_expression "iVar9 * 8" (identifier "iVar9") (* "*") (number_literal "8"))) (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "*pbVar16 = *pbVar16 | 0x80;" (assignment_expression "*pbVar16 = *pbVar16 | 0x80" (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")) (= "=") (binary_expression "*pbVar16 | 0x80" (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")) (| "|") (number_literal "0x80"))) (; ";")) (return_statement "return true;" (return "return") (true "true") (; ";")) (} "}")))) (labeled_statement "LAB_00046ea4:\n  iVar9 = FUN_00045de0();" (statement_identifier "LAB_00046ea4") (: ":") (expression_statement "iVar9 = FUN_00045de0();" (assignment_expression "iVar9 = FUN_00045de0()" (identifier "iVar9") (= "=") (call_expression "FUN_00045de0()" (identifier "FUN_00045de0") (argument_list "()" (( "(") () ")")))) (; ";"))) (if_statement "if (iVar9 == 0) {\n    return false;\n  }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return false;\n  }" ({ "{") (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}"))) (expression_statement "pbVar16 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);" (assignment_expression "pbVar16 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3)" (identifier "pbVar16") (= "=") (cast_expression "(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&DAT_00089010 + DAT_00080558 * 8 + 3)" (( "(") (binary_expression "(int)&DAT_00089010 + DAT_00080558 * 8 + 3" (binary_expression "(int)&DAT_00089010 + DAT_00080558 * 8" (cast_expression "(int)&DAT_00089010" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&DAT_00089010" (& "&") (identifier "DAT_00089010"))) (+ "+") (binary_expression "DAT_00080558 * 8" (identifier "DAT_00080558") (* "*") (number_literal "8"))) (+ "+") (number_literal "3")) () ")")))) (; ";")) (expression_statement "*pbVar16 = *pbVar16 | 0x10;" (assignment_expression "*pbVar16 = *pbVar16 | 0x10" (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")) (= "=") (binary_expression "*pbVar16 | 0x10" (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")) (| "|") (number_literal "0x10"))) (; ";")) (if_statement "if (DAT_00089008 == 0) {\n    DAT_00089088 = xstrdup(param_1);\n  }" (if "if") (parenthesized_expression "(DAT_00089008 == 0)" (( "(") (binary_expression "DAT_00089008 == 0" (identifier "DAT_00089008") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    DAT_00089088 = xstrdup(param_1);\n  }" ({ "{") (expression_statement "DAT_00089088 = xstrdup(param_1);" (assignment_expression "DAT_00089088 = xstrdup(param_1)" (identifier "DAT_00089088") (= "=") (call_expression "xstrdup(param_1)" (identifier "xstrdup") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (} "}"))) (expression_statement "DAT_00089008 = DAT_00089008 + 1;" (assignment_expression "DAT_00089008 = DAT_00089008 + 1" (identifier "DAT_00089008") (= "=") (binary_expression "DAT_00089008 + 1" (identifier "DAT_00089008") (+ "+") (number_literal "1"))) (; ";")) (return_statement "return true;" (return "return") (true "true") (; ";")) (} "}")))

/* 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(char *var_2)

{
  type_1 *puVar1;
  type_2 types_00;
  type_2 types_01;
  int var_23;
  type_1 uVar3;
  char var_1;
  type_3 var_6;
  char *op_string;
  type_4 *var_5;
  char *var_11;
  type_5 paVar8;
  size_t var_26;
  type_2 *var_29;
  type_2 *var_28;
  int var_18;
  char *var_22;
  char *var_15;
  type_6 *piVar15;
  char *var_13;
  type_7 extraout_ECX;
  type_2 *var_34;
  type_2 *var_30;
  bool var_38;
  type_8 var_32;
  type_9 *in_stack_ffffffb4;
  char **ppcVar20;
  type_1 var_39;
  type_3 *pbVar22;
  char *var_21;
  type_2 types;
  type_7 uStack_14;
  
  uStack_14 = 0x4691d;
  var_1 = *var_2;
  var_30 = (type_2 *)var_2;
  if (var_1 == ' ') {
    var_1 = var_2[1];
    var_30 = (type_2 *)(var_2 + 1);
  }
  if (var_1 == '*') {
    if (*(type_3 *)((int)var_30 + 1) == 0x20) {
      var_30 = (type_2 *)((int)var_30 + 2);
    }
    else {
      var_30 = (type_2 *)((int)var_30 + 1);
    }
    pbVar22 = (type_3 *)((int)i.types + var_3 * 8 + 3);
    *pbVar22 = *pbVar22 | 2;
  }
  ppcVar20 = &var_21;
  var_5 = (type_4 *)var_4((char *)var_30->array,ppcVar20);
  uVar3 = i.imm_operands;
  if (var_5 == (type_4 *)0x0) {
    var_6 = *(type_3 *)var_30;
    if (var_6 == 0x25) {
      var_22 = "bad register name `%s\'";
LAB_00046f4c:
      var_22 = (char *)var_7(0,var_22,5);
      var_8(var_22,var_30);
      return 0;
    }
    if (var_6 == 0x24) {
      if ((*(type_3 *)((int)i.types + var_3 * 8 + 3) & 2) != 0) {
        var_22 = (char *)var_7(0,"immediate operand illegal with absolute jump",5);
        var_8(var_22);
        return 0;
      }
      types.array[1] = 0xffffffff;
      types.array[0] = 0xffffffff;
      if (i.imm_operands != 2) {
        var_5 = var_9 + i.imm_operands;
        i.imm_operands = i.imm_operands + 1;
        i.op[var_3].disps = var_5;
        var_22 = input_line_pointer;
        var_29 = (type_2 *)((int)var_30 + 2);
        if (*(type_3 *)((int)var_30 + 1) != 0x20) {
          var_29 = (type_2 *)((int)var_30 + 1);
        }
        ppcVar20 = &input_line_pointer;
        input_line_pointer = (char *)var_29;
        var_11 = var_10(in_stack_ffffffb4,(int *)&input_line_pointer,var_29);
        if (var_11 != (char *)0x0) {
          input_line_pointer = var_11;
        }
        paVar8 = var_12(0,var_5,expr_normal);
        var_13 = *ppcVar20;
        var_1 = *var_13;
        var_15 = var_13;
        if (var_1 == ' ') {
          var_15 = var_13 + 1;
          *ppcVar20 = var_15;
          var_1 = var_13[1];
        }
        if (var_1 == '{') {
          var_15 = var_14(var_15,(char *)0x0);
          *ppcVar20 = var_15;
          if (var_15 == (char *)0x0) {
            return 0;
          }
          var_1 = *var_15;
        }
        if (var_1 != '\0') {
          var_13 = (char *)var_7(0,"junk `%s\' after expression",5);
          var_8(var_13,var_15);
        }
        *ppcVar20 = var_22;
        if (var_11 != (char *)0x0) {
          var_16(var_11);
          if ((var_9[uVar3].field_0x10 == '\x02') ||
             (var_9[uVar3].field_0x10 == '\x05')) {
            var_9[uVar3].field_0x10 = 0;
          }
        }
        types_00.array[1] = types.array[1];
        types_00.array[0] = types.array[0];
        var_18 = var_17(paVar8,var_5,types_00,(char *)var_29->array);
        return (type_1)(var_18 != 0);
      }
      var_22 = "at most %d immediate operands are allowed";
      goto LAB_00047443;
    }
    if (*var_2 == '{') {
      var_18 = var_19(var_2);
      if (var_18 != 0) {
        return 1;
      }
      var_6 = *(type_3 *)var_30;
    }
    var_18 = var_3;
    if (((digit_chars[var_6] == '\0') && (var_6 != 0x28 && var_6 != 0x22)) &&
       (identifier_chars[var_6] == '\0')) {
      var_22 = var_20((int)(char)var_6);
      var_11 = (char *)var_7(0,"invalid char %s beginning operand %d `%s\'",5);
      var_8(var_11,var_22,var_18 + 1,var_30);
      return 0;
    }
    goto LAB_00046c60;
  }
  var_1 = *var_21;
  var_22 = var_21;
  if (var_1 == ' ') {
    var_1 = var_21[1];
    var_22 = var_21 + 1;
  }
  if (var_1 != ':') {
    if (var_1 == '{') {
      var_22 = var_14(var_22,(char *)0x0);
      if (var_22 == (char *)0x0) {
        return 0;
      }
      var_1 = *var_22;
    }
    var_18 = var_3;
    if (var_1 == '\0') {
      var_32 = var_5->X_add_number;
      var_23 = var_3 * 8;
      i.types[var_3].array[0] =
           i.types[var_3].array[0] | (type_1)var_5->X_op_symbol & 0xffbfffff;
      puVar1 = (type_1 *)((int)i.types + var_23 + 4);
      *puVar1 = *puVar1 | (type_1)var_32;
      pbVar22 = (type_3 *)((int)i.types + var_18 * 8 + 4);
      *pbVar22 = *pbVar22 & 0xbf;
      i.reg_operands = i.reg_operands + 1;
      i.op[var_18].disps = var_5;
      return 1;
    }
LAB_00046ad0:
    var_11 = (char *)var_7(0,"junk `%s\' after register",5);
    var_8(var_11,var_22);
    return 0;
  }
  if (((type_1)var_5->X_op_symbol & 0x180) == 0) goto LAB_00046ad0;
  switch(*(type_10 *)((int)&var_5->X_add_number + 5)) {
  case 0:
    i.seg[i.mem_operands] = (type_11 *)PTR_es_0007fff8;
    break;
  case 1:
    i.seg[i.mem_operands] = (type_11 *)PTR_cs_0007ffc8;
    break;
  case 2:
    i.seg[i.mem_operands] = (type_11 *)PTR_ss_0007ffcc;
    break;
  case 3:
    i.seg[i.mem_operands] = (type_11 *)PTR_ds_0007ff80;
    break;
  case 4:
    i.seg[i.mem_operands] = (type_11 *)PTR_fs_0007ffac;
    break;
  case 5:
    i.seg[i.mem_operands] = (type_11 *)PTR_gs_0007ff68;
  }
  var_6 = var_22[1];
  var_30 = (type_2 *)(var_22 + 1);
  if (var_6 == 0x20) {
    var_6 = var_22[2];
    var_30 = (type_2 *)(var_22 + 2);
  }
  if ((digit_chars[var_6] == '\0') && (identifier_chars[var_6] == '\0')) {
    if (var_6 != 0x28) {
      if (var_6 != 0x2a) {
        var_22 = "bad memory operand `%s\'";
        goto LAB_00046f4c;
      }
LAB_00046c3c:
      if (*(type_3 *)((int)var_30 + 1) == 0x20) {
        var_30 = (type_2 *)((int)var_30 + 2);
      }
      else {
        var_30 = (type_2 *)((int)var_30 + 1);
      }
      pbVar22 = (type_3 *)((int)i.types + var_3 * 8 + 3);
      *pbVar22 = *pbVar22 | 2;
    }
  }
  else if (var_6 == 0x2a) goto LAB_00046c3c;
LAB_00046c60:
  if (i.mem_operands == 1) {
    var_18 = var_24();
    if (var_18 == 0) {
      return 0;
    }
    if (i.mem_operands != 1) goto LAB_00046c6f;
    piVar15 = current_templates->start;
    if (((piVar15->opcode_modifier).field_0x3 & 1) == 0) goto LAB_0004729e;
  }
  else {
LAB_00046c6f:
    if (i.mem_operands == 2) {
      piVar15 = current_templates->start;
LAB_0004729e:
      var_22 = piVar15->name;
      var_11 = (char *)var_7(0,"too many memory references for `%s\'",5);
      var_8(var_11,var_22);
      return 0;
    }
  }
  var_26 = var_25((char *)var_30->array);
  var_29 = (type_2 *)(var_26 + (int)var_30);
  var_28 = (type_2 *)var_27((char *)var_30->array,0x7b);
  if (((var_28 != (type_2 *)0x0) && (var_28 < var_29)) &&
     (var_22 = var_14((char *)var_28->array,(char *)var_29->array),
     var_29 = var_28, var_22 == (char *)0x0)) {
    return 0;
  }
  var_28 = (type_2 *)((int)var_29 + -1);
  if (*(type_3 *)((int)var_29 + -1) == 0x20) {
    var_28 = (type_2 *)((int)var_29 + -2);
    var_29 = (type_2 *)((int)var_29 + -1);
  }
  var_34 = var_29;
  if (*(type_3 *)var_28 == 0x29) {
    var_6 = *(type_3 *)((int)var_28 + -1);
    var_18 = 1;
    var_34 = (type_2 *)((int)var_28 + -1);
    if (var_6 == 0x29) goto LAB_000471f8;
LAB_000471e0:
    if (var_6 != 0x28) goto LAB_000471eb;
    var_18 = var_18 + -1;
    do {
      if (var_18 == 0) {
        var_6 = *(type_3 *)((int)var_34 + 1);
        if (var_6 == 0x20) {
          var_6 = *(type_3 *)((int)var_28 + 1);
          var_28 = (type_2 *)((int)var_34 + 2);
        }
        if (var_6 == 0x2c) {
          pbVar22 = (type_3 *)((int)i.types + var_3 * 8 + 2);
          *pbVar22 = *pbVar22 | 0x40;
          if (i.base_reg != (type_12 *)0x0) goto LAB_00047347;
          var_6 = *(type_3 *)var_28;
        }
        else {
          i.base_reg = var_4((char *)var_28->array,ppcVar20);
          if (i.base_reg == (type_12 *)0x0) {
            if (*(type_3 *)var_28 == 0x25) {
              var_21 = var_27((char *)var_28->array,0x2c);
              if (var_21 != (char *)0x0) {
                *var_21 = '\0';
              }
              var_22 = (char *)var_7(0,"bad register name `%s\'",5);
              var_8(var_22,var_28);
              return 0;
            }
            if (var_30 != var_29) goto LAB_00046cd4;
            goto LAB_00046ea4;
          }
          pbVar22 = (type_3 *)((int)i.types + var_3 * 8 + 2);
          *pbVar22 = *pbVar22 | 0x40;
LAB_00047347:
          var_6 = *var_21;
          var_28 = (type_2 *)var_21;
          if (var_6 == 0x20) {
            var_6 = var_21[1];
            var_28 = (type_2 *)(var_21 + 1);
          }
        }
        if (var_6 != 0x2c) {
          if (var_6 != 0x29) {
            var_22 = "expecting `,\' or `)\' after base register in `%s\'";
            goto LAB_00047255;
          }
          break;
        }
        pbVar22 = (type_3 *)((int)var_28 + 2);
        if (*(type_3 *)((int)var_28 + 1) != 0x20) {
          pbVar22 = (type_3 *)((int)var_28 + 1);
        }
        i.index_reg = var_4((char *)pbVar22,ppcVar20);
        var_22 = input_line_pointer;
        if (i.index_reg == (type_12 *)0x0) {
          if (*pbVar22 == 0x25) {
            var_21 = var_27((char *)pbVar22,0x2c);
            if (var_21 != (char *)0x0) {
              *var_21 = '\0';
            }
            var_22 = (char *)var_7(0,"bad register name `%s\'",5,extraout_ECX);
            var_8(var_22,pbVar22);
            return 0;
          }
          if (*pbVar22 == 0x29) {
            var_22 = (char *)var_7(0,
                                        "expecting index register or scale factor after `,\'; got \'%c\'"
                                        ,5,var_2);
            var_8(var_22,0x29);
            return 0;
          }
        }
        else {
          var_1 = *var_21;
          if (var_1 == ' ') {
            var_1 = var_21[1];
            var_21 = var_21 + 1;
          }
          if (var_1 != ',') {
            if (var_1 != ')') {
              var_22 = "expecting `,\' or `)\' after index register in `%s\'";
              goto LAB_00047255;
            }
            break;
          }
          var_1 = var_21[1];
          pbVar22 = (type_3 *)(var_21 + 1);
          if (var_1 == ' ') {
            pbVar22 = (type_3 *)(var_21 + 2);
            var_1 = var_21[2];
          }
          if (var_1 == ')') break;
        }
        ppcVar20 = &input_line_pointer;
        input_line_pointer = (char *)pbVar22;
        var_32 = var_31();
        if (var_32 == 2) {
          i.log2_scale_factor = 1;
          var_6 = 1;
LAB_0004751e:
          if (i.index_reg == (type_12 *)0x0) {
            var_11 = (char *)var_7(0,"scale factor of %d without an index register",5,var_6);
            var_33(var_11,1 << (var_6 & 0x1f));
            i.log2_scale_factor = 0;
          }
        }
        else {
          if (-(int)((type_13)var_32 >> 0x20) < (int)(type_1)(2 < (type_1)var_32)) {
            if (var_32 == 4) {
              i.log2_scale_factor = 2;
              var_6 = 2;
            }
            else {
              if (var_32 != 8) goto LAB_0004760c;
              i.log2_scale_factor = 3;
              var_6 = 3;
            }
            goto LAB_0004751e;
          }
          if (var_32 != 1) {
LAB_0004760c:
            var_1 = **ppcVar20;
            **ppcVar20 = '\0';
            var_11 = (char *)var_7(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);
            var_8(var_11,pbVar22);
            **ppcVar20 = var_1;
            *ppcVar20 = var_22;
            return 0;
          }
          i.log2_scale_factor = 0;
        }
        var_11 = *ppcVar20;
        *ppcVar20 = var_22;
        if (var_11 == (char *)0x0) {
          return 0;
        }
        var_1 = *var_11;
        if (var_1 == ' ') {
          var_1 = var_11[1];
        }
        if (var_1 != ')') {
          var_22 = "expecting `)\' after scale factor in `%s\'";
LAB_00047255:
          var_22 = (char *)var_7(0,var_22,5);
          var_8(var_22,var_2);
          return 0;
        }
        break;
      }
LAB_000471eb:
      var_28 = var_34;
      var_6 = *(type_3 *)((int)var_28 + -1);
      var_34 = (type_2 *)((int)var_28 + -1);
      if (var_6 != 0x29) goto LAB_000471e0;
LAB_000471f8:
      var_18 = var_18 + 1;
    } while( true );
  }
  var_29 = var_34;
  if (var_30 == var_34) goto LAB_00046e80;
LAB_00046cd4:
  uVar3 = i.disp_operands;
  var_18 = var_3;
  types.array[1] = 0;
  types.array[0] = 0x1f0000;
  if (i.disp_operands == 2) {
    var_22 = "at most %d displacement operands are allowed";
LAB_00047443:
    var_22 = (char *)var_7(0,var_22,5);
    var_8(var_22,2);
    return 0;
  }
  if (((*(type_3 *)((int)i.types + var_3 * 8 + 3) & 2) == 0) &&
     ((type_10  [12])
      ((type_10  [12])current_templates->start->opcode_modifier & (type_10  [12])0x60) !=
      (type_10  [12])0x0)) {
    if (var_35 == var_36) {
      if ((i.prefix[3] != '\0') || (var_39 = 0xc0000, i.suffix == 'w')) goto LAB_00046d4f;
    }
    else {
      var_38 = true;
      if (i.prefix[3] == '\0') {
        var_1 = 'l';
        if (var_35 != var_37) {
          var_1 = 'w';
        }
        var_38 = i.suffix == var_1;
      }
      var_39 = 0x40000;
      if ((var_35 == var_37) != var_38) {
LAB_00046d4f:
        var_39 = 0x20000;
      }
    }
  }
  else if (var_35 == var_36) {
    var_39 = 0x1c0000;
    if (i.prefix[2] != '\0') {
      var_39 = 0x40000;
    }
  }
  else {
    var_39 = 0x40000;
    if ((i.prefix[2] != '\0') != (var_35 == var_37)) goto LAB_00046d4f;
  }
  i.types[var_3].array[0] = i.types[var_3].array[0] | var_39;
  paVar8 = (type_5)(var_40 + i.disp_operands);
  i.op[var_18].disps = (type_4 *)paVar8;
  var_22 = input_line_pointer;
  i.disp_operands = i.disp_operands + 1;
  ppcVar20 = &input_line_pointer;
  var_11 = var_41 + 1;
  input_line_pointer = (char *)var_30;
  *var_41 = *(char *)var_29;
  var_41 = var_11;
  *(type_10 *)var_29 = 0;
  var_11 = var_10(in_stack_ffffffb4,(int *)&input_line_pointer,var_29);
  if (var_11 != (char *)0x0) {
    *ppcVar20 = var_11;
  }
  var_12(0,(type_4 *)paVar8,expr_normal);
  var_13 = *ppcVar20;
  var_1 = *var_13;
  var_15 = var_13;
  if (var_1 == ' ') {
    var_15 = var_13 + 1;
    *ppcVar20 = var_15;
    var_1 = var_13[1];
  }
  if (var_1 != '\0') {
    var_13 = (char *)var_7(0,"junk `%s\' after expression",5);
    var_8(var_13,var_15);
  }
  *ppcVar20 = var_22;
  if (var_11 != (char *)0x0) {
    var_16(var_11);
    if ((var_40[uVar3].field_0x10 == '\x02') ||
       (var_40[uVar3].field_0x10 == '\x05')) {
      var_40[uVar3].field_0x10 = 0;
    }
  }
  types_01.array[1] = (type_1)ppcVar20;
  types_01.array[0] = (type_1)in_stack_ffffffb4;
  var_18 = var_42
                     (paVar8,(type_4 *)types.array[0],types_01,(char *)var_30->array);
  var_22 = var_41 + -1;
  var_41 = var_41 + -1;
  *(char *)var_29 = *var_22;
  if (var_18 == 0) {
    return 0;
  }
LAB_00046e80:
  var_18 = var_3;
  if (((((i.base_reg != (type_12 *)0x0) &&
        (((i.base_reg)->reg_type).array[1] == reg16_inoutportreg.array[1])) &&
       (((i.base_reg)->reg_type).array[0] == reg16_inoutportreg.array[0])) &&
      ((i.index_reg == (type_12 *)0x0 && (i.log2_scale_factor == 0)))) &&
     ((i.seg[i.mem_operands] == (type_11 *)0x0 &&
      ((*(type_3 *)((int)i.types + var_3 * 8 + 2) & 0x1f) == 0)))) {
    i.types[var_3].array[0] = 0;
    *(type_7 *)((int)i.types + var_18 * 8 + 4) = 0;
    pbVar22 = (type_3 *)((int)i.types + var_18 * 8 + 2);
    *pbVar22 = *pbVar22 | 0x80;
    return 1;
  }
LAB_00046ea4:
  var_18 = var_43(var_2);
  if (var_18 == 0) {
    return 0;
  }
  pbVar22 = (type_3 *)((int)i.types + var_3 * 8 + 3);
  *pbVar22 = *pbVar22 | 0x10;
  if (i.mem_operands == 0) {
    i.memop1_string = (char *)var_44(var_2);
  }
  i.mem_operands = i.mem_operands + 1;
  return 1;
}


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

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

bool __regparm3 MASKED(byte *param_1)

{
  int iVar1;
  byte *pbVar2;
  uint uVar3;
  byte bVar4;
  char cVar5;
  int iVar6;
  undefined4 uVar7;
  size_t sVar8;
  int iVar9;
  byte *pbVar10;
  undefined4 *puVar11;
  undefined4 uVar12;
  char *pcVar13;
  sbyte sVar14;
  undefined4 extraout_ECX;
  byte *pbVar15;
  byte *pbVar16;
  bool bVar17;
  longlong lVar18;
  uint local_48;
  byte *local_44;
  byte *local_28;
  
  bVar4 = *param_1;
  pbVar16 = param_1;
  if (bVar4 == 0x20) {
    bVar4 = param_1[1];
    pbVar16 = param_1 + 1;
  }
  if (bVar4 == 0x2a) {
    if (pbVar16[1] == 0x20) {
      pbVar16 = pbVar16 + 2;
    }
    else {
      pbVar16 = pbVar16 + 1;
    }
    pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);
    *pbVar10 = *pbVar10 | 2;
  }
  iVar6 = FUN_00044f30();
  iVar9 = DAT_0008900c;
  if (iVar6 == 0) {
    bVar4 = *pbVar16;
    if (bVar4 == 0x25) {
      pcVar13 = "bad register name `%s\'";
LAB_00046f4c:
      uVar7 = dcgettext(0,pcVar13,5);
      FUN_0002bd60(uVar7,pbVar16);
      return false;
    }
    if (bVar4 == 0x24) {
      if ((*(byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3) & 2) != 0) {
        uVar7 = dcgettext(0,"immediate operand illegal with absolute jump",5);
        FUN_0002bd60(uVar7);
        return false;
      }
      if (DAT_0008900c != 2) {
        iVar6 = DAT_0008900c * 5;
        DAT_0008900c = DAT_0008900c + 1;
        (&DAT_00089038)[DAT_00080558] = &DAT_00088f20 + iVar6;
        uVar7 = DAT_00089978;
        local_44 = pbVar16 + 2;
        if (pbVar16[1] != 0x20) {
          local_44 = pbVar16 + 1;
        }
        DAT_00089978 = local_44;
        pbVar16 = (byte *)FUN_000453b0();
        if (pbVar16 != (byte *)0x0) {
          DAT_00089978 = pbVar16;
        }
        FUN_000221d0(0,&DAT_00088f20 + iVar6,1);
        bVar4 = *DAT_00089978;
        if (bVar4 == 0x20) {
          bVar4 = DAT_00089978[1];
          DAT_00089978 = DAT_00089978 + 1;
        }
        if (bVar4 == 0x7b) {
          DAT_00089978 = (byte *)FUN_00045070();
          if (DAT_00089978 == (byte *)0x0) {
            return false;
          }
          bVar4 = *DAT_00089978;
        }
        pbVar10 = DAT_00089978;
        if (bVar4 != 0) {
          uVar12 = dcgettext(0,"junk `%s\' after expression",5);
          FUN_0002bd60(uVar12,pbVar10);
        }
        DAT_00089978 = (byte *)uVar7;
        if (pbVar16 != (byte *)0x0) {
          free(pbVar16);
          if (((&DAT_00088f30)[iVar9 * 0x14] == '\x02') || ((&DAT_00088f30)[iVar9 * 0x14] == '\x05')
             ) {
            (&DAT_00088f30)[iVar9 * 0x14] = 0;
          }
        }
        iVar9 = FUN_00041f60(0xffffffff,0xffffffff,local_44);
        return iVar9 != 0;
      }
      pcVar13 = "at most %d immediate operands are allowed";
      goto LAB_00047443;
    }
    if (*param_1 == 0x7b) {
      iVar9 = FUN_000464f0();
      if (iVar9 != 0) {
        return true;
      }
      bVar4 = *pbVar16;
    }
    iVar9 = DAT_00080558;
    if ((((&DAT_00089120)[bVar4] == '\0') && (bVar4 != 0x28 && bVar4 != 0x22)) &&
       ((&DAT_00089220)[bVar4] == '\0')) {
      uVar7 = FUN_00046660();
      uVar12 = dcgettext(0,"invalid char %s beginning operand %d `%s\'",5);
      FUN_0002bd60(uVar12,uVar7,iVar9 + 1,pbVar16);
      return false;
    }
    goto LAB_00046c60;
  }
  bVar4 = *local_28;
  pbVar10 = local_28;
  if (bVar4 == 0x20) {
    bVar4 = local_28[1];
    pbVar10 = local_28 + 1;
  }
  if (bVar4 != 0x3a) {
    if (bVar4 == 0x7b) {
      pbVar10 = (byte *)FUN_00045070();
      if (pbVar10 == (byte *)0x0) {
        return false;
      }
      bVar4 = *pbVar10;
    }
    iVar9 = DAT_00080558;
    if (bVar4 == 0) {
      uVar3 = *(uint *)(iVar6 + 8);
      iVar1 = DAT_00080558 + 0xe;
      (&DAT_00088fa0)[iVar1 * 2] = (&DAT_00088fa0)[iVar1 * 2] | *(uint *)(iVar6 + 4) & 0xffbfffff;
      *(uint *)(&DAT_00088fa4 + iVar1 * 8) = *(uint *)(&DAT_00088fa4 + iVar1 * 8) | uVar3;
      (&DAT_00088fa4)[iVar1 * 8] = (&DAT_00088fa4)[iVar1 * 8] & 0xbf;
      DAT_00089000 = DAT_00089000 + 1;
      (&DAT_00089038)[iVar9] = iVar6;
      return true;
    }
LAB_00046ad0:
    uVar7 = dcgettext(0,"junk `%s\' after register",5);
    FUN_0002bd60(uVar7,pbVar10);
    return false;
  }
  if ((*(ushort *)(iVar6 + 4) & 0x180) == 0) goto LAB_00046ad0;
  switch(*(undefined1 *)(iVar6 + 0xd)) {
  case 0:
    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_es_0007fff8;
    break;
  case 1:
    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_cs_0007ffc8;
    break;
  case 2:
    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ss_0007ffcc;
    break;
  case 3:
    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_ds_0007ff80;
    break;
  case 4:
    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_fs_0007ffac;
    break;
  case 5:
    *(undefined **)(&DAT_00089080 + DAT_00089008 * 4) = PTR_gs_0007ff68;
  }
  bVar4 = pbVar10[1];
  pbVar16 = pbVar10 + 1;
  if (bVar4 == 0x20) {
    bVar4 = pbVar10[2];
    pbVar16 = pbVar10 + 2;
  }
  if (((&DAT_00089120)[bVar4] == '\0') && ((&DAT_00089220)[bVar4] == '\0')) {
    if (bVar4 != 0x28) {
      if (bVar4 != 0x2a) {
        pcVar13 = "bad memory operand `%s\'";
        goto LAB_00046f4c;
      }
LAB_00046c3c:
      if (pbVar16[1] == 0x20) {
        pbVar16 = pbVar16 + 2;
      }
      else {
        pbVar16 = pbVar16 + 1;
      }
      pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);
      *pbVar10 = *pbVar10 | 2;
    }
  }
  else if (bVar4 == 0x2a) goto LAB_00046c3c;
LAB_00046c60:
  if (DAT_00089008 == 1) {
    iVar9 = FUN_00046270();
    if (iVar9 == 0) {
      return false;
    }
    if (DAT_00089008 != 1) goto LAB_00046c6f;
    puVar11 = (undefined4 *)*DAT_00088f88;
    if ((*(byte *)((int)puVar11 + 0x27) & 1) == 0) goto LAB_0004729e;
  }
  else {
LAB_00046c6f:
    if (DAT_00089008 == 2) {
      puVar11 = (undefined4 *)*DAT_00088f88;
LAB_0004729e:
      uVar7 = *puVar11;
      uVar12 = dcgettext(0,"too many memory references for `%s\'",5);
      FUN_0002bd60(uVar12,uVar7);
      return false;
    }
  }
  sVar8 = strlen((char *)pbVar16);
  local_44 = pbVar16 + sVar8;
  pbVar10 = (byte *)strchr((char *)pbVar16,0x7b);
  if (((pbVar10 != (byte *)0x0) && (pbVar10 < local_44)) &&
     (iVar9 = FUN_00045070(), local_44 = pbVar10, iVar9 == 0)) {
    return false;
  }
  pbVar10 = local_44 + -1;
  if (local_44[-1] == 0x20) {
    pbVar10 = local_44 + -2;
    local_44 = local_44 + -1;
  }
  pbVar15 = local_44;
  if (*pbVar10 == 0x29) {
    bVar4 = pbVar10[-1];
    iVar9 = 1;
    pbVar15 = pbVar10 + -1;
    if (bVar4 == 0x29) goto LAB_000471f8;
LAB_000471e0:
    if (bVar4 != 0x28) goto LAB_000471eb;
    iVar9 = iVar9 + -1;
    do {
      if (iVar9 == 0) {
        bVar4 = pbVar15[1];
        if (bVar4 == 0x20) {
          bVar4 = pbVar10[1];
          pbVar10 = pbVar15 + 2;
        }
        if (bVar4 == 0x2c) {
          pbVar2 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);
          *pbVar2 = *pbVar2 | 0x40;
          if (DAT_00089074 != 0) goto LAB_00047347;
          bVar4 = *pbVar10;
        }
        else {
          DAT_00089074 = FUN_00044f30();
          if (DAT_00089074 == 0) {
            if (*pbVar10 == 0x25) {
              pcVar13 = strchr((char *)pbVar10,0x2c);
              if (pcVar13 != (char *)0x0) {
                *pcVar13 = '\0';
              }
              uVar7 = dcgettext(0,"bad register name `%s\'",5);
              FUN_0002bd60(uVar7,pbVar10);
              return false;
            }
            if (pbVar16 != local_44) goto LAB_00046cd4;
            goto LAB_00046ea4;
          }
          pbVar10 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 2);
          *pbVar10 = *pbVar10 | 0x40;
LAB_00047347:
          bVar4 = *local_28;
          pbVar10 = local_28;
          if (bVar4 == 0x20) {
            bVar4 = local_28[1];
            pbVar10 = local_28 + 1;
          }
        }
        if (bVar4 != 0x2c) {
          if (bVar4 != 0x29) {
            pcVar13 = "expecting `,\' or `)\' after base register in `%s\'";
            goto LAB_00047255;
          }
          break;
        }
        local_44 = pbVar10 + 2;
        if (pbVar10[1] != 0x20) {
          local_44 = pbVar10 + 1;
        }
        DAT_00089078 = FUN_00044f30();
        uVar7 = DAT_00089978;
        if (DAT_00089078 == 0) {
          if (*local_44 == 0x25) {
            pcVar13 = strchr((char *)local_44,0x2c);
            if (pcVar13 != (char *)0x0) {
              *pcVar13 = '\0';
            }
            uVar7 = dcgettext(0,"bad register name `%s\'",5,extraout_ECX);
            FUN_0002bd60(uVar7,local_44);
            return false;
          }
          if (*local_44 == 0x29) {
            uVar7 = dcgettext(0,"expecting index register or scale factor after `,\'; got \'%c\'",5,
                              param_1);
            FUN_0002bd60(uVar7,0x29);
            return false;
          }
        }
        else {
          bVar4 = *local_28;
          if (bVar4 == 0x20) {
            bVar4 = local_28[1];
            local_28 = local_28 + 1;
          }
          if (bVar4 != 0x2c) {
            DAT_00089978 = (byte *)uVar7;
            if (bVar4 != 0x29) {
              pcVar13 = "expecting `,\' or `)\' after index register in `%s\'";
              goto LAB_00047255;
            }
            break;
          }
          bVar4 = local_28[1];
          local_44 = local_28 + 1;
          if (bVar4 == 0x20) {
            local_44 = local_28 + 2;
            bVar4 = local_28[2];
          }
          DAT_00089978 = (byte *)uVar7;
          if (bVar4 == 0x29) break;
        }
        DAT_00089978 = local_44;
        lVar18 = FUN_0002d860();
        if (lVar18 == 2) {
          DAT_0008907c = 1;
          sVar14 = 1;
LAB_0004751e:
          if (DAT_00089078 == 0) {
            uVar12 = dcgettext(0,"scale factor of %d without an index register",5,sVar14);
            FUN_0002bc80(uVar12,1 << sVar14);
            DAT_0008907c = 0;
          }
        }
        else {
          if (-(int)((ulonglong)lVar18 >> 0x20) < (int)(uint)(2 < (uint)lVar18)) {
            if (lVar18 == 4) {
              DAT_0008907c = 2;
              sVar14 = 2;
            }
            else {
              if (lVar18 != 8) goto LAB_0004760c;
              DAT_0008907c = 3;
              sVar14 = 3;
            }
            goto LAB_0004751e;
          }
          if (lVar18 != 1) {
LAB_0004760c:
            bVar4 = *DAT_00089978;
            *DAT_00089978 = 0;
            uVar12 = dcgettext(0,"expecting scale factor of 1, 2, 4, or 8: got `%s\'",5);
            FUN_0002bd60(uVar12,local_44);
            *DAT_00089978 = bVar4;
            DAT_00089978 = (byte *)uVar7;
            return false;
          }
          DAT_0008907c = 0;
        }
        if (DAT_00089978 == (byte *)0x0) {
          DAT_00089978 = (byte *)uVar7;
          return false;
        }
        bVar4 = *DAT_00089978;
        if (bVar4 == 0x20) {
          bVar4 = DAT_00089978[1];
        }
        DAT_00089978 = (byte *)uVar7;
        if (bVar4 != 0x29) {
          pcVar13 = "expecting `)\' after scale factor in `%s\'";
LAB_00047255:
          uVar7 = dcgettext(0,pcVar13,5);
          FUN_0002bd60(uVar7,param_1);
          return false;
        }
        break;
      }
LAB_000471eb:
      pbVar10 = pbVar15;
      bVar4 = pbVar10[-1];
      pbVar15 = pbVar10 + -1;
      if (bVar4 != 0x29) goto LAB_000471e0;
LAB_000471f8:
      iVar9 = iVar9 + 1;
    } while( true );
  }
  local_44 = pbVar15;
  if (pbVar16 == local_44) goto LAB_00046e80;
LAB_00046cd4:
  iVar6 = DAT_00089004;
  iVar9 = DAT_00080558;
  if (DAT_00089004 == 2) {
    pcVar13 = "at most %d displacement operands are allowed";
LAB_00047443:
    uVar7 = dcgettext(0,pcVar13,5);
    FUN_0002bd60(uVar7,2);
    return false;
  }
  if (((*(byte *)((int)&DAT_00088fa0 + (DAT_00080558 + 0xe) * 8 + 3) & 2) == 0) &&
     ((*(byte *)(*DAT_00088f88 + 0x24) & 0x60) != 0)) {
    if (DAT_00088f0c == 2) {
      if ((DAT_00089093 != '\0') || (local_48 = 0xc0000, DAT_00088ff8 == 'w')) goto LAB_00046d4f;
    }
    else {
      bVar17 = true;
      if (DAT_00089093 == '\0') {
        cVar5 = 'l';
        if (DAT_00088f0c != 1) {
          cVar5 = 'w';
        }
        bVar17 = DAT_00088ff8 == cVar5;
      }
      local_48 = 0x40000;
      if ((DAT_00088f0c == 1) != bVar17) {
LAB_00046d4f:
        local_48 = 0x20000;
      }
    }
  }
  else {
    local_48 = 0x40000;
    if (DAT_00088f0c == 2) {
      local_48 = 0x1c0000;
      if (DAT_00089092 != '\0') {
        local_48 = 0x40000;
      }
    }
    else if ((DAT_00089092 != '\0') != (DAT_00088f0c == 1)) goto LAB_00046d4f;
  }
  (&DAT_00088fa0)[(DAT_00080558 + 0xe) * 2] = (&DAT_00088fa0)[(DAT_00080558 + 0xe) * 2] | local_48;
  iVar1 = DAT_00089004 * 0x14;
  (&DAT_00089038)[iVar9] = &DAT_00088f60 + iVar1;
  uVar7 = DAT_00089978;
  DAT_00089004 = DAT_00089004 + 1;
  pbVar10 = DAT_000890fc + 1;
  DAT_00089978 = pbVar16;
  *DAT_000890fc = *local_44;
  DAT_000890fc = pbVar10;
  *local_44 = 0;
  pbVar16 = (byte *)FUN_000453b0();
  if (pbVar16 != (byte *)0x0) {
    DAT_00089978 = pbVar16;
  }
  FUN_000221d0(0,&DAT_00088f60 + iVar1,1);
  bVar4 = *DAT_00089978;
  if (bVar4 == 0x20) {
    bVar4 = DAT_00089978[1];
    DAT_00089978 = DAT_00089978 + 1;
  }
  pbVar10 = DAT_00089978;
  if (bVar4 != 0) {
    uVar12 = dcgettext(0,"junk `%s\' after expression",5);
    FUN_0002bd60(uVar12,pbVar10);
  }
  DAT_00089978 = (byte *)uVar7;
  if (pbVar16 != (byte *)0x0) {
    free(pbVar16);
    if (((&DAT_00088f70)[iVar6 * 0x14] == '\x02') || ((&DAT_00088f70)[iVar6 * 0x14] == '\x05')) {
      (&DAT_00088f70)[iVar6 * 0x14] = 0;
    }
  }
  iVar9 = FUN_000466b0();
  pbVar16 = DAT_000890fc + -1;
  DAT_000890fc = DAT_000890fc + -1;
  *local_44 = *pbVar16;
  if (iVar9 == 0) {
    return false;
  }
LAB_00046e80:
  if (((((DAT_00089074 != 0) && (*(int *)(DAT_00089074 + 8) == DAT_000654e4)) &&
       (*(int *)(DAT_00089074 + 4) == DAT_000654e0)) && ((DAT_00089078 == 0 && (DAT_0008907c == 0)))
      ) && ((*(int *)(&DAT_00089080 + DAT_00089008 * 4) == 0 &&
            (iVar9 = DAT_00080558 + 0xe, (*(byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2) & 0x1f) == 0
            )))) {
    (&DAT_00088fa0)[iVar9 * 2] = 0;
    *(undefined4 *)(&DAT_00088fa4 + iVar9 * 8) = 0;
    pbVar16 = (byte *)((int)&DAT_00088fa0 + iVar9 * 8 + 2);
    *pbVar16 = *pbVar16 | 0x80;
    return true;
  }
LAB_00046ea4:
  iVar9 = FUN_00045de0();
  if (iVar9 == 0) {
    return false;
  }
  pbVar16 = (byte *)((int)&DAT_00089010 + DAT_00080558 * 8 + 3);
  *pbVar16 = *pbVar16 | 0x10;
  if (DAT_00089008 == 0) {
    DAT_00089088 = xstrdup(param_1);
  }
  DAT_00089008 = DAT_00089008 + 1;
  return true;
}

