
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* WARNING: Struct "Output_section_headers": ignoring overlapping field "layout_" */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Struct "Output_reduced_debug_abbrev_section": ignoring overlapping field "data_" */
/* WARNING: Struct "Output_reduced_debug_info_section": ignoring overlapping field "data_" */
/* DWARF original prototype: void parse_dynamic_list(General_options * this, char * param_1, char *
   arg, Command_line * cmdline) */

void __thiscall
gold::General_options::parse_dynamic_list
          (General_options *this,char *param_1,char *arg,Command_line *cmdline)

{
  int iVar1;
  undefined4 uVar2;
  undefined4 uVar3;
  Input_arguments *pIVar4;
  pointer pIVar5;
  One_option *this_00;
  undefined4 *puVar6;
  undefined4 *puVar7;
  int iVar8;
  undefined *puVar9;
  code *pcVar10;
  code *pcVar11;
  undefined4 *puStack_168;
  undefined4 *puStack_164;
  undefined4 uStack_160;
  int iStack_154;
  char *pcStack_150;
  
  iVar1 = (*(code *)PTR_read_dynamic_list_004c2568)(arg,cmdline,&this->dynamic_list_);
  if (iVar1 != 0) {
    this->have_dynamic_list_ = true;
    return;
  }
  uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s__s_004c1a50 + 0x6370);
  puVar9 = PTR_gold_fatal_004c2020;
  (*(code *)PTR_gold_fatal_004c2020)();
  uVar3 = (**(code **)(puVar9 + 0x2c8d98))(*(int *)(puVar9 + 0x2c4bb8) + 0x639c);
  pcVar10 = *(code **)(puVar9 + 0x2c5188);
  (*pcVar10)(uVar3,uVar2,arg);
  uVar2 = (**(code **)(pcVar10 + 0x2c8d48))(*(int *)(pcVar10 + 0x2c4b68) + 0x63d0);
  pcVar10 = *(code **)(pcVar10 + 0x2c5138);
  (*pcVar10)(uVar2,uVar3);
  pIVar4 = (Input_arguments *)
           (**(code **)(pcVar10 + 0x2c8d04))(*(int *)(pcVar10 + 0x2c4b24) + 0x63f4);
  pcVar10 = *(code **)(pcVar10 + 0x2c50f4);
  (*pcVar10)();
  if ((cmdline->inputs_).in_group_ != false) {
    (cmdline->inputs_).in_group_ = false;
    return;
  }
  iVar1 = *(int *)(pcVar10 + 0x2c55f8) + -0x30d4;
  Input_arguments::end_group(pIVar4);
  pIVar4 = (Input_arguments *)
           (**(code **)(iVar1 + 0x2c8c90))(*(int *)(FUN_002c4ab0 + iVar1) + 0x6414);
  pcVar10 = *(code **)(iVar1 + 0x2c5080);
  (*pcVar10)();
  if ((cmdline->inputs_).in_lib_ != false) {
    (cmdline->inputs_).in_lib_ = false;
    return;
  }
  iVar1 = *(int *)(pcVar10 + 0x2c5584) + -0x3060;
  Input_arguments::end_lib(pIVar4);
  if (pIVar4 < (Input_arguments *)0x40000000) {
    uVar2 = (**(code **)(iVar1 + 0x2c4394))((int)pIVar4 << 2);
    (**(code **)(iVar1 + 0x2c8c54))(uVar2,0,(int)pIVar4 << 2);
    return;
  }
  pcVar10 = *(code **)(iVar1 + 0x2c4aac);
  (*pcVar10)();
  (**(code **)(pcVar10 + 0x2c8af0))(*(int *)(pcVar10 + 0x2c489c) + 0xe80);
  if (*(char *)&pIVar4[1].input_argument_list_.
                super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.
                _M_impl._M_end_of_storage == '\0') {
    iVar8 = *(int *)(pcVar10 + 0x2c489c);
    if ((pIVar4->input_argument_list_).
        super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.
        _M_finish == (pointer)0x0) {
      iVar1 = 2;
      goto LAB_001fd0dc;
    }
    pIVar5 = (pIVar4->input_argument_list_).
             super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl
             ._M_start;
    if (pIVar5->is_file_ == false) {
      iVar1 = 2;
      if (pIVar5->field_0x1 == '\0') {
        iVar8 = *(int *)(pcVar10 + 0x2c489c);
        goto LAB_001fd0dc;
      }
    }
    else {
      iVar1 = 2;
    }
LAB_001fd168:
    pIVar5 = pIVar4[1].input_argument_list_.
             super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl
             ._M_finish;
    if (pIVar5 < (pointer)&DAT_00000005) {
                    /* WARNING: Could not recover jumptable at 0x001fd18c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      (*(pcVar10 + *(int *)(*(int *)(pcVar10 + 0x2c489c) + -0x51b0 + (int)pIVar5 * 4) + 0x2cc1c0))()
      ;
      return;
    }
    uVar2 = 0x81;
LAB_001fd378:
    pcVar11 = *(code **)(pcVar10 + 0x2c49b0);
    (*pcVar11)(*(int *)(pcVar10 + 0x2c49d0) + 0x6434,uVar2,*(int *)(pcVar10 + 0x2c489c) + -0x5148);
    puVar7 = *(undefined4 **)(pcVar11 + 0x2c45fc);
    iStack_154 = iVar1;
    pcStack_150 = arg;
    uVar2 = (**(code **)(pcVar11 + 0x2c88a0))(*(int *)(pcVar11 + 0x2c46c0) + 0x6468);
    (**(code **)(pcVar11 + 0x2c87e0))(uVar2,*puVar7);
    iVar1 = *(int *)(pcVar11 + 0x2c51dc);
    puVar6 = *(undefined4 **)(iVar1 + -0x42ec);
    if (puVar6 != *(undefined4 **)(iVar1 + -0x42e8)) {
      do {
        this_00 = (One_option *)*puVar6;
        puVar6 = puVar6 + 1;
        gold::options::One_option::print(this_00);
      } while (*(undefined4 **)(iVar1 + -0x42e8) != puVar6);
    }
    uVar2 = (**(code **)(pcVar11 + 0x2c88a0))(*(int *)(pcVar11 + 0x2c46c0) + 0x6490);
    (**(code **)(pcVar11 + 0x2c87e0))(uVar2,*puVar7);
    puStack_168 = (undefined4 *)0x0;
    puStack_164 = (undefined4 *)0x0;
    uStack_160 = 0;
    (**(code **)(pcVar11 + 0x2c51c0))(&puStack_168);
    if (puStack_168 != puStack_164) {
      iVar1 = *(int *)(pcVar11 + 0x2c46c0);
      puVar6 = puStack_168;
      do {
        (**(code **)(pcVar11 + 0x2c87e0))(iVar1 + 0x653c,*puVar6);
        puVar6 = puVar6 + 1;
      } while (puStack_164 != puVar6);
    }
    (**(code **)(pcVar11 + 0x2c8900))(10);
    uVar2 = (**(code **)(pcVar11 + 0x2c88a0))(*(int *)(pcVar11 + 0x2c46c0) + 0x64a8);
    (**(code **)(pcVar11 + 0x2c87e0))(uVar2,*puVar7);
    if (puStack_168 != puStack_164) {
      puStack_164 = puStack_168;
    }
    (**(code **)(pcVar11 + 0x2c51c4))(&puStack_168);
    if (puStack_168 != puStack_164) {
      iVar1 = *(int *)(pcVar11 + 0x2c46c0);
      puVar6 = puStack_168;
      do {
        (**(code **)(pcVar11 + 0x2c87e0))(iVar1 + 0x653c,*puVar6);
        puVar6 = puVar6 + 1;
      } while (puStack_164 != puVar6);
    }
    (**(code **)(pcVar11 + 0x2c8900))(10);
    uVar2 = (**(code **)(pcVar11 + 0x2c88a0))(*(int *)(pcVar11 + 0x2c46c0) + 0x64c4);
    (**(code **)(pcVar11 + 0x2c87e0))(uVar2,*(int *)(pcVar11 + 0x2c46c0) + 0x64d8);
    if (puStack_168 != (undefined4 *)0x0) {
      (**(code **)(pcVar11 + 0x2c3f6c))();
    }
    return;
  }
  iVar1 = (**(code **)(pcVar10 + 0x2c8af0))(*(int *)(pcVar10 + 0x2c49d0) + 0x6430);
  pIVar5 = pIVar4[2].input_argument_list_.
           super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.
           _M_start;
  iVar1 = iVar1 + 2;
  if (pIVar5 != (pointer)0x0) {
    uVar2 = 0x6a;
    if (pIVar4[1].input_argument_list_.
        super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.
        _M_finish == (pointer)&DAT_00000004) goto LAB_001fd378;
    uVar2 = (**(code **)(pcVar10 + 0x2c8bb0))(pIVar5,0x6a);
    iVar8 = (**(code **)(pcVar10 + 0x2c8af0))(*(int *)(pcVar10 + 0x2c49d0) + 0x653c,uVar2);
    iVar1 = iVar1 + iVar8;
  }
  iVar8 = *(int *)(pcVar10 + 0x2c489c);
  if ((pIVar4->input_argument_list_).
      super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.
      _M_finish != (pointer)0x0) {
    pIVar5 = (pIVar4->input_argument_list_).
             super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl
             ._M_start;
    if ((pIVar5->is_file_ !=
         (bool)*(char *)&pIVar4[1].input_argument_list_.
                         super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>
                         ._M_impl._M_end_of_storage) || (pIVar5->field_0x1 != '\0')) {
      iVar8 = (**(code **)(pcVar10 + 0x2c8af0))(*(int *)(pcVar10 + 0x2c49d0) + 0x644c);
      iVar1 = iVar1 + iVar8;
      goto LAB_001fd168;
    }
    iVar8 = *(int *)(pcVar10 + 0x2c489c);
  }
  if (0x1d < iVar1) {
    iVar1 = 0;
    (**(code **)(pcVar10 + 0x2c8c10))(10);
  }
LAB_001fd0dc:
  puVar6 = *(undefined4 **)(pcVar10 + 0x2c8a68);
  do {
    iVar1 = iVar1 + 1;
    (**(code **)(pcVar10 + 0x2c8a4c))(0x20,*puVar6);
  } while (iVar1 != 0x1e);
  uVar2 = (**(code **)(pcVar10 + 0x2c8bb0))(pIVar4[1].file_count_);
  (**(code **)(pcVar10 + 0x2c8af0))(iVar8 + 0xec4,uVar2);
  if (pIVar4[2].in_group_ == false) {
                    /* WARNING: Could not recover jumptable at 0x001fd14c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (**(code **)(pcVar10 + 0x2c8c10))(10);
    return;
  }
  uVar2 = (**(code **)(pcVar10 + 0x2c8bb0))(*(int *)(pcVar10 + 0x2c49d0) + 0x6460);
  (**(code **)(pcVar10 + 0x2c8af0))(*(int *)(pcVar10 + 0x2c489c) + -0x1e94,uVar2);
                    /* WARNING: Could not recover jumptable at 0x001fd268. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  (**(code **)(pcVar10 + 0x2c8c10))(10);
  return;
}



/* gold::General_options::parse_dynamic_list(char const*, char const*, gold::Command_line*) */

void __thiscall
gold::General_options::parse_dynamic_list
          (General_options *this,char *param_1,char *param_2,Command_line *param_3)

{
  int iVar1;
  undefined4 uVar2;
  undefined4 uVar3;
  undefined4 *puVar4;
  One_option *this_00;
  undefined4 *puVar5;
  int iVar6;
  undefined *puVar7;
  code *pcVar8;
  code *pcVar9;
  undefined4 *puStack_168;
  undefined4 *puStack_164;
  undefined4 uStack_160;
  int iStack_154;
  char *pcStack_150;
  
  iVar1 = (*(code *)PTR_read_dynamic_list_004c2568)(param_2,param_3,this + 0x5950);
  if (iVar1 != 0) {
    this[0x5a1c] = (General_options)0x1;
    return;
  }
  uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s__s_004c1a50 + 0x6370);
  puVar7 = PTR_gold_fatal_004c2020;
  (*(code *)PTR_gold_fatal_004c2020)();
  uVar3 = (**(code **)(puVar7 + 0x2c8d98))(*(int *)(puVar7 + 0x2c4bb8) + 0x639c);
  pcVar8 = *(code **)(puVar7 + 0x2c5188);
  (*pcVar8)(uVar3,uVar2,param_2);
  uVar2 = (**(code **)(pcVar8 + 0x2c8d48))(*(int *)(pcVar8 + 0x2c4b68) + 0x63d0);
  pcVar8 = *(code **)(pcVar8 + 0x2c5138);
  (*pcVar8)(uVar2,uVar3);
  uVar2 = (**(code **)(pcVar8 + 0x2c8d04))(*(int *)(pcVar8 + 0x2c4b24) + 0x63f4);
  pcVar8 = *(code **)(pcVar8 + 0x2c50f4);
  (*pcVar8)(uVar2);
  if (param_3[0x5b90] != (Command_line)0x0) {
    param_3[0x5b90] = (Command_line)0x0;
    return;
  }
  iVar1 = *(int *)(pcVar8 + 0x2c55f8) + -0x30d4;
  FUN_001fcf2c();
  puVar4 = (undefined4 *)(**(code **)(iVar1 + 0x2c8c90))(*(int *)(iVar1 + 0x2c4ab0) + 0x6414);
  pcVar8 = *(code **)(iVar1 + 0x2c5080);
  (*pcVar8)();
  if (param_3[0x5b91] != (Command_line)0x0) {
    param_3[0x5b91] = (Command_line)0x0;
    return;
  }
  iVar1 = *(int *)(pcVar8 + 0x2c5584) + -0x3060;
  FUN_001fcfa0();
  if (puVar4 < (undefined4 *)0x40000000) {
    uVar2 = (**(code **)(iVar1 + 0x2c4394))((int)puVar4 << 2);
    (**(code **)(iVar1 + 0x2c8c54))(uVar2,0,(int)puVar4 << 2);
    return;
  }
  pcVar8 = *(code **)(iVar1 + 0x2c4aac);
  (*pcVar8)();
  (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c489c) + 0xe80);
  if (*(char *)(puVar4 + 7) == '\0') {
    iVar6 = *(int *)(pcVar8 + 0x2c489c);
    if (puVar4[1] == 0) {
      iVar1 = 2;
      goto LAB_001fd0dc;
    }
    if (*(char *)*puVar4 == '\0') {
      iVar1 = 2;
      if (((char *)*puVar4)[1] == '\0') {
        iVar6 = *(int *)(pcVar8 + 0x2c489c);
        goto LAB_001fd0dc;
      }
    }
    else {
      iVar1 = 2;
    }
LAB_001fd168:
    if ((uint)puVar4[6] < 5) {
                    /* WARNING: Could not recover jumptable at 0x001fd18c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      (*(pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4) + 0x2cc1c0))();
      return;
    }
    uVar2 = 0x81;
LAB_001fd378:
    pcVar9 = *(code **)(pcVar8 + 0x2c49b0);
    (*pcVar9)(*(int *)(pcVar8 + 0x2c49d0) + 0x6434,uVar2,*(int *)(pcVar8 + 0x2c489c) + -0x5148);
    puVar5 = *(undefined4 **)(pcVar9 + 0x2c45fc);
    iStack_154 = iVar1;
    pcStack_150 = param_2;
    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6468);
    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);
    iVar1 = *(int *)(pcVar9 + 0x2c51dc);
    puVar4 = *(undefined4 **)(iVar1 + -0x42ec);
    if (puVar4 != *(undefined4 **)(iVar1 + -0x42e8)) {
      do {
        this_00 = (One_option *)*puVar4;
        puVar4 = puVar4 + 1;
        options::One_option::print(this_00);
      } while (*(undefined4 **)(iVar1 + -0x42e8) != puVar4);
    }
    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6490);
    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);
    puStack_168 = (undefined4 *)0x0;
    puStack_164 = (undefined4 *)0x0;
    uStack_160 = 0;
    (**(code **)(pcVar9 + 0x2c51c0))(&puStack_168);
    if (puStack_168 != puStack_164) {
      iVar1 = *(int *)(pcVar9 + 0x2c46c0);
      puVar4 = puStack_168;
      do {
        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);
        puVar4 = puVar4 + 1;
      } while (puStack_164 != puVar4);
    }
    (**(code **)(pcVar9 + 0x2c8900))(10);
    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64a8);
    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);
    if (puStack_168 != puStack_164) {
      puStack_164 = puStack_168;
    }
    (**(code **)(pcVar9 + 0x2c51c4))(&puStack_168);
    if (puStack_168 != puStack_164) {
      iVar1 = *(int *)(pcVar9 + 0x2c46c0);
      puVar4 = puStack_168;
      do {
        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);
        puVar4 = puVar4 + 1;
      } while (puStack_164 != puVar4);
    }
    (**(code **)(pcVar9 + 0x2c8900))(10);
    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64c4);
    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*(int *)(pcVar9 + 0x2c46c0) + 0x64d8);
    if (puStack_168 != (undefined4 *)0x0) {
      (**(code **)(pcVar9 + 0x2c3f6c))();
    }
    return;
  }
  iVar1 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x6430);
  iVar1 = iVar1 + 2;
  if (puVar4[10] != 0) {
    uVar2 = 0x6a;
    if (puVar4[6] == 4) goto LAB_001fd378;
    uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(puVar4[10],0x6a);
    iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x653c,uVar2);
    iVar1 = iVar1 + iVar6;
  }
  iVar6 = *(int *)(pcVar8 + 0x2c489c);
  if (puVar4[1] != 0) {
    if ((*(char *)*puVar4 != *(char *)(puVar4 + 7)) || (((char *)*puVar4)[1] != '\0')) {
      iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x644c);
      iVar1 = iVar1 + iVar6;
      goto LAB_001fd168;
    }
    iVar6 = *(int *)(pcVar8 + 0x2c489c);
  }
  if (0x1d < iVar1) {
    iVar1 = 0;
    (**(code **)(pcVar8 + 0x2c8c10))(10);
  }
LAB_001fd0dc:
  puVar5 = *(undefined4 **)(pcVar8 + 0x2c8a68);
  do {
    iVar1 = iVar1 + 1;
    (**(code **)(pcVar8 + 0x2c8a4c))(0x20,*puVar5);
  } while (iVar1 != 0x1e);
  uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(puVar4[9]);
  (**(code **)(pcVar8 + 0x2c8af0))(iVar6 + 0xec4,uVar2);
  if (*(char *)(puVar4 + 0xd) == '\0') {
                    /* WARNING: Could not recover jumptable at 0x001fd14c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (**(code **)(pcVar8 + 0x2c8c10))(10);
    return;
  }
  uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(*(int *)(pcVar8 + 0x2c49d0) + 0x6460);
  (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c489c) + -0x1e94,uVar2);
                    /* WARNING: Could not recover jumptable at 0x001fd268. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  (**(code **)(pcVar8 + 0x2c8c10))(10);
  return;
}


lui gp,0x2d
addiu gp,gp,-0x3bd4
addu gp,gp,t9
addiu sp,sp,-0x28
lw t9,-0x6cd8(gp)
or a1,a3,zero
sw s1,0x20(sp)
or s1,a2,zero
addiu a2,a0,0x5950
sw gp,0x10(sp)
sw s0,0x1c(sp)
or s0,a0,zero
sw ra,0x24(sp)
jalr t9
_or a0,s1,zero
beq v0,zero,0x001fce74
_lw gp,0x10(sp)
lw ra,0x24(sp)
li v0,0x1
lw s1,0x20(sp)
sb v0,0x5a1c(s0)
lw s0,0x1c(sp)
jr ra
_addiu sp,sp,0x28
lw a0,-0x77f0(gp)
lw t9,-0x3610(gp)
jalr t9
_addiu a0,a0,0x6370
or a1,s1,zero
lw gp,0x10(sp)
lw t9,-0x7220(gp)
jalr t9
_or a0,v0,zero
(translation_unit "/* gold::General_options::parse_dynamic_list(char const*, char const*, gold::Command_line*) */\n\nvoid __thiscall\ngold::General_options::parse_dynamic_list\n          (General_options *this,char *param_1,char *param_2,Command_line *param_3)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 *puVar4;\n  One_option *this_00;\n  undefined4 *puVar5;\n  int iVar6;\n  undefined *puVar7;\n  code *pcVar8;\n  code *pcVar9;\n  undefined4 *puStack_168;\n  undefined4 *puStack_164;\n  undefined4 uStack_160;\n  int iStack_154;\n  char *pcStack_150;\n  \n  iVar1 = (*(code *)PTR_read_dynamic_list_004c2568)(param_2,param_3,this + 0x5950);\n  if (iVar1 != 0) {\n    this[0x5a1c] = (General_options)0x1;\n    return;\n  }\n  uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s__s_004c1a50 + 0x6370);\n  puVar7 = PTR_gold_fatal_004c2020;\n  (*(code *)PTR_gold_fatal_004c2020)();\n  uVar3 = (**(code **)(puVar7 + 0x2c8d98))(*(int *)(puVar7 + 0x2c4bb8) + 0x639c);\n  pcVar8 = *(code **)(puVar7 + 0x2c5188);\n  (*pcVar8)(uVar3,uVar2,param_2);\n  uVar2 = (**(code **)(pcVar8 + 0x2c8d48))(*(int *)(pcVar8 + 0x2c4b68) + 0x63d0);\n  pcVar8 = *(code **)(pcVar8 + 0x2c5138);\n  (*pcVar8)(uVar2,uVar3);\n  uVar2 = (**(code **)(pcVar8 + 0x2c8d04))(*(int *)(pcVar8 + 0x2c4b24) + 0x63f4);\n  pcVar8 = *(code **)(pcVar8 + 0x2c50f4);\n  (*pcVar8)(uVar2);\n  if (param_3[0x5b90] != (Command_line)0x0) {\n    param_3[0x5b90] = (Command_line)0x0;\n    return;\n  }\n  iVar1 = *(int *)(pcVar8 + 0x2c55f8) + -0x30d4;\n  FUN_001fcf2c();\n  puVar4 = (undefined4 *)(**(code **)(iVar1 + 0x2c8c90))(*(int *)(iVar1 + 0x2c4ab0) + 0x6414);\n  pcVar8 = *(code **)(iVar1 + 0x2c5080);\n  (*pcVar8)();\n  if (param_3[0x5b91] != (Command_line)0x0) {\n    param_3[0x5b91] = (Command_line)0x0;\n    return;\n  }\n  iVar1 = *(int *)(pcVar8 + 0x2c5584) + -0x3060;\n  FUN_001fcfa0();\n  if (puVar4 < (undefined4 *)0x40000000) {\n    uVar2 = (**(code **)(iVar1 + 0x2c4394))((int)puVar4 << 2);\n    (**(code **)(iVar1 + 0x2c8c54))(uVar2,0,(int)puVar4 << 2);\n    return;\n  }\n  pcVar8 = *(code **)(iVar1 + 0x2c4aac);\n  (*pcVar8)();\n  (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c489c) + 0xe80);\n  if (*(char *)(puVar4 + 7) == '\0') {\n    iVar6 = *(int *)(pcVar8 + 0x2c489c);\n    if (puVar4[1] == 0) {\n      iVar1 = 2;\n      goto LAB_001fd0dc;\n    }\n    if (*(char *)*puVar4 == '\0') {\n      iVar1 = 2;\n      if (((char *)*puVar4)[1] == '\0') {\n        iVar6 = *(int *)(pcVar8 + 0x2c489c);\n        goto LAB_001fd0dc;\n      }\n    }\n    else {\n      iVar1 = 2;\n    }\nLAB_001fd168:\n    if ((uint)puVar4[6] < 5) {\n                    /* WARNING: Could not recover jumptable at 0x001fd18c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4) + 0x2cc1c0))();\n      return;\n    }\n    uVar2 = 0x81;\nLAB_001fd378:\n    pcVar9 = *(code **)(pcVar8 + 0x2c49b0);\n    (*pcVar9)(*(int *)(pcVar8 + 0x2c49d0) + 0x6434,uVar2,*(int *)(pcVar8 + 0x2c489c) + -0x5148);\n    puVar5 = *(undefined4 **)(pcVar9 + 0x2c45fc);\n    iStack_154 = iVar1;\n    pcStack_150 = param_2;\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6468);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);\n    iVar1 = *(int *)(pcVar9 + 0x2c51dc);\n    puVar4 = *(undefined4 **)(iVar1 + -0x42ec);\n    if (puVar4 != *(undefined4 **)(iVar1 + -0x42e8)) {\n      do {\n        this_00 = (One_option *)*puVar4;\n        puVar4 = puVar4 + 1;\n        options::One_option::print(this_00);\n      } while (*(undefined4 **)(iVar1 + -0x42e8) != puVar4);\n    }\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6490);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);\n    puStack_168 = (undefined4 *)0x0;\n    puStack_164 = (undefined4 *)0x0;\n    uStack_160 = 0;\n    (**(code **)(pcVar9 + 0x2c51c0))(&puStack_168);\n    if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar9 + 0x2c46c0);\n      puVar4 = puStack_168;\n      do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);\n    }\n    (**(code **)(pcVar9 + 0x2c8900))(10);\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64a8);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);\n    if (puStack_168 != puStack_164) {\n      puStack_164 = puStack_168;\n    }\n    (**(code **)(pcVar9 + 0x2c51c4))(&puStack_168);\n    if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar9 + 0x2c46c0);\n      puVar4 = puStack_168;\n      do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);\n    }\n    (**(code **)(pcVar9 + 0x2c8900))(10);\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64c4);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*(int *)(pcVar9 + 0x2c46c0) + 0x64d8);\n    if (puStack_168 != (undefined4 *)0x0) {\n      (**(code **)(pcVar9 + 0x2c3f6c))();\n    }\n    return;\n  }\n  iVar1 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x6430);\n  iVar1 = iVar1 + 2;\n  if (puVar4[10] != 0) {\n    uVar2 = 0x6a;\n    if (puVar4[6] == 4) goto LAB_001fd378;\n    uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(puVar4[10],0x6a);\n    iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x653c,uVar2);\n    iVar1 = iVar1 + iVar6;\n  }\n  iVar6 = *(int *)(pcVar8 + 0x2c489c);\n  if (puVar4[1] != 0) {\n    if ((*(char *)*puVar4 != *(char *)(puVar4 + 7)) || (((char *)*puVar4)[1] != '\0')) {\n      iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x644c);\n      iVar1 = iVar1 + iVar6;\n      goto LAB_001fd168;\n    }\n    iVar6 = *(int *)(pcVar8 + 0x2c489c);\n  }\n  if (0x1d < iVar1) {\n    iVar1 = 0;\n    (**(code **)(pcVar8 + 0x2c8c10))(10);\n  }\nLAB_001fd0dc:\n  puVar5 = *(undefined4 **)(pcVar8 + 0x2c8a68);\n  do {\n    iVar1 = iVar1 + 1;\n    (**(code **)(pcVar8 + 0x2c8a4c))(0x20,*puVar5);\n  } while (iVar1 != 0x1e);\n  uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(puVar4[9]);\n  (**(code **)(pcVar8 + 0x2c8af0))(iVar6 + 0xec4,uVar2);\n  if (*(char *)(puVar4 + 0xd) == '\0') {\n                    /* WARNING: Could not recover jumptable at 0x001fd14c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(pcVar8 + 0x2c8c10))(10);\n    return;\n  }\n  uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(*(int *)(pcVar8 + 0x2c49d0) + 0x6460);\n  (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c489c) + -0x1e94,uVar2);\n                    /* WARNING: Could not recover jumptable at 0x001fd268. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  (**(code **)(pcVar8 + 0x2c8c10))(10);\n  return;\n}\n\n" comment (function_definition "void __thiscall\ngold::General_options::parse_dynamic_list\n          (General_options *this,char *param_1,char *param_2,Command_line *param_3)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 *puVar4;\n  One_option *this_00;\n  undefined4 *puVar5;\n  int iVar6;\n  undefined *puVar7;\n  code *pcVar8;\n  code *pcVar9;\n  undefined4 *puStack_168;\n  undefined4 *puStack_164;\n  undefined4 uStack_160;\n  int iStack_154;\n  char *pcStack_150;\n  \n  iVar1 = (*(code *)PTR_read_dynamic_list_004c2568)(param_2,param_3,this + 0x5950);\n  if (iVar1 != 0) {\n    this[0x5a1c] = (General_options)0x1;\n    return;\n  }\n  uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s__s_004c1a50 + 0x6370);\n  puVar7 = PTR_gold_fatal_004c2020;\n  (*(code *)PTR_gold_fatal_004c2020)();\n  uVar3 = (**(code **)(puVar7 + 0x2c8d98))(*(int *)(puVar7 + 0x2c4bb8) + 0x639c);\n  pcVar8 = *(code **)(puVar7 + 0x2c5188);\n  (*pcVar8)(uVar3,uVar2,param_2);\n  uVar2 = (**(code **)(pcVar8 + 0x2c8d48))(*(int *)(pcVar8 + 0x2c4b68) + 0x63d0);\n  pcVar8 = *(code **)(pcVar8 + 0x2c5138);\n  (*pcVar8)(uVar2,uVar3);\n  uVar2 = (**(code **)(pcVar8 + 0x2c8d04))(*(int *)(pcVar8 + 0x2c4b24) + 0x63f4);\n  pcVar8 = *(code **)(pcVar8 + 0x2c50f4);\n  (*pcVar8)(uVar2);\n  if (param_3[0x5b90] != (Command_line)0x0) {\n    param_3[0x5b90] = (Command_line)0x0;\n    return;\n  }\n  iVar1 = *(int *)(pcVar8 + 0x2c55f8) + -0x30d4;\n  FUN_001fcf2c();\n  puVar4 = (undefined4 *)(**(code **)(iVar1 + 0x2c8c90))(*(int *)(iVar1 + 0x2c4ab0) + 0x6414);\n  pcVar8 = *(code **)(iVar1 + 0x2c5080);\n  (*pcVar8)();\n  if (param_3[0x5b91] != (Command_line)0x0) {\n    param_3[0x5b91] = (Command_line)0x0;\n    return;\n  }\n  iVar1 = *(int *)(pcVar8 + 0x2c5584) + -0x3060;\n  FUN_001fcfa0();\n  if (puVar4 < (undefined4 *)0x40000000) {\n    uVar2 = (**(code **)(iVar1 + 0x2c4394))((int)puVar4 << 2);\n    (**(code **)(iVar1 + 0x2c8c54))(uVar2,0,(int)puVar4 << 2);\n    return;\n  }\n  pcVar8 = *(code **)(iVar1 + 0x2c4aac);\n  (*pcVar8)();\n  (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c489c) + 0xe80);\n  if (*(char *)(puVar4 + 7) == '\0') {\n    iVar6 = *(int *)(pcVar8 + 0x2c489c);\n    if (puVar4[1] == 0) {\n      iVar1 = 2;\n      goto LAB_001fd0dc;\n    }\n    if (*(char *)*puVar4 == '\0') {\n      iVar1 = 2;\n      if (((char *)*puVar4)[1] == '\0') {\n        iVar6 = *(int *)(pcVar8 + 0x2c489c);\n        goto LAB_001fd0dc;\n      }\n    }\n    else {\n      iVar1 = 2;\n    }\nLAB_001fd168:\n    if ((uint)puVar4[6] < 5) {\n                    /* WARNING: Could not recover jumptable at 0x001fd18c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4) + 0x2cc1c0))();\n      return;\n    }\n    uVar2 = 0x81;\nLAB_001fd378:\n    pcVar9 = *(code **)(pcVar8 + 0x2c49b0);\n    (*pcVar9)(*(int *)(pcVar8 + 0x2c49d0) + 0x6434,uVar2,*(int *)(pcVar8 + 0x2c489c) + -0x5148);\n    puVar5 = *(undefined4 **)(pcVar9 + 0x2c45fc);\n    iStack_154 = iVar1;\n    pcStack_150 = param_2;\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6468);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);\n    iVar1 = *(int *)(pcVar9 + 0x2c51dc);\n    puVar4 = *(undefined4 **)(iVar1 + -0x42ec);\n    if (puVar4 != *(undefined4 **)(iVar1 + -0x42e8)) {\n      do {\n        this_00 = (One_option *)*puVar4;\n        puVar4 = puVar4 + 1;\n        options::One_option::print(this_00);\n      } while (*(undefined4 **)(iVar1 + -0x42e8) != puVar4);\n    }\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6490);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);\n    puStack_168 = (undefined4 *)0x0;\n    puStack_164 = (undefined4 *)0x0;\n    uStack_160 = 0;\n    (**(code **)(pcVar9 + 0x2c51c0))(&puStack_168);\n    if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar9 + 0x2c46c0);\n      puVar4 = puStack_168;\n      do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);\n    }\n    (**(code **)(pcVar9 + 0x2c8900))(10);\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64a8);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);\n    if (puStack_168 != puStack_164) {\n      puStack_164 = puStack_168;\n    }\n    (**(code **)(pcVar9 + 0x2c51c4))(&puStack_168);\n    if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar9 + 0x2c46c0);\n      puVar4 = puStack_168;\n      do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);\n    }\n    (**(code **)(pcVar9 + 0x2c8900))(10);\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64c4);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*(int *)(pcVar9 + 0x2c46c0) + 0x64d8);\n    if (puStack_168 != (undefined4 *)0x0) {\n      (**(code **)(pcVar9 + 0x2c3f6c))();\n    }\n    return;\n  }\n  iVar1 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x6430);\n  iVar1 = iVar1 + 2;\n  if (puVar4[10] != 0) {\n    uVar2 = 0x6a;\n    if (puVar4[6] == 4) goto LAB_001fd378;\n    uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(puVar4[10],0x6a);\n    iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x653c,uVar2);\n    iVar1 = iVar1 + iVar6;\n  }\n  iVar6 = *(int *)(pcVar8 + 0x2c489c);\n  if (puVar4[1] != 0) {\n    if ((*(char *)*puVar4 != *(char *)(puVar4 + 7)) || (((char *)*puVar4)[1] != '\0')) {\n      iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x644c);\n      iVar1 = iVar1 + iVar6;\n      goto LAB_001fd168;\n    }\n    iVar6 = *(int *)(pcVar8 + 0x2c489c);\n  }\n  if (0x1d < iVar1) {\n    iVar1 = 0;\n    (**(code **)(pcVar8 + 0x2c8c10))(10);\n  }\nLAB_001fd0dc:\n  puVar5 = *(undefined4 **)(pcVar8 + 0x2c8a68);\n  do {\n    iVar1 = iVar1 + 1;\n    (**(code **)(pcVar8 + 0x2c8a4c))(0x20,*puVar5);\n  } while (iVar1 != 0x1e);\n  uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(puVar4[9]);\n  (**(code **)(pcVar8 + 0x2c8af0))(iVar6 + 0xec4,uVar2);\n  if (*(char *)(puVar4 + 0xd) == '\0') {\n                    /* WARNING: Could not recover jumptable at 0x001fd14c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(pcVar8 + 0x2c8c10))(10);\n    return;\n  }\n  uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(*(int *)(pcVar8 + 0x2c49d0) + 0x6460);\n  (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c489c) + -0x1e94,uVar2);\n                    /* WARNING: Could not recover jumptable at 0x001fd268. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  (**(code **)(pcVar8 + 0x2c8c10))(10);\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::General_options::" identifier : : identifier : :) (function_declarator "parse_dynamic_list\n          (General_options *this,char *param_1,char *param_2,Command_line *param_3)" identifier (parameter_list "(General_options *this,char *param_1,char *param_2,Command_line *param_3)" ( (parameter_declaration "General_options *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "Command_line *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 *puVar4;\n  One_option *this_00;\n  undefined4 *puVar5;\n  int iVar6;\n  undefined *puVar7;\n  code *pcVar8;\n  code *pcVar9;\n  undefined4 *puStack_168;\n  undefined4 *puStack_164;\n  undefined4 uStack_160;\n  int iStack_154;\n  char *pcStack_150;\n  \n  iVar1 = (*(code *)PTR_read_dynamic_list_004c2568)(param_2,param_3,this + 0x5950);\n  if (iVar1 != 0) {\n    this[0x5a1c] = (General_options)0x1;\n    return;\n  }\n  uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s__s_004c1a50 + 0x6370);\n  puVar7 = PTR_gold_fatal_004c2020;\n  (*(code *)PTR_gold_fatal_004c2020)();\n  uVar3 = (**(code **)(puVar7 + 0x2c8d98))(*(int *)(puVar7 + 0x2c4bb8) + 0x639c);\n  pcVar8 = *(code **)(puVar7 + 0x2c5188);\n  (*pcVar8)(uVar3,uVar2,param_2);\n  uVar2 = (**(code **)(pcVar8 + 0x2c8d48))(*(int *)(pcVar8 + 0x2c4b68) + 0x63d0);\n  pcVar8 = *(code **)(pcVar8 + 0x2c5138);\n  (*pcVar8)(uVar2,uVar3);\n  uVar2 = (**(code **)(pcVar8 + 0x2c8d04))(*(int *)(pcVar8 + 0x2c4b24) + 0x63f4);\n  pcVar8 = *(code **)(pcVar8 + 0x2c50f4);\n  (*pcVar8)(uVar2);\n  if (param_3[0x5b90] != (Command_line)0x0) {\n    param_3[0x5b90] = (Command_line)0x0;\n    return;\n  }\n  iVar1 = *(int *)(pcVar8 + 0x2c55f8) + -0x30d4;\n  FUN_001fcf2c();\n  puVar4 = (undefined4 *)(**(code **)(iVar1 + 0x2c8c90))(*(int *)(iVar1 + 0x2c4ab0) + 0x6414);\n  pcVar8 = *(code **)(iVar1 + 0x2c5080);\n  (*pcVar8)();\n  if (param_3[0x5b91] != (Command_line)0x0) {\n    param_3[0x5b91] = (Command_line)0x0;\n    return;\n  }\n  iVar1 = *(int *)(pcVar8 + 0x2c5584) + -0x3060;\n  FUN_001fcfa0();\n  if (puVar4 < (undefined4 *)0x40000000) {\n    uVar2 = (**(code **)(iVar1 + 0x2c4394))((int)puVar4 << 2);\n    (**(code **)(iVar1 + 0x2c8c54))(uVar2,0,(int)puVar4 << 2);\n    return;\n  }\n  pcVar8 = *(code **)(iVar1 + 0x2c4aac);\n  (*pcVar8)();\n  (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c489c) + 0xe80);\n  if (*(char *)(puVar4 + 7) == '\0') {\n    iVar6 = *(int *)(pcVar8 + 0x2c489c);\n    if (puVar4[1] == 0) {\n      iVar1 = 2;\n      goto LAB_001fd0dc;\n    }\n    if (*(char *)*puVar4 == '\0') {\n      iVar1 = 2;\n      if (((char *)*puVar4)[1] == '\0') {\n        iVar6 = *(int *)(pcVar8 + 0x2c489c);\n        goto LAB_001fd0dc;\n      }\n    }\n    else {\n      iVar1 = 2;\n    }\nLAB_001fd168:\n    if ((uint)puVar4[6] < 5) {\n                    /* WARNING: Could not recover jumptable at 0x001fd18c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4) + 0x2cc1c0))();\n      return;\n    }\n    uVar2 = 0x81;\nLAB_001fd378:\n    pcVar9 = *(code **)(pcVar8 + 0x2c49b0);\n    (*pcVar9)(*(int *)(pcVar8 + 0x2c49d0) + 0x6434,uVar2,*(int *)(pcVar8 + 0x2c489c) + -0x5148);\n    puVar5 = *(undefined4 **)(pcVar9 + 0x2c45fc);\n    iStack_154 = iVar1;\n    pcStack_150 = param_2;\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6468);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);\n    iVar1 = *(int *)(pcVar9 + 0x2c51dc);\n    puVar4 = *(undefined4 **)(iVar1 + -0x42ec);\n    if (puVar4 != *(undefined4 **)(iVar1 + -0x42e8)) {\n      do {\n        this_00 = (One_option *)*puVar4;\n        puVar4 = puVar4 + 1;\n        options::One_option::print(this_00);\n      } while (*(undefined4 **)(iVar1 + -0x42e8) != puVar4);\n    }\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6490);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);\n    puStack_168 = (undefined4 *)0x0;\n    puStack_164 = (undefined4 *)0x0;\n    uStack_160 = 0;\n    (**(code **)(pcVar9 + 0x2c51c0))(&puStack_168);\n    if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar9 + 0x2c46c0);\n      puVar4 = puStack_168;\n      do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);\n    }\n    (**(code **)(pcVar9 + 0x2c8900))(10);\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64a8);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);\n    if (puStack_168 != puStack_164) {\n      puStack_164 = puStack_168;\n    }\n    (**(code **)(pcVar9 + 0x2c51c4))(&puStack_168);\n    if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar9 + 0x2c46c0);\n      puVar4 = puStack_168;\n      do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);\n    }\n    (**(code **)(pcVar9 + 0x2c8900))(10);\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64c4);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*(int *)(pcVar9 + 0x2c46c0) + 0x64d8);\n    if (puStack_168 != (undefined4 *)0x0) {\n      (**(code **)(pcVar9 + 0x2c3f6c))();\n    }\n    return;\n  }\n  iVar1 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x6430);\n  iVar1 = iVar1 + 2;\n  if (puVar4[10] != 0) {\n    uVar2 = 0x6a;\n    if (puVar4[6] == 4) goto LAB_001fd378;\n    uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(puVar4[10],0x6a);\n    iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x653c,uVar2);\n    iVar1 = iVar1 + iVar6;\n  }\n  iVar6 = *(int *)(pcVar8 + 0x2c489c);\n  if (puVar4[1] != 0) {\n    if ((*(char *)*puVar4 != *(char *)(puVar4 + 7)) || (((char *)*puVar4)[1] != '\0')) {\n      iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x644c);\n      iVar1 = iVar1 + iVar6;\n      goto LAB_001fd168;\n    }\n    iVar6 = *(int *)(pcVar8 + 0x2c489c);\n  }\n  if (0x1d < iVar1) {\n    iVar1 = 0;\n    (**(code **)(pcVar8 + 0x2c8c10))(10);\n  }\nLAB_001fd0dc:\n  puVar5 = *(undefined4 **)(pcVar8 + 0x2c8a68);\n  do {\n    iVar1 = iVar1 + 1;\n    (**(code **)(pcVar8 + 0x2c8a4c))(0x20,*puVar5);\n  } while (iVar1 != 0x1e);\n  uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(puVar4[9]);\n  (**(code **)(pcVar8 + 0x2c8af0))(iVar6 + 0xec4,uVar2);\n  if (*(char *)(puVar4 + 0xd) == '\0') {\n                    /* WARNING: Could not recover jumptable at 0x001fd14c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(pcVar8 + 0x2c8c10))(10);\n    return;\n  }\n  uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(*(int *)(pcVar8 + 0x2c49d0) + 0x6460);\n  (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c489c) + -0x1e94,uVar2);\n                    /* WARNING: Could not recover jumptable at 0x001fd268. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  (**(code **)(pcVar8 + 0x2c8c10))(10);\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "One_option *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "code *pcVar8;" type_identifier (pointer_declarator "*pcVar8" * identifier) ;) (declaration "code *pcVar9;" type_identifier (pointer_declarator "*pcVar9" * identifier) ;) (declaration "undefined4 *puStack_168;" type_identifier (pointer_declarator "*puStack_168" * identifier) ;) (declaration "undefined4 *puStack_164;" type_identifier (pointer_declarator "*puStack_164" * identifier) ;) (declaration "undefined4 uStack_160;" type_identifier identifier ;) (declaration "int iStack_154;" primitive_type identifier ;) (declaration "char *pcStack_150;" primitive_type (pointer_declarator "*pcStack_150" * identifier) ;) (expression_statement "iVar1 = (*(code *)PTR_read_dynamic_list_004c2568)(param_2,param_3,this + 0x5950);" (assignment_expression "iVar1 = (*(code *)PTR_read_dynamic_list_004c2568)(param_2,param_3,this + 0x5950)" identifier = (call_expression "(*(code *)PTR_read_dynamic_list_004c2568)(param_2,param_3,this + 0x5950)" (parenthesized_expression "(*(code *)PTR_read_dynamic_list_004c2568)" ( (pointer_expression "*(code *)PTR_read_dynamic_list_004c2568" * (cast_expression "(code *)PTR_read_dynamic_list_004c2568" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2,param_3,this + 0x5950)" ( identifier , identifier , (binary_expression "this + 0x5950" identifier + number_literal) )))) ;) (if_statement "if (iVar1 != 0) {\n    this[0x5a1c] = (General_options)0x1;\n    return;\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    this[0x5a1c] = (General_options)0x1;\n    return;\n  }" { (expression_statement "this[0x5a1c] = (General_options)0x1;" (assignment_expression "this[0x5a1c] = (General_options)0x1" (subscript_expression "this[0x5a1c]" identifier [ number_literal ]) = (cast_expression "(General_options)0x1" ( (type_descriptor "General_options" type_identifier) ) number_literal)) ;) (return_statement "return;" return ;) })) (expression_statement "uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s__s_004c1a50 + 0x6370);" (assignment_expression "uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s__s_004c1a50 + 0x6370)" identifier = (call_expression "(*(code *)PTR_gettext_004c5c30)(PTR_s__s_004c1a50 + 0x6370)" (parenthesized_expression "(*(code *)PTR_gettext_004c5c30)" ( (pointer_expression "*(code *)PTR_gettext_004c5c30" * (cast_expression "(code *)PTR_gettext_004c5c30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s__s_004c1a50 + 0x6370)" ( (binary_expression "PTR_s__s_004c1a50 + 0x6370" identifier + number_literal) )))) ;) (expression_statement "puVar7 = PTR_gold_fatal_004c2020;" (assignment_expression "puVar7 = PTR_gold_fatal_004c2020" identifier = identifier) ;) (expression_statement "(*(code *)PTR_gold_fatal_004c2020)();" (call_expression "(*(code *)PTR_gold_fatal_004c2020)()" (parenthesized_expression "(*(code *)PTR_gold_fatal_004c2020)" ( (pointer_expression "*(code *)PTR_gold_fatal_004c2020" * (cast_expression "(code *)PTR_gold_fatal_004c2020" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar3 = (**(code **)(puVar7 + 0x2c8d98))(*(int *)(puVar7 + 0x2c4bb8) + 0x639c);" (assignment_expression "uVar3 = (**(code **)(puVar7 + 0x2c8d98))(*(int *)(puVar7 + 0x2c4bb8) + 0x639c)" identifier = (call_expression "(**(code **)(puVar7 + 0x2c8d98))(*(int *)(puVar7 + 0x2c4bb8) + 0x639c)" (parenthesized_expression "(**(code **)(puVar7 + 0x2c8d98))" ( (pointer_expression "**(code **)(puVar7 + 0x2c8d98)" * (pointer_expression "*(code **)(puVar7 + 0x2c8d98)" * (cast_expression "(code **)(puVar7 + 0x2c8d98)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x2c8d98)" ( (binary_expression "puVar7 + 0x2c8d98" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar7 + 0x2c4bb8) + 0x639c)" ( (binary_expression "*(int *)(puVar7 + 0x2c4bb8) + 0x639c" (pointer_expression "*(int *)(puVar7 + 0x2c4bb8)" * (cast_expression "(int *)(puVar7 + 0x2c4bb8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x2c4bb8)" ( (binary_expression "puVar7 + 0x2c4bb8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pcVar8 = *(code **)(puVar7 + 0x2c5188);" (assignment_expression "pcVar8 = *(code **)(puVar7 + 0x2c5188)" identifier = (pointer_expression "*(code **)(puVar7 + 0x2c5188)" * (cast_expression "(code **)(puVar7 + 0x2c5188)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x2c5188)" ( (binary_expression "puVar7 + 0x2c5188" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar8)(uVar3,uVar2,param_2);" (call_expression "(*pcVar8)(uVar3,uVar2,param_2)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(uVar3,uVar2,param_2)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar2 = (**(code **)(pcVar8 + 0x2c8d48))(*(int *)(pcVar8 + 0x2c4b68) + 0x63d0);" (assignment_expression "uVar2 = (**(code **)(pcVar8 + 0x2c8d48))(*(int *)(pcVar8 + 0x2c4b68) + 0x63d0)" identifier = (call_expression "(**(code **)(pcVar8 + 0x2c8d48))(*(int *)(pcVar8 + 0x2c4b68) + 0x63d0)" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8d48))" ( (pointer_expression "**(code **)(pcVar8 + 0x2c8d48)" * (pointer_expression "*(code **)(pcVar8 + 0x2c8d48)" * (cast_expression "(code **)(pcVar8 + 0x2c8d48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x2c8d48)" ( (binary_expression "pcVar8 + 0x2c8d48" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar8 + 0x2c4b68) + 0x63d0)" ( (binary_expression "*(int *)(pcVar8 + 0x2c4b68) + 0x63d0" (pointer_expression "*(int *)(pcVar8 + 0x2c4b68)" * (cast_expression "(int *)(pcVar8 + 0x2c4b68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x2c4b68)" ( (binary_expression "pcVar8 + 0x2c4b68" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pcVar8 = *(code **)(pcVar8 + 0x2c5138);" (assignment_expression "pcVar8 = *(code **)(pcVar8 + 0x2c5138)" identifier = (pointer_expression "*(code **)(pcVar8 + 0x2c5138)" * (cast_expression "(code **)(pcVar8 + 0x2c5138)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x2c5138)" ( (binary_expression "pcVar8 + 0x2c5138" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar8)(uVar2,uVar3);" (call_expression "(*pcVar8)(uVar2,uVar3)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(uVar2,uVar3)" ( identifier , identifier ))) ;) (expression_statement "uVar2 = (**(code **)(pcVar8 + 0x2c8d04))(*(int *)(pcVar8 + 0x2c4b24) + 0x63f4);" (assignment_expression "uVar2 = (**(code **)(pcVar8 + 0x2c8d04))(*(int *)(pcVar8 + 0x2c4b24) + 0x63f4)" identifier = (call_expression "(**(code **)(pcVar8 + 0x2c8d04))(*(int *)(pcVar8 + 0x2c4b24) + 0x63f4)" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8d04))" ( (pointer_expression "**(code **)(pcVar8 + 0x2c8d04)" * (pointer_expression "*(code **)(pcVar8 + 0x2c8d04)" * (cast_expression "(code **)(pcVar8 + 0x2c8d04)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x2c8d04)" ( (binary_expression "pcVar8 + 0x2c8d04" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar8 + 0x2c4b24) + 0x63f4)" ( (binary_expression "*(int *)(pcVar8 + 0x2c4b24) + 0x63f4" (pointer_expression "*(int *)(pcVar8 + 0x2c4b24)" * (cast_expression "(int *)(pcVar8 + 0x2c4b24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x2c4b24)" ( (binary_expression "pcVar8 + 0x2c4b24" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pcVar8 = *(code **)(pcVar8 + 0x2c50f4);" (assignment_expression "pcVar8 = *(code **)(pcVar8 + 0x2c50f4)" identifier = (pointer_expression "*(code **)(pcVar8 + 0x2c50f4)" * (cast_expression "(code **)(pcVar8 + 0x2c50f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x2c50f4)" ( (binary_expression "pcVar8 + 0x2c50f4" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar8)(uVar2);" (call_expression "(*pcVar8)(uVar2)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(uVar2)" ( identifier ))) ;) (if_statement "if (param_3[0x5b90] != (Command_line)0x0) {\n    param_3[0x5b90] = (Command_line)0x0;\n    return;\n  }" if (parenthesized_expression "(param_3[0x5b90] != (Command_line)0x0)" ( (binary_expression "param_3[0x5b90] != (Command_line)0x0" (subscript_expression "param_3[0x5b90]" identifier [ number_literal ]) != (cast_expression "(Command_line)0x0" ( (type_descriptor "Command_line" type_identifier) ) number_literal)) )) (compound_statement "{\n    param_3[0x5b90] = (Command_line)0x0;\n    return;\n  }" { (expression_statement "param_3[0x5b90] = (Command_line)0x0;" (assignment_expression "param_3[0x5b90] = (Command_line)0x0" (subscript_expression "param_3[0x5b90]" identifier [ number_literal ]) = (cast_expression "(Command_line)0x0" ( (type_descriptor "Command_line" type_identifier) ) number_literal)) ;) (return_statement "return;" return ;) })) (expression_statement "iVar1 = *(int *)(pcVar8 + 0x2c55f8) + -0x30d4;" (assignment_expression "iVar1 = *(int *)(pcVar8 + 0x2c55f8) + -0x30d4" identifier = (binary_expression "*(int *)(pcVar8 + 0x2c55f8) + -0x30d4" (pointer_expression "*(int *)(pcVar8 + 0x2c55f8)" * (cast_expression "(int *)(pcVar8 + 0x2c55f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x2c55f8)" ( (binary_expression "pcVar8 + 0x2c55f8" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "FUN_001fcf2c();" (call_expression "FUN_001fcf2c()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar4 = (undefined4 *)(**(code **)(iVar1 + 0x2c8c90))(*(int *)(iVar1 + 0x2c4ab0) + 0x6414);" (assignment_expression "puVar4 = (undefined4 *)(**(code **)(iVar1 + 0x2c8c90))(*(int *)(iVar1 + 0x2c4ab0) + 0x6414)" identifier = (cast_expression "(undefined4 *)(**(code **)(iVar1 + 0x2c8c90))(*(int *)(iVar1 + 0x2c4ab0) + 0x6414)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar1 + 0x2c8c90))(*(int *)(iVar1 + 0x2c4ab0) + 0x6414)" (parenthesized_expression "(**(code **)(iVar1 + 0x2c8c90))" ( (pointer_expression "**(code **)(iVar1 + 0x2c8c90)" * (pointer_expression "*(code **)(iVar1 + 0x2c8c90)" * (cast_expression "(code **)(iVar1 + 0x2c8c90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x2c8c90)" ( (binary_expression "iVar1 + 0x2c8c90" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar1 + 0x2c4ab0) + 0x6414)" ( (binary_expression "*(int *)(iVar1 + 0x2c4ab0) + 0x6414" (pointer_expression "*(int *)(iVar1 + 0x2c4ab0)" * (cast_expression "(int *)(iVar1 + 0x2c4ab0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x2c4ab0)" ( (binary_expression "iVar1 + 0x2c4ab0" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pcVar8 = *(code **)(iVar1 + 0x2c5080);" (assignment_expression "pcVar8 = *(code **)(iVar1 + 0x2c5080)" identifier = (pointer_expression "*(code **)(iVar1 + 0x2c5080)" * (cast_expression "(code **)(iVar1 + 0x2c5080)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x2c5080)" ( (binary_expression "iVar1 + 0x2c5080" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar8)();" (call_expression "(*pcVar8)()" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if (param_3[0x5b91] != (Command_line)0x0) {\n    param_3[0x5b91] = (Command_line)0x0;\n    return;\n  }" if (parenthesized_expression "(param_3[0x5b91] != (Command_line)0x0)" ( (binary_expression "param_3[0x5b91] != (Command_line)0x0" (subscript_expression "param_3[0x5b91]" identifier [ number_literal ]) != (cast_expression "(Command_line)0x0" ( (type_descriptor "Command_line" type_identifier) ) number_literal)) )) (compound_statement "{\n    param_3[0x5b91] = (Command_line)0x0;\n    return;\n  }" { (expression_statement "param_3[0x5b91] = (Command_line)0x0;" (assignment_expression "param_3[0x5b91] = (Command_line)0x0" (subscript_expression "param_3[0x5b91]" identifier [ number_literal ]) = (cast_expression "(Command_line)0x0" ( (type_descriptor "Command_line" type_identifier) ) number_literal)) ;) (return_statement "return;" return ;) })) (expression_statement "iVar1 = *(int *)(pcVar8 + 0x2c5584) + -0x3060;" (assignment_expression "iVar1 = *(int *)(pcVar8 + 0x2c5584) + -0x3060" identifier = (binary_expression "*(int *)(pcVar8 + 0x2c5584) + -0x3060" (pointer_expression "*(int *)(pcVar8 + 0x2c5584)" * (cast_expression "(int *)(pcVar8 + 0x2c5584)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x2c5584)" ( (binary_expression "pcVar8 + 0x2c5584" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "FUN_001fcfa0();" (call_expression "FUN_001fcfa0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (puVar4 < (undefined4 *)0x40000000) {\n    uVar2 = (**(code **)(iVar1 + 0x2c4394))((int)puVar4 << 2);\n    (**(code **)(iVar1 + 0x2c8c54))(uVar2,0,(int)puVar4 << 2);\n    return;\n  }" if (parenthesized_expression "(puVar4 < (undefined4 *)0x40000000)" ( (binary_expression "puVar4 < (undefined4 *)0x40000000" identifier < (cast_expression "(undefined4 *)0x40000000" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar2 = (**(code **)(iVar1 + 0x2c4394))((int)puVar4 << 2);\n    (**(code **)(iVar1 + 0x2c8c54))(uVar2,0,(int)puVar4 << 2);\n    return;\n  }" { (expression_statement "uVar2 = (**(code **)(iVar1 + 0x2c4394))((int)puVar4 << 2);" (assignment_expression "uVar2 = (**(code **)(iVar1 + 0x2c4394))((int)puVar4 << 2)" identifier = (call_expression "(**(code **)(iVar1 + 0x2c4394))((int)puVar4 << 2)" (parenthesized_expression "(**(code **)(iVar1 + 0x2c4394))" ( (pointer_expression "**(code **)(iVar1 + 0x2c4394)" * (pointer_expression "*(code **)(iVar1 + 0x2c4394)" * (cast_expression "(code **)(iVar1 + 0x2c4394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x2c4394)" ( (binary_expression "iVar1 + 0x2c4394" identifier + number_literal) ))))) )) (argument_list "((int)puVar4 << 2)" ( (binary_expression "(int)puVar4 << 2" (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "(**(code **)(iVar1 + 0x2c8c54))(uVar2,0,(int)puVar4 << 2);" (call_expression "(**(code **)(iVar1 + 0x2c8c54))(uVar2,0,(int)puVar4 << 2)" (parenthesized_expression "(**(code **)(iVar1 + 0x2c8c54))" ( (pointer_expression "**(code **)(iVar1 + 0x2c8c54)" * (pointer_expression "*(code **)(iVar1 + 0x2c8c54)" * (cast_expression "(code **)(iVar1 + 0x2c8c54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x2c8c54)" ( (binary_expression "iVar1 + 0x2c8c54" identifier + number_literal) ))))) )) (argument_list "(uVar2,0,(int)puVar4 << 2)" ( identifier , number_literal , (binary_expression "(int)puVar4 << 2" (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "pcVar8 = *(code **)(iVar1 + 0x2c4aac);" (assignment_expression "pcVar8 = *(code **)(iVar1 + 0x2c4aac)" identifier = (pointer_expression "*(code **)(iVar1 + 0x2c4aac)" * (cast_expression "(code **)(iVar1 + 0x2c4aac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x2c4aac)" ( (binary_expression "iVar1 + 0x2c4aac" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar8)();" (call_expression "(*pcVar8)()" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c489c) + 0xe80);" (call_expression "(**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c489c) + 0xe80)" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8af0))" ( (pointer_expression "**(code **)(pcVar8 + 0x2c8af0)" * (pointer_expression "*(code **)(pcVar8 + 0x2c8af0)" * (cast_expression "(code **)(pcVar8 + 0x2c8af0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x2c8af0)" ( (binary_expression "pcVar8 + 0x2c8af0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar8 + 0x2c489c) + 0xe80)" ( (binary_expression "*(int *)(pcVar8 + 0x2c489c) + 0xe80" (pointer_expression "*(int *)(pcVar8 + 0x2c489c)" * (cast_expression "(int *)(pcVar8 + 0x2c489c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x2c489c)" ( (binary_expression "pcVar8 + 0x2c489c" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (*(char *)(puVar4 + 7) == '\0') {\n    iVar6 = *(int *)(pcVar8 + 0x2c489c);\n    if (puVar4[1] == 0) {\n      iVar1 = 2;\n      goto LAB_001fd0dc;\n    }\n    if (*(char *)*puVar4 == '\0') {\n      iVar1 = 2;\n      if (((char *)*puVar4)[1] == '\0') {\n        iVar6 = *(int *)(pcVar8 + 0x2c489c);\n        goto LAB_001fd0dc;\n      }\n    }\n    else {\n      iVar1 = 2;\n    }\nLAB_001fd168:\n    if ((uint)puVar4[6] < 5) {\n                    /* WARNING: Could not recover jumptable at 0x001fd18c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4) + 0x2cc1c0))();\n      return;\n    }\n    uVar2 = 0x81;\nLAB_001fd378:\n    pcVar9 = *(code **)(pcVar8 + 0x2c49b0);\n    (*pcVar9)(*(int *)(pcVar8 + 0x2c49d0) + 0x6434,uVar2,*(int *)(pcVar8 + 0x2c489c) + -0x5148);\n    puVar5 = *(undefined4 **)(pcVar9 + 0x2c45fc);\n    iStack_154 = iVar1;\n    pcStack_150 = param_2;\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6468);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);\n    iVar1 = *(int *)(pcVar9 + 0x2c51dc);\n    puVar4 = *(undefined4 **)(iVar1 + -0x42ec);\n    if (puVar4 != *(undefined4 **)(iVar1 + -0x42e8)) {\n      do {\n        this_00 = (One_option *)*puVar4;\n        puVar4 = puVar4 + 1;\n        options::One_option::print(this_00);\n      } while (*(undefined4 **)(iVar1 + -0x42e8) != puVar4);\n    }\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6490);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);\n    puStack_168 = (undefined4 *)0x0;\n    puStack_164 = (undefined4 *)0x0;\n    uStack_160 = 0;\n    (**(code **)(pcVar9 + 0x2c51c0))(&puStack_168);\n    if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar9 + 0x2c46c0);\n      puVar4 = puStack_168;\n      do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);\n    }\n    (**(code **)(pcVar9 + 0x2c8900))(10);\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64a8);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);\n    if (puStack_168 != puStack_164) {\n      puStack_164 = puStack_168;\n    }\n    (**(code **)(pcVar9 + 0x2c51c4))(&puStack_168);\n    if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar9 + 0x2c46c0);\n      puVar4 = puStack_168;\n      do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);\n    }\n    (**(code **)(pcVar9 + 0x2c8900))(10);\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64c4);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*(int *)(pcVar9 + 0x2c46c0) + 0x64d8);\n    if (puStack_168 != (undefined4 *)0x0) {\n      (**(code **)(pcVar9 + 0x2c3f6c))();\n    }\n    return;\n  }" if (parenthesized_expression "(*(char *)(puVar4 + 7) == '\0')" ( (binary_expression "*(char *)(puVar4 + 7) == '\0'" (pointer_expression "*(char *)(puVar4 + 7)" * (cast_expression "(char *)(puVar4 + 7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 7)" ( (binary_expression "puVar4 + 7" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar6 = *(int *)(pcVar8 + 0x2c489c);\n    if (puVar4[1] == 0) {\n      iVar1 = 2;\n      goto LAB_001fd0dc;\n    }\n    if (*(char *)*puVar4 == '\0') {\n      iVar1 = 2;\n      if (((char *)*puVar4)[1] == '\0') {\n        iVar6 = *(int *)(pcVar8 + 0x2c489c);\n        goto LAB_001fd0dc;\n      }\n    }\n    else {\n      iVar1 = 2;\n    }\nLAB_001fd168:\n    if ((uint)puVar4[6] < 5) {\n                    /* WARNING: Could not recover jumptable at 0x001fd18c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4) + 0x2cc1c0))();\n      return;\n    }\n    uVar2 = 0x81;\nLAB_001fd378:\n    pcVar9 = *(code **)(pcVar8 + 0x2c49b0);\n    (*pcVar9)(*(int *)(pcVar8 + 0x2c49d0) + 0x6434,uVar2,*(int *)(pcVar8 + 0x2c489c) + -0x5148);\n    puVar5 = *(undefined4 **)(pcVar9 + 0x2c45fc);\n    iStack_154 = iVar1;\n    pcStack_150 = param_2;\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6468);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);\n    iVar1 = *(int *)(pcVar9 + 0x2c51dc);\n    puVar4 = *(undefined4 **)(iVar1 + -0x42ec);\n    if (puVar4 != *(undefined4 **)(iVar1 + -0x42e8)) {\n      do {\n        this_00 = (One_option *)*puVar4;\n        puVar4 = puVar4 + 1;\n        options::One_option::print(this_00);\n      } while (*(undefined4 **)(iVar1 + -0x42e8) != puVar4);\n    }\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6490);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);\n    puStack_168 = (undefined4 *)0x0;\n    puStack_164 = (undefined4 *)0x0;\n    uStack_160 = 0;\n    (**(code **)(pcVar9 + 0x2c51c0))(&puStack_168);\n    if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar9 + 0x2c46c0);\n      puVar4 = puStack_168;\n      do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);\n    }\n    (**(code **)(pcVar9 + 0x2c8900))(10);\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64a8);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);\n    if (puStack_168 != puStack_164) {\n      puStack_164 = puStack_168;\n    }\n    (**(code **)(pcVar9 + 0x2c51c4))(&puStack_168);\n    if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar9 + 0x2c46c0);\n      puVar4 = puStack_168;\n      do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);\n    }\n    (**(code **)(pcVar9 + 0x2c8900))(10);\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64c4);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*(int *)(pcVar9 + 0x2c46c0) + 0x64d8);\n    if (puStack_168 != (undefined4 *)0x0) {\n      (**(code **)(pcVar9 + 0x2c3f6c))();\n    }\n    return;\n  }" { (expression_statement "iVar6 = *(int *)(pcVar8 + 0x2c489c);" (assignment_expression "iVar6 = *(int *)(pcVar8 + 0x2c489c)" identifier = (pointer_expression "*(int *)(pcVar8 + 0x2c489c)" * (cast_expression "(int *)(pcVar8 + 0x2c489c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x2c489c)" ( (binary_expression "pcVar8 + 0x2c489c" identifier + number_literal) ))))) ;) (if_statement "if (puVar4[1] == 0) {\n      iVar1 = 2;\n      goto LAB_001fd0dc;\n    }" if (parenthesized_expression "(puVar4[1] == 0)" ( (binary_expression "puVar4[1] == 0" (subscript_expression "puVar4[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      iVar1 = 2;\n      goto LAB_001fd0dc;\n    }" { (expression_statement "iVar1 = 2;" (assignment_expression "iVar1 = 2" identifier = number_literal) ;) (goto_statement "goto LAB_001fd0dc;" goto statement_identifier ;) })) (if_statement "if (*(char *)*puVar4 == '\0') {\n      iVar1 = 2;\n      if (((char *)*puVar4)[1] == '\0') {\n        iVar6 = *(int *)(pcVar8 + 0x2c489c);\n        goto LAB_001fd0dc;\n      }\n    }\n    else {\n      iVar1 = 2;\n    }" if (parenthesized_expression "(*(char *)*puVar4 == '\0')" ( (binary_expression "*(char *)*puVar4 == '\0'" (pointer_expression "*(char *)*puVar4" * (cast_expression "(char *)*puVar4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar1 = 2;\n      if (((char *)*puVar4)[1] == '\0') {\n        iVar6 = *(int *)(pcVar8 + 0x2c489c);\n        goto LAB_001fd0dc;\n      }\n    }" { (expression_statement "iVar1 = 2;" (assignment_expression "iVar1 = 2" identifier = number_literal) ;) (if_statement "if (((char *)*puVar4)[1] == '\0') {\n        iVar6 = *(int *)(pcVar8 + 0x2c489c);\n        goto LAB_001fd0dc;\n      }" if (parenthesized_expression "(((char *)*puVar4)[1] == '\0')" ( (binary_expression "((char *)*puVar4)[1] == '\0'" (subscript_expression "((char *)*puVar4)[1]" (parenthesized_expression "((char *)*puVar4)" ( (cast_expression "(char *)*puVar4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier)) )) [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        iVar6 = *(int *)(pcVar8 + 0x2c489c);\n        goto LAB_001fd0dc;\n      }" { (expression_statement "iVar6 = *(int *)(pcVar8 + 0x2c489c);" (assignment_expression "iVar6 = *(int *)(pcVar8 + 0x2c489c)" identifier = (pointer_expression "*(int *)(pcVar8 + 0x2c489c)" * (cast_expression "(int *)(pcVar8 + 0x2c489c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x2c489c)" ( (binary_expression "pcVar8 + 0x2c489c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_001fd0dc;" goto statement_identifier ;) })) }) (else_clause "else {\n      iVar1 = 2;\n    }" else (compound_statement "{\n      iVar1 = 2;\n    }" { (expression_statement "iVar1 = 2;" (assignment_expression "iVar1 = 2" identifier = number_literal) ;) }))) (labeled_statement "LAB_001fd168:\n    if ((uint)puVar4[6] < 5) {\n                    /* WARNING: Could not recover jumptable at 0x001fd18c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4) + 0x2cc1c0))();\n      return;\n    }" statement_identifier : (if_statement "if ((uint)puVar4[6] < 5) {\n                    /* WARNING: Could not recover jumptable at 0x001fd18c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4) + 0x2cc1c0))();\n      return;\n    }" if (parenthesized_expression "((uint)puVar4[6] < 5)" ( (binary_expression "(uint)puVar4[6] < 5" (cast_expression "(uint)puVar4[6]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar4[6]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x001fd18c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4) + 0x2cc1c0))();\n      return;\n    }" { comment comment (expression_statement "(*(pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4) + 0x2cc1c0))();" (call_expression "(*(pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4) + 0x2cc1c0))()" (parenthesized_expression "(*(pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4) + 0x2cc1c0))" ( (pointer_expression "*(pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4) + 0x2cc1c0)" * (parenthesized_expression "(pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4) + 0x2cc1c0)" ( (binary_expression "pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4) + 0x2cc1c0" (binary_expression "pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4)" identifier + (pointer_expression "*(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4)" * (cast_expression "(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4)" ( (binary_expression "*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4" (binary_expression "*(int *)(pcVar8 + 0x2c489c) + -0x51b0" (pointer_expression "*(int *)(pcVar8 + 0x2c489c)" * (cast_expression "(int *)(pcVar8 + 0x2c489c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x2c489c)" ( (binary_expression "pcVar8 + 0x2c489c" identifier + number_literal) )))) + number_literal) + (binary_expression "puVar4[6] * 4" (subscript_expression "puVar4[6]" identifier [ number_literal ]) * number_literal)) ))))) + number_literal) ))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) }))) (expression_statement "uVar2 = 0x81;" (assignment_expression "uVar2 = 0x81" identifier = number_literal) ;) (labeled_statement "LAB_001fd378:\n    pcVar9 = *(code **)(pcVar8 + 0x2c49b0);" statement_identifier : (expression_statement "pcVar9 = *(code **)(pcVar8 + 0x2c49b0);" (assignment_expression "pcVar9 = *(code **)(pcVar8 + 0x2c49b0)" identifier = (pointer_expression "*(code **)(pcVar8 + 0x2c49b0)" * (cast_expression "(code **)(pcVar8 + 0x2c49b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x2c49b0)" ( (binary_expression "pcVar8 + 0x2c49b0" identifier + number_literal) ))))) ;)) (expression_statement "(*pcVar9)(*(int *)(pcVar8 + 0x2c49d0) + 0x6434,uVar2,*(int *)(pcVar8 + 0x2c489c) + -0x5148);" (call_expression "(*pcVar9)(*(int *)(pcVar8 + 0x2c49d0) + 0x6434,uVar2,*(int *)(pcVar8 + 0x2c489c) + -0x5148)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(*(int *)(pcVar8 + 0x2c49d0) + 0x6434,uVar2,*(int *)(pcVar8 + 0x2c489c) + -0x5148)" ( (binary_expression "*(int *)(pcVar8 + 0x2c49d0) + 0x6434" (pointer_expression "*(int *)(pcVar8 + 0x2c49d0)" * (cast_expression "(int *)(pcVar8 + 0x2c49d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x2c49d0)" ( (binary_expression "pcVar8 + 0x2c49d0" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar8 + 0x2c489c) + -0x5148" (pointer_expression "*(int *)(pcVar8 + 0x2c489c)" * (cast_expression "(int *)(pcVar8 + 0x2c489c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x2c489c)" ( (binary_expression "pcVar8 + 0x2c489c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "puVar5 = *(undefined4 **)(pcVar9 + 0x2c45fc);" (assignment_expression "puVar5 = *(undefined4 **)(pcVar9 + 0x2c45fc)" identifier = (pointer_expression "*(undefined4 **)(pcVar9 + 0x2c45fc)" * (cast_expression "(undefined4 **)(pcVar9 + 0x2c45fc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x2c45fc)" ( (binary_expression "pcVar9 + 0x2c45fc" identifier + number_literal) ))))) ;) (expression_statement "iStack_154 = iVar1;" (assignment_expression "iStack_154 = iVar1" identifier = identifier) ;) (expression_statement "pcStack_150 = param_2;" (assignment_expression "pcStack_150 = param_2" identifier = identifier) ;) (expression_statement "uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6468);" (assignment_expression "uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6468)" identifier = (call_expression "(**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6468)" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c88a0))" ( (pointer_expression "**(code **)(pcVar9 + 0x2c88a0)" * (pointer_expression "*(code **)(pcVar9 + 0x2c88a0)" * (cast_expression "(code **)(pcVar9 + 0x2c88a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x2c88a0)" ( (binary_expression "pcVar9 + 0x2c88a0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar9 + 0x2c46c0) + 0x6468)" ( (binary_expression "*(int *)(pcVar9 + 0x2c46c0) + 0x6468" (pointer_expression "*(int *)(pcVar9 + 0x2c46c0)" * (cast_expression "(int *)(pcVar9 + 0x2c46c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x2c46c0)" ( (binary_expression "pcVar9 + 0x2c46c0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);" (call_expression "(**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5)" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c87e0))" ( (pointer_expression "**(code **)(pcVar9 + 0x2c87e0)" * (pointer_expression "*(code **)(pcVar9 + 0x2c87e0)" * (cast_expression "(code **)(pcVar9 + 0x2c87e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x2c87e0)" ( (binary_expression "pcVar9 + 0x2c87e0" identifier + number_literal) ))))) )) (argument_list "(uVar2,*puVar5)" ( identifier , (pointer_expression "*puVar5" * identifier) ))) ;) (expression_statement "iVar1 = *(int *)(pcVar9 + 0x2c51dc);" (assignment_expression "iVar1 = *(int *)(pcVar9 + 0x2c51dc)" identifier = (pointer_expression "*(int *)(pcVar9 + 0x2c51dc)" * (cast_expression "(int *)(pcVar9 + 0x2c51dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x2c51dc)" ( (binary_expression "pcVar9 + 0x2c51dc" identifier + number_literal) ))))) ;) (expression_statement "puVar4 = *(undefined4 **)(iVar1 + -0x42ec);" (assignment_expression "puVar4 = *(undefined4 **)(iVar1 + -0x42ec)" identifier = (pointer_expression "*(undefined4 **)(iVar1 + -0x42ec)" * (cast_expression "(undefined4 **)(iVar1 + -0x42ec)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + -0x42ec)" ( (binary_expression "iVar1 + -0x42ec" identifier + number_literal) ))))) ;) (if_statement "if (puVar4 != *(undefined4 **)(iVar1 + -0x42e8)) {\n      do {\n        this_00 = (One_option *)*puVar4;\n        puVar4 = puVar4 + 1;\n        options::One_option::print(this_00);\n      } while (*(undefined4 **)(iVar1 + -0x42e8) != puVar4);\n    }" if (parenthesized_expression "(puVar4 != *(undefined4 **)(iVar1 + -0x42e8))" ( (binary_expression "puVar4 != *(undefined4 **)(iVar1 + -0x42e8)" identifier != (pointer_expression "*(undefined4 **)(iVar1 + -0x42e8)" * (cast_expression "(undefined4 **)(iVar1 + -0x42e8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + -0x42e8)" ( (binary_expression "iVar1 + -0x42e8" identifier + number_literal) ))))) )) (compound_statement "{\n      do {\n        this_00 = (One_option *)*puVar4;\n        puVar4 = puVar4 + 1;\n        options::One_option::print(this_00);\n      } while (*(undefined4 **)(iVar1 + -0x42e8) != puVar4);\n    }" { (do_statement "do {\n        this_00 = (One_option *)*puVar4;\n        puVar4 = puVar4 + 1;\n        options::One_option::print(this_00);\n      } while (*(undefined4 **)(iVar1 + -0x42e8) != puVar4);" do (compound_statement "{\n        this_00 = (One_option *)*puVar4;\n        puVar4 = puVar4 + 1;\n        options::One_option::print(this_00);\n      }" { (expression_statement "this_00 = (One_option *)*puVar4;" (assignment_expression "this_00 = (One_option *)*puVar4" identifier = (cast_expression "(One_option *)*puVar4" ( (type_descriptor "One_option *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) ;) (expression_statement "puVar4 = puVar4 + 1;" (assignment_expression "puVar4 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) (labeled_statement "options::One_option::print(this_00);" statement_identifier : (ERROR ":" :) (labeled_statement "One_option::print(this_00);" statement_identifier : (ERROR ":" :) (expression_statement "print(this_00);" (call_expression "print(this_00)" identifier (argument_list "(this_00)" ( identifier ))) ;))) }) while (parenthesized_expression "(*(undefined4 **)(iVar1 + -0x42e8) != puVar4)" ( (binary_expression "*(undefined4 **)(iVar1 + -0x42e8) != puVar4" (pointer_expression "*(undefined4 **)(iVar1 + -0x42e8)" * (cast_expression "(undefined4 **)(iVar1 + -0x42e8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + -0x42e8)" ( (binary_expression "iVar1 + -0x42e8" identifier + number_literal) )))) != identifier) )) ;) })) (expression_statement "uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6490);" (assignment_expression "uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6490)" identifier = (call_expression "(**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6490)" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c88a0))" ( (pointer_expression "**(code **)(pcVar9 + 0x2c88a0)" * (pointer_expression "*(code **)(pcVar9 + 0x2c88a0)" * (cast_expression "(code **)(pcVar9 + 0x2c88a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x2c88a0)" ( (binary_expression "pcVar9 + 0x2c88a0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar9 + 0x2c46c0) + 0x6490)" ( (binary_expression "*(int *)(pcVar9 + 0x2c46c0) + 0x6490" (pointer_expression "*(int *)(pcVar9 + 0x2c46c0)" * (cast_expression "(int *)(pcVar9 + 0x2c46c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x2c46c0)" ( (binary_expression "pcVar9 + 0x2c46c0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);" (call_expression "(**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5)" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c87e0))" ( (pointer_expression "**(code **)(pcVar9 + 0x2c87e0)" * (pointer_expression "*(code **)(pcVar9 + 0x2c87e0)" * (cast_expression "(code **)(pcVar9 + 0x2c87e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x2c87e0)" ( (binary_expression "pcVar9 + 0x2c87e0" identifier + number_literal) ))))) )) (argument_list "(uVar2,*puVar5)" ( identifier , (pointer_expression "*puVar5" * identifier) ))) ;) (expression_statement "puStack_168 = (undefined4 *)0x0;" (assignment_expression "puStack_168 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puStack_164 = (undefined4 *)0x0;" (assignment_expression "puStack_164 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uStack_160 = 0;" (assignment_expression "uStack_160 = 0" identifier = number_literal) ;) (expression_statement "(**(code **)(pcVar9 + 0x2c51c0))(&puStack_168);" (call_expression "(**(code **)(pcVar9 + 0x2c51c0))(&puStack_168)" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c51c0))" ( (pointer_expression "**(code **)(pcVar9 + 0x2c51c0)" * (pointer_expression "*(code **)(pcVar9 + 0x2c51c0)" * (cast_expression "(code **)(pcVar9 + 0x2c51c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x2c51c0)" ( (binary_expression "pcVar9 + 0x2c51c0" identifier + number_literal) ))))) )) (argument_list "(&puStack_168)" ( (pointer_expression "&puStack_168" & identifier) ))) ;) (if_statement "if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar9 + 0x2c46c0);\n      puVar4 = puStack_168;\n      do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);\n    }" if (parenthesized_expression "(puStack_168 != puStack_164)" ( (binary_expression "puStack_168 != puStack_164" identifier != identifier) )) (compound_statement "{\n      iVar1 = *(int *)(pcVar9 + 0x2c46c0);\n      puVar4 = puStack_168;\n      do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);\n    }" { (expression_statement "iVar1 = *(int *)(pcVar9 + 0x2c46c0);" (assignment_expression "iVar1 = *(int *)(pcVar9 + 0x2c46c0)" identifier = (pointer_expression "*(int *)(pcVar9 + 0x2c46c0)" * (cast_expression "(int *)(pcVar9 + 0x2c46c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x2c46c0)" ( (binary_expression "pcVar9 + 0x2c46c0" identifier + number_literal) ))))) ;) (expression_statement "puVar4 = puStack_168;" (assignment_expression "puVar4 = puStack_168" identifier = identifier) ;) (do_statement "do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);" do (compound_statement "{\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      }" { (expression_statement "(**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);" (call_expression "(**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4)" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c87e0))" ( (pointer_expression "**(code **)(pcVar9 + 0x2c87e0)" * (pointer_expression "*(code **)(pcVar9 + 0x2c87e0)" * (cast_expression "(code **)(pcVar9 + 0x2c87e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x2c87e0)" ( (binary_expression "pcVar9 + 0x2c87e0" identifier + number_literal) ))))) )) (argument_list "(iVar1 + 0x653c,*puVar4)" ( (binary_expression "iVar1 + 0x653c" identifier + number_literal) , (pointer_expression "*puVar4" * identifier) ))) ;) (expression_statement "puVar4 = puVar4 + 1;" (assignment_expression "puVar4 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puStack_164 != puVar4)" ( (binary_expression "puStack_164 != puVar4" identifier != identifier) )) ;) })) (expression_statement "(**(code **)(pcVar9 + 0x2c8900))(10);" (call_expression "(**(code **)(pcVar9 + 0x2c8900))(10)" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c8900))" ( (pointer_expression "**(code **)(pcVar9 + 0x2c8900)" * (pointer_expression "*(code **)(pcVar9 + 0x2c8900)" * (cast_expression "(code **)(pcVar9 + 0x2c8900)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x2c8900)" ( (binary_expression "pcVar9 + 0x2c8900" identifier + number_literal) ))))) )) (argument_list "(10)" ( number_literal ))) ;) (expression_statement "uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64a8);" (assignment_expression "uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64a8)" identifier = (call_expression "(**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64a8)" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c88a0))" ( (pointer_expression "**(code **)(pcVar9 + 0x2c88a0)" * (pointer_expression "*(code **)(pcVar9 + 0x2c88a0)" * (cast_expression "(code **)(pcVar9 + 0x2c88a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x2c88a0)" ( (binary_expression "pcVar9 + 0x2c88a0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar9 + 0x2c46c0) + 0x64a8)" ( (binary_expression "*(int *)(pcVar9 + 0x2c46c0) + 0x64a8" (pointer_expression "*(int *)(pcVar9 + 0x2c46c0)" * (cast_expression "(int *)(pcVar9 + 0x2c46c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x2c46c0)" ( (binary_expression "pcVar9 + 0x2c46c0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);" (call_expression "(**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5)" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c87e0))" ( (pointer_expression "**(code **)(pcVar9 + 0x2c87e0)" * (pointer_expression "*(code **)(pcVar9 + 0x2c87e0)" * (cast_expression "(code **)(pcVar9 + 0x2c87e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x2c87e0)" ( (binary_expression "pcVar9 + 0x2c87e0" identifier + number_literal) ))))) )) (argument_list "(uVar2,*puVar5)" ( identifier , (pointer_expression "*puVar5" * identifier) ))) ;) (if_statement "if (puStack_168 != puStack_164) {\n      puStack_164 = puStack_168;\n    }" if (parenthesized_expression "(puStack_168 != puStack_164)" ( (binary_expression "puStack_168 != puStack_164" identifier != identifier) )) (compound_statement "{\n      puStack_164 = puStack_168;\n    }" { (expression_statement "puStack_164 = puStack_168;" (assignment_expression "puStack_164 = puStack_168" identifier = identifier) ;) })) (expression_statement "(**(code **)(pcVar9 + 0x2c51c4))(&puStack_168);" (call_expression "(**(code **)(pcVar9 + 0x2c51c4))(&puStack_168)" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c51c4))" ( (pointer_expression "**(code **)(pcVar9 + 0x2c51c4)" * (pointer_expression "*(code **)(pcVar9 + 0x2c51c4)" * (cast_expression "(code **)(pcVar9 + 0x2c51c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x2c51c4)" ( (binary_expression "pcVar9 + 0x2c51c4" identifier + number_literal) ))))) )) (argument_list "(&puStack_168)" ( (pointer_expression "&puStack_168" & identifier) ))) ;) (if_statement "if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar9 + 0x2c46c0);\n      puVar4 = puStack_168;\n      do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);\n    }" if (parenthesized_expression "(puStack_168 != puStack_164)" ( (binary_expression "puStack_168 != puStack_164" identifier != identifier) )) (compound_statement "{\n      iVar1 = *(int *)(pcVar9 + 0x2c46c0);\n      puVar4 = puStack_168;\n      do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);\n    }" { (expression_statement "iVar1 = *(int *)(pcVar9 + 0x2c46c0);" (assignment_expression "iVar1 = *(int *)(pcVar9 + 0x2c46c0)" identifier = (pointer_expression "*(int *)(pcVar9 + 0x2c46c0)" * (cast_expression "(int *)(pcVar9 + 0x2c46c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x2c46c0)" ( (binary_expression "pcVar9 + 0x2c46c0" identifier + number_literal) ))))) ;) (expression_statement "puVar4 = puStack_168;" (assignment_expression "puVar4 = puStack_168" identifier = identifier) ;) (do_statement "do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);" do (compound_statement "{\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      }" { (expression_statement "(**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);" (call_expression "(**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4)" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c87e0))" ( (pointer_expression "**(code **)(pcVar9 + 0x2c87e0)" * (pointer_expression "*(code **)(pcVar9 + 0x2c87e0)" * (cast_expression "(code **)(pcVar9 + 0x2c87e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x2c87e0)" ( (binary_expression "pcVar9 + 0x2c87e0" identifier + number_literal) ))))) )) (argument_list "(iVar1 + 0x653c,*puVar4)" ( (binary_expression "iVar1 + 0x653c" identifier + number_literal) , (pointer_expression "*puVar4" * identifier) ))) ;) (expression_statement "puVar4 = puVar4 + 1;" (assignment_expression "puVar4 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puStack_164 != puVar4)" ( (binary_expression "puStack_164 != puVar4" identifier != identifier) )) ;) })) (expression_statement "(**(code **)(pcVar9 + 0x2c8900))(10);" (call_expression "(**(code **)(pcVar9 + 0x2c8900))(10)" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c8900))" ( (pointer_expression "**(code **)(pcVar9 + 0x2c8900)" * (pointer_expression "*(code **)(pcVar9 + 0x2c8900)" * (cast_expression "(code **)(pcVar9 + 0x2c8900)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x2c8900)" ( (binary_expression "pcVar9 + 0x2c8900" identifier + number_literal) ))))) )) (argument_list "(10)" ( number_literal ))) ;) (expression_statement "uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64c4);" (assignment_expression "uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64c4)" identifier = (call_expression "(**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64c4)" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c88a0))" ( (pointer_expression "**(code **)(pcVar9 + 0x2c88a0)" * (pointer_expression "*(code **)(pcVar9 + 0x2c88a0)" * (cast_expression "(code **)(pcVar9 + 0x2c88a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x2c88a0)" ( (binary_expression "pcVar9 + 0x2c88a0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar9 + 0x2c46c0) + 0x64c4)" ( (binary_expression "*(int *)(pcVar9 + 0x2c46c0) + 0x64c4" (pointer_expression "*(int *)(pcVar9 + 0x2c46c0)" * (cast_expression "(int *)(pcVar9 + 0x2c46c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x2c46c0)" ( (binary_expression "pcVar9 + 0x2c46c0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar9 + 0x2c87e0))(uVar2,*(int *)(pcVar9 + 0x2c46c0) + 0x64d8);" (call_expression "(**(code **)(pcVar9 + 0x2c87e0))(uVar2,*(int *)(pcVar9 + 0x2c46c0) + 0x64d8)" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c87e0))" ( (pointer_expression "**(code **)(pcVar9 + 0x2c87e0)" * (pointer_expression "*(code **)(pcVar9 + 0x2c87e0)" * (cast_expression "(code **)(pcVar9 + 0x2c87e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x2c87e0)" ( (binary_expression "pcVar9 + 0x2c87e0" identifier + number_literal) ))))) )) (argument_list "(uVar2,*(int *)(pcVar9 + 0x2c46c0) + 0x64d8)" ( identifier , (binary_expression "*(int *)(pcVar9 + 0x2c46c0) + 0x64d8" (pointer_expression "*(int *)(pcVar9 + 0x2c46c0)" * (cast_expression "(int *)(pcVar9 + 0x2c46c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x2c46c0)" ( (binary_expression "pcVar9 + 0x2c46c0" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (puStack_168 != (undefined4 *)0x0) {\n      (**(code **)(pcVar9 + 0x2c3f6c))();\n    }" if (parenthesized_expression "(puStack_168 != (undefined4 *)0x0)" ( (binary_expression "puStack_168 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (**(code **)(pcVar9 + 0x2c3f6c))();\n    }" { (expression_statement "(**(code **)(pcVar9 + 0x2c3f6c))();" (call_expression "(**(code **)(pcVar9 + 0x2c3f6c))()" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c3f6c))" ( (pointer_expression "**(code **)(pcVar9 + 0x2c3f6c)" * (pointer_expression "*(code **)(pcVar9 + 0x2c3f6c)" * (cast_expression "(code **)(pcVar9 + 0x2c3f6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x2c3f6c)" ( (binary_expression "pcVar9 + 0x2c3f6c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })) (expression_statement "iVar1 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x6430);" (assignment_expression "iVar1 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x6430)" identifier = (call_expression "(**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x6430)" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8af0))" ( (pointer_expression "**(code **)(pcVar8 + 0x2c8af0)" * (pointer_expression "*(code **)(pcVar8 + 0x2c8af0)" * (cast_expression "(code **)(pcVar8 + 0x2c8af0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x2c8af0)" ( (binary_expression "pcVar8 + 0x2c8af0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar8 + 0x2c49d0) + 0x6430)" ( (binary_expression "*(int *)(pcVar8 + 0x2c49d0) + 0x6430" (pointer_expression "*(int *)(pcVar8 + 0x2c49d0)" * (cast_expression "(int *)(pcVar8 + 0x2c49d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x2c49d0)" ( (binary_expression "pcVar8 + 0x2c49d0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar1 = iVar1 + 2;" (assignment_expression "iVar1 = iVar1 + 2" identifier = (binary_expression "iVar1 + 2" identifier + number_literal)) ;) (if_statement "if (puVar4[10] != 0) {\n    uVar2 = 0x6a;\n    if (puVar4[6] == 4) goto LAB_001fd378;\n    uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(puVar4[10],0x6a);\n    iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x653c,uVar2);\n    iVar1 = iVar1 + iVar6;\n  }" if (parenthesized_expression "(puVar4[10] != 0)" ( (binary_expression "puVar4[10] != 0" (subscript_expression "puVar4[10]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    uVar2 = 0x6a;\n    if (puVar4[6] == 4) goto LAB_001fd378;\n    uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(puVar4[10],0x6a);\n    iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x653c,uVar2);\n    iVar1 = iVar1 + iVar6;\n  }" { (expression_statement "uVar2 = 0x6a;" (assignment_expression "uVar2 = 0x6a" identifier = number_literal) ;) (if_statement "if (puVar4[6] == 4) goto LAB_001fd378;" if (parenthesized_expression "(puVar4[6] == 4)" ( (binary_expression "puVar4[6] == 4" (subscript_expression "puVar4[6]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_001fd378;" goto statement_identifier ;)) (expression_statement "uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(puVar4[10],0x6a);" (assignment_expression "uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(puVar4[10],0x6a)" identifier = (call_expression "(**(code **)(pcVar8 + 0x2c8bb0))(puVar4[10],0x6a)" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8bb0))" ( (pointer_expression "**(code **)(pcVar8 + 0x2c8bb0)" * (pointer_expression "*(code **)(pcVar8 + 0x2c8bb0)" * (cast_expression "(code **)(pcVar8 + 0x2c8bb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x2c8bb0)" ( (binary_expression "pcVar8 + 0x2c8bb0" identifier + number_literal) ))))) )) (argument_list "(puVar4[10],0x6a)" ( (subscript_expression "puVar4[10]" identifier [ number_literal ]) , number_literal )))) ;) (expression_statement "iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x653c,uVar2);" (assignment_expression "iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x653c,uVar2)" identifier = (call_expression "(**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x653c,uVar2)" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8af0))" ( (pointer_expression "**(code **)(pcVar8 + 0x2c8af0)" * (pointer_expression "*(code **)(pcVar8 + 0x2c8af0)" * (cast_expression "(code **)(pcVar8 + 0x2c8af0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x2c8af0)" ( (binary_expression "pcVar8 + 0x2c8af0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar8 + 0x2c49d0) + 0x653c,uVar2)" ( (binary_expression "*(int *)(pcVar8 + 0x2c49d0) + 0x653c" (pointer_expression "*(int *)(pcVar8 + 0x2c49d0)" * (cast_expression "(int *)(pcVar8 + 0x2c49d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x2c49d0)" ( (binary_expression "pcVar8 + 0x2c49d0" identifier + number_literal) )))) + number_literal) , identifier )))) ;) (expression_statement "iVar1 = iVar1 + iVar6;" (assignment_expression "iVar1 = iVar1 + iVar6" identifier = (binary_expression "iVar1 + iVar6" identifier + identifier)) ;) })) (expression_statement "iVar6 = *(int *)(pcVar8 + 0x2c489c);" (assignment_expression "iVar6 = *(int *)(pcVar8 + 0x2c489c)" identifier = (pointer_expression "*(int *)(pcVar8 + 0x2c489c)" * (cast_expression "(int *)(pcVar8 + 0x2c489c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x2c489c)" ( (binary_expression "pcVar8 + 0x2c489c" identifier + number_literal) ))))) ;) (if_statement "if (puVar4[1] != 0) {\n    if ((*(char *)*puVar4 != *(char *)(puVar4 + 7)) || (((char *)*puVar4)[1] != '\0')) {\n      iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x644c);\n      iVar1 = iVar1 + iVar6;\n      goto LAB_001fd168;\n    }\n    iVar6 = *(int *)(pcVar8 + 0x2c489c);\n  }" if (parenthesized_expression "(puVar4[1] != 0)" ( (binary_expression "puVar4[1] != 0" (subscript_expression "puVar4[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    if ((*(char *)*puVar4 != *(char *)(puVar4 + 7)) || (((char *)*puVar4)[1] != '\0')) {\n      iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x644c);\n      iVar1 = iVar1 + iVar6;\n      goto LAB_001fd168;\n    }\n    iVar6 = *(int *)(pcVar8 + 0x2c489c);\n  }" { (if_statement "if ((*(char *)*puVar4 != *(char *)(puVar4 + 7)) || (((char *)*puVar4)[1] != '\0')) {\n      iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x644c);\n      iVar1 = iVar1 + iVar6;\n      goto LAB_001fd168;\n    }" if (parenthesized_expression "((*(char *)*puVar4 != *(char *)(puVar4 + 7)) || (((char *)*puVar4)[1] != '\0'))" ( (binary_expression "(*(char *)*puVar4 != *(char *)(puVar4 + 7)) || (((char *)*puVar4)[1] != '\0')" (parenthesized_expression "(*(char *)*puVar4 != *(char *)(puVar4 + 7))" ( (binary_expression "*(char *)*puVar4 != *(char *)(puVar4 + 7)" (pointer_expression "*(char *)*puVar4" * (cast_expression "(char *)*puVar4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) != (pointer_expression "*(char *)(puVar4 + 7)" * (cast_expression "(char *)(puVar4 + 7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 7)" ( (binary_expression "puVar4 + 7" identifier + number_literal) ))))) )) || (parenthesized_expression "(((char *)*puVar4)[1] != '\0')" ( (binary_expression "((char *)*puVar4)[1] != '\0'" (subscript_expression "((char *)*puVar4)[1]" (parenthesized_expression "((char *)*puVar4)" ( (cast_expression "(char *)*puVar4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier)) )) [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x644c);\n      iVar1 = iVar1 + iVar6;\n      goto LAB_001fd168;\n    }" { (expression_statement "iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x644c);" (assignment_expression "iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x644c)" identifier = (call_expression "(**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x644c)" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8af0))" ( (pointer_expression "**(code **)(pcVar8 + 0x2c8af0)" * (pointer_expression "*(code **)(pcVar8 + 0x2c8af0)" * (cast_expression "(code **)(pcVar8 + 0x2c8af0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x2c8af0)" ( (binary_expression "pcVar8 + 0x2c8af0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar8 + 0x2c49d0) + 0x644c)" ( (binary_expression "*(int *)(pcVar8 + 0x2c49d0) + 0x644c" (pointer_expression "*(int *)(pcVar8 + 0x2c49d0)" * (cast_expression "(int *)(pcVar8 + 0x2c49d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x2c49d0)" ( (binary_expression "pcVar8 + 0x2c49d0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar1 = iVar1 + iVar6;" (assignment_expression "iVar1 = iVar1 + iVar6" identifier = (binary_expression "iVar1 + iVar6" identifier + identifier)) ;) (goto_statement "goto LAB_001fd168;" goto statement_identifier ;) })) (expression_statement "iVar6 = *(int *)(pcVar8 + 0x2c489c);" (assignment_expression "iVar6 = *(int *)(pcVar8 + 0x2c489c)" identifier = (pointer_expression "*(int *)(pcVar8 + 0x2c489c)" * (cast_expression "(int *)(pcVar8 + 0x2c489c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x2c489c)" ( (binary_expression "pcVar8 + 0x2c489c" identifier + number_literal) ))))) ;) })) (if_statement "if (0x1d < iVar1) {\n    iVar1 = 0;\n    (**(code **)(pcVar8 + 0x2c8c10))(10);\n  }" if (parenthesized_expression "(0x1d < iVar1)" ( (binary_expression "0x1d < iVar1" number_literal < identifier) )) (compound_statement "{\n    iVar1 = 0;\n    (**(code **)(pcVar8 + 0x2c8c10))(10);\n  }" { (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) (expression_statement "(**(code **)(pcVar8 + 0x2c8c10))(10);" (call_expression "(**(code **)(pcVar8 + 0x2c8c10))(10)" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8c10))" ( (pointer_expression "**(code **)(pcVar8 + 0x2c8c10)" * (pointer_expression "*(code **)(pcVar8 + 0x2c8c10)" * (cast_expression "(code **)(pcVar8 + 0x2c8c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x2c8c10)" ( (binary_expression "pcVar8 + 0x2c8c10" identifier + number_literal) ))))) )) (argument_list "(10)" ( number_literal ))) ;) })) (labeled_statement "LAB_001fd0dc:\n  puVar5 = *(undefined4 **)(pcVar8 + 0x2c8a68);" statement_identifier : (expression_statement "puVar5 = *(undefined4 **)(pcVar8 + 0x2c8a68);" (assignment_expression "puVar5 = *(undefined4 **)(pcVar8 + 0x2c8a68)" identifier = (pointer_expression "*(undefined4 **)(pcVar8 + 0x2c8a68)" * (cast_expression "(undefined4 **)(pcVar8 + 0x2c8a68)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x2c8a68)" ( (binary_expression "pcVar8 + 0x2c8a68" identifier + number_literal) ))))) ;)) (do_statement "do {\n    iVar1 = iVar1 + 1;\n    (**(code **)(pcVar8 + 0x2c8a4c))(0x20,*puVar5);\n  } while (iVar1 != 0x1e);" do (compound_statement "{\n    iVar1 = iVar1 + 1;\n    (**(code **)(pcVar8 + 0x2c8a4c))(0x20,*puVar5);\n  }" { (expression_statement "iVar1 = iVar1 + 1;" (assignment_expression "iVar1 = iVar1 + 1" identifier = (binary_expression "iVar1 + 1" identifier + number_literal)) ;) (expression_statement "(**(code **)(pcVar8 + 0x2c8a4c))(0x20,*puVar5);" (call_expression "(**(code **)(pcVar8 + 0x2c8a4c))(0x20,*puVar5)" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8a4c))" ( (pointer_expression "**(code **)(pcVar8 + 0x2c8a4c)" * (pointer_expression "*(code **)(pcVar8 + 0x2c8a4c)" * (cast_expression "(code **)(pcVar8 + 0x2c8a4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x2c8a4c)" ( (binary_expression "pcVar8 + 0x2c8a4c" identifier + number_literal) ))))) )) (argument_list "(0x20,*puVar5)" ( number_literal , (pointer_expression "*puVar5" * identifier) ))) ;) }) while (parenthesized_expression "(iVar1 != 0x1e)" ( (binary_expression "iVar1 != 0x1e" identifier != number_literal) )) ;) (expression_statement "uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(puVar4[9]);" (assignment_expression "uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(puVar4[9])" identifier = (call_expression "(**(code **)(pcVar8 + 0x2c8bb0))(puVar4[9])" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8bb0))" ( (pointer_expression "**(code **)(pcVar8 + 0x2c8bb0)" * (pointer_expression "*(code **)(pcVar8 + 0x2c8bb0)" * (cast_expression "(code **)(pcVar8 + 0x2c8bb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x2c8bb0)" ( (binary_expression "pcVar8 + 0x2c8bb0" identifier + number_literal) ))))) )) (argument_list "(puVar4[9])" ( (subscript_expression "puVar4[9]" identifier [ number_literal ]) )))) ;) (expression_statement "(**(code **)(pcVar8 + 0x2c8af0))(iVar6 + 0xec4,uVar2);" (call_expression "(**(code **)(pcVar8 + 0x2c8af0))(iVar6 + 0xec4,uVar2)" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8af0))" ( (pointer_expression "**(code **)(pcVar8 + 0x2c8af0)" * (pointer_expression "*(code **)(pcVar8 + 0x2c8af0)" * (cast_expression "(code **)(pcVar8 + 0x2c8af0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x2c8af0)" ( (binary_expression "pcVar8 + 0x2c8af0" identifier + number_literal) ))))) )) (argument_list "(iVar6 + 0xec4,uVar2)" ( (binary_expression "iVar6 + 0xec4" identifier + number_literal) , identifier ))) ;) (if_statement "if (*(char *)(puVar4 + 0xd) == '\0') {\n                    /* WARNING: Could not recover jumptable at 0x001fd14c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(pcVar8 + 0x2c8c10))(10);\n    return;\n  }" if (parenthesized_expression "(*(char *)(puVar4 + 0xd) == '\0')" ( (binary_expression "*(char *)(puVar4 + 0xd) == '\0'" (pointer_expression "*(char *)(puVar4 + 0xd)" * (cast_expression "(char *)(puVar4 + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 0xd)" ( (binary_expression "puVar4 + 0xd" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x001fd14c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(pcVar8 + 0x2c8c10))(10);\n    return;\n  }" { comment comment (expression_statement "(**(code **)(pcVar8 + 0x2c8c10))(10);" (call_expression "(**(code **)(pcVar8 + 0x2c8c10))(10)" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8c10))" ( (pointer_expression "**(code **)(pcVar8 + 0x2c8c10)" * (pointer_expression "*(code **)(pcVar8 + 0x2c8c10)" * (cast_expression "(code **)(pcVar8 + 0x2c8c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x2c8c10)" ( (binary_expression "pcVar8 + 0x2c8c10" identifier + number_literal) ))))) )) (argument_list "(10)" ( number_literal ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(*(int *)(pcVar8 + 0x2c49d0) + 0x6460);" (assignment_expression "uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(*(int *)(pcVar8 + 0x2c49d0) + 0x6460)" identifier = (call_expression "(**(code **)(pcVar8 + 0x2c8bb0))(*(int *)(pcVar8 + 0x2c49d0) + 0x6460)" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8bb0))" ( (pointer_expression "**(code **)(pcVar8 + 0x2c8bb0)" * (pointer_expression "*(code **)(pcVar8 + 0x2c8bb0)" * (cast_expression "(code **)(pcVar8 + 0x2c8bb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x2c8bb0)" ( (binary_expression "pcVar8 + 0x2c8bb0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar8 + 0x2c49d0) + 0x6460)" ( (binary_expression "*(int *)(pcVar8 + 0x2c49d0) + 0x6460" (pointer_expression "*(int *)(pcVar8 + 0x2c49d0)" * (cast_expression "(int *)(pcVar8 + 0x2c49d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x2c49d0)" ( (binary_expression "pcVar8 + 0x2c49d0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c489c) + -0x1e94,uVar2);" (call_expression "(**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c489c) + -0x1e94,uVar2)" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8af0))" ( (pointer_expression "**(code **)(pcVar8 + 0x2c8af0)" * (pointer_expression "*(code **)(pcVar8 + 0x2c8af0)" * (cast_expression "(code **)(pcVar8 + 0x2c8af0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x2c8af0)" ( (binary_expression "pcVar8 + 0x2c8af0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar8 + 0x2c489c) + -0x1e94,uVar2)" ( (binary_expression "*(int *)(pcVar8 + 0x2c489c) + -0x1e94" (pointer_expression "*(int *)(pcVar8 + 0x2c489c)" * (cast_expression "(int *)(pcVar8 + 0x2c489c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x2c489c)" ( (binary_expression "pcVar8 + 0x2c489c" identifier + number_literal) )))) + number_literal) , identifier ))) ;) comment comment (expression_statement "(**(code **)(pcVar8 + 0x2c8c10))(10);" (call_expression "(**(code **)(pcVar8 + 0x2c8c10))(10)" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8c10))" ( (pointer_expression "**(code **)(pcVar8 + 0x2c8c10)" * (pointer_expression "*(code **)(pcVar8 + 0x2c8c10)" * (cast_expression "(code **)(pcVar8 + 0x2c8c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x2c8c10)" ( (binary_expression "pcVar8 + 0x2c8c10" identifier + number_literal) ))))) )) (argument_list "(10)" ( number_literal ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */\n/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */\n/* WARNING: Struct "Output_section_headers": ignoring overlapping field "layout_" */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Struct "Output_reduced_debug_abbrev_section": ignoring overlapping field "data_" */\n/* WARNING: Struct "Output_reduced_debug_info_section": ignoring overlapping field "data_" */\n/* DWARF original prototype: void parse_dynamic_list(General_options * this, char * param_1, char *\n   arg, Command_line * cmdline) */\n\nvoid __thiscall\ngold::General_options::parse_dynamic_list\n          (General_options *this,char *param_1,char *arg,Command_line *cmdline)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  Input_arguments *pIVar4;\n  pointer pIVar5;\n  One_option *this_00;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  code *pcVar11;\n  undefined4 *puStack_168;\n  undefined4 *puStack_164;\n  undefined4 uStack_160;\n  int iStack_154;\n  char *pcStack_150;\n  \n  iVar1 = (*(code *)PTR_read_dynamic_list_004c2568)(arg,cmdline,&this->dynamic_list_);\n  if (iVar1 != 0) {\n    this->have_dynamic_list_ = true;\n    return;\n  }\n  uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s__s_004c1a50 + 0x6370);\n  puVar9 = PTR_gold_fatal_004c2020;\n  (*(code *)PTR_gold_fatal_004c2020)();\n  uVar3 = (**(code **)(puVar9 + 0x2c8d98))(*(int *)(puVar9 + 0x2c4bb8) + 0x639c);\n  pcVar10 = *(code **)(puVar9 + 0x2c5188);\n  (*pcVar10)(uVar3,uVar2,arg);\n  uVar2 = (**(code **)(pcVar10 + 0x2c8d48))(*(int *)(pcVar10 + 0x2c4b68) + 0x63d0);\n  pcVar10 = *(code **)(pcVar10 + 0x2c5138);\n  (*pcVar10)(uVar2,uVar3);\n  pIVar4 = (Input_arguments *)\n           (**(code **)(pcVar10 + 0x2c8d04))(*(int *)(pcVar10 + 0x2c4b24) + 0x63f4);\n  pcVar10 = *(code **)(pcVar10 + 0x2c50f4);\n  (*pcVar10)();\n  if ((cmdline->inputs_).in_group_ != false) {\n    (cmdline->inputs_).in_group_ = false;\n    return;\n  }\n  iVar1 = *(int *)(pcVar10 + 0x2c55f8) + -0x30d4;\n  Input_arguments::end_group(pIVar4);\n  pIVar4 = (Input_arguments *)\n           (**(code **)(iVar1 + 0x2c8c90))(*(int *)(FUN_002c4ab0 + iVar1) + 0x6414);\n  pcVar10 = *(code **)(iVar1 + 0x2c5080);\n  (*pcVar10)();\n  if ((cmdline->inputs_).in_lib_ != false) {\n    (cmdline->inputs_).in_lib_ = false;\n    return;\n  }\n  iVar1 = *(int *)(pcVar10 + 0x2c5584) + -0x3060;\n  Input_arguments::end_lib(pIVar4);\n  if (pIVar4 < (Input_arguments *)0x40000000) {\n    uVar2 = (**(code **)(iVar1 + 0x2c4394))((int)pIVar4 << 2);\n    (**(code **)(iVar1 + 0x2c8c54))(uVar2,0,(int)pIVar4 << 2);\n    return;\n  }\n  pcVar10 = *(code **)(iVar1 + 0x2c4aac);\n  (*pcVar10)();\n  (**(code **)(pcVar10 + 0x2c8af0))(*(int *)(pcVar10 + 0x2c489c) + 0xe80);\n  if (*(char *)&pIVar4[1].input_argument_list_.\n                super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n                _M_impl._M_end_of_storage == '\0') {\n    iVar8 = *(int *)(pcVar10 + 0x2c489c);\n    if ((pIVar4->input_argument_list_).\n        super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.\n        _M_finish == (pointer)0x0) {\n      iVar1 = 2;\n      goto LAB_001fd0dc;\n    }\n    pIVar5 = (pIVar4->input_argument_list_).\n             super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl\n             ._M_start;\n    if (pIVar5->is_file_ == false) {\n      iVar1 = 2;\n      if (pIVar5->field_0x1 == '\0') {\n        iVar8 = *(int *)(pcVar10 + 0x2c489c);\n        goto LAB_001fd0dc;\n      }\n    }\n    else {\n      iVar1 = 2;\n    }\nLAB_001fd168:\n    pIVar5 = pIVar4[1].input_argument_list_.\n             super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl\n             ._M_finish;\n    if (pIVar5 < (pointer)&DAT_00000005) {\n                    /* WARNING: Could not recover jumptable at 0x001fd18c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(pcVar10 + *(int *)(*(int *)(pcVar10 + 0x2c489c) + -0x51b0 + (int)pIVar5 * 4) + 0x2cc1c0))()\n      ;\n      return;\n    }\n    uVar2 = 0x81;\nLAB_001fd378:\n    pcVar11 = *(code **)(pcVar10 + 0x2c49b0);\n    (*pcVar11)(*(int *)(pcVar10 + 0x2c49d0) + 0x6434,uVar2,*(int *)(pcVar10 + 0x2c489c) + -0x5148);\n    puVar7 = *(undefined4 **)(pcVar11 + 0x2c45fc);\n    iStack_154 = iVar1;\n    pcStack_150 = arg;\n    uVar2 = (**(code **)(pcVar11 + 0x2c88a0))(*(int *)(pcVar11 + 0x2c46c0) + 0x6468);\n    (**(code **)(pcVar11 + 0x2c87e0))(uVar2,*puVar7);\n    iVar1 = *(int *)(pcVar11 + 0x2c51dc);\n    puVar6 = *(undefined4 **)(iVar1 + -0x42ec);\n    if (puVar6 != *(undefined4 **)(iVar1 + -0x42e8)) {\n      do {\n        this_00 = (One_option *)*puVar6;\n        puVar6 = puVar6 + 1;\n        gold::options::One_option::print(this_00);\n      } while (*(undefined4 **)(iVar1 + -0x42e8) != puVar6);\n    }\n    uVar2 = (**(code **)(pcVar11 + 0x2c88a0))(*(int *)(pcVar11 + 0x2c46c0) + 0x6490);\n    (**(code **)(pcVar11 + 0x2c87e0))(uVar2,*puVar7);\n    puStack_168 = (undefined4 *)0x0;\n    puStack_164 = (undefined4 *)0x0;\n    uStack_160 = 0;\n    (**(code **)(pcVar11 + 0x2c51c0))(&puStack_168);\n    if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar11 + 0x2c46c0);\n      puVar6 = puStack_168;\n      do {\n        (**(code **)(pcVar11 + 0x2c87e0))(iVar1 + 0x653c,*puVar6);\n        puVar6 = puVar6 + 1;\n      } while (puStack_164 != puVar6);\n    }\n    (**(code **)(pcVar11 + 0x2c8900))(10);\n    uVar2 = (**(code **)(pcVar11 + 0x2c88a0))(*(int *)(pcVar11 + 0x2c46c0) + 0x64a8);\n    (**(code **)(pcVar11 + 0x2c87e0))(uVar2,*puVar7);\n    if (puStack_168 != puStack_164) {\n      puStack_164 = puStack_168;\n    }\n    (**(code **)(pcVar11 + 0x2c51c4))(&puStack_168);\n    if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar11 + 0x2c46c0);\n      puVar6 = puStack_168;\n      do {\n        (**(code **)(pcVar11 + 0x2c87e0))(iVar1 + 0x653c,*puVar6);\n        puVar6 = puVar6 + 1;\n      } while (puStack_164 != puVar6);\n    }\n    (**(code **)(pcVar11 + 0x2c8900))(10);\n    uVar2 = (**(code **)(pcVar11 + 0x2c88a0))(*(int *)(pcVar11 + 0x2c46c0) + 0x64c4);\n    (**(code **)(pcVar11 + 0x2c87e0))(uVar2,*(int *)(pcVar11 + 0x2c46c0) + 0x64d8);\n    if (puStack_168 != (undefined4 *)0x0) {\n      (**(code **)(pcVar11 + 0x2c3f6c))();\n    }\n    return;\n  }\n  iVar1 = (**(code **)(pcVar10 + 0x2c8af0))(*(int *)(pcVar10 + 0x2c49d0) + 0x6430);\n  pIVar5 = pIVar4[2].input_argument_list_.\n           super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.\n           _M_start;\n  iVar1 = iVar1 + 2;\n  if (pIVar5 != (pointer)0x0) {\n    uVar2 = 0x6a;\n    if (pIVar4[1].input_argument_list_.\n        super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.\n        _M_finish == (pointer)&DAT_00000004) goto LAB_001fd378;\n    uVar2 = (**(code **)(pcVar10 + 0x2c8bb0))(pIVar5,0x6a);\n    iVar8 = (**(code **)(pcVar10 + 0x2c8af0))(*(int *)(pcVar10 + 0x2c49d0) + 0x653c,uVar2);\n    iVar1 = iVar1 + iVar8;\n  }\n  iVar8 = *(int *)(pcVar10 + 0x2c489c);\n  if ((pIVar4->input_argument_list_).\n      super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.\n      _M_finish != (pointer)0x0) {\n    pIVar5 = (pIVar4->input_argument_list_).\n             super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl\n             ._M_start;\n    if ((pIVar5->is_file_ !=\n         (bool)*(char *)&pIVar4[1].input_argument_list_.\n                         super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>\n                         ._M_impl._M_end_of_storage) || (pIVar5->field_0x1 != '\0')) {\n      iVar8 = (**(code **)(pcVar10 + 0x2c8af0))(*(int *)(pcVar10 + 0x2c49d0) + 0x644c);\n      iVar1 = iVar1 + iVar8;\n      goto LAB_001fd168;\n    }\n    iVar8 = *(int *)(pcVar10 + 0x2c489c);\n  }\n  if (0x1d < iVar1) {\n    iVar1 = 0;\n    (**(code **)(pcVar10 + 0x2c8c10))(10);\n  }\nLAB_001fd0dc:\n  puVar6 = *(undefined4 **)(pcVar10 + 0x2c8a68);\n  do {\n    iVar1 = iVar1 + 1;\n    (**(code **)(pcVar10 + 0x2c8a4c))(0x20,*puVar6);\n  } while (iVar1 != 0x1e);\n  uVar2 = (**(code **)(pcVar10 + 0x2c8bb0))(pIVar4[1].file_count_);\n  (**(code **)(pcVar10 + 0x2c8af0))(iVar8 + 0xec4,uVar2);\n  if (pIVar4[2].in_group_ == false) {\n                    /* WARNING: Could not recover jumptable at 0x001fd14c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(pcVar10 + 0x2c8c10))(10);\n    return;\n  }\n  uVar2 = (**(code **)(pcVar10 + 0x2c8bb0))(*(int *)(pcVar10 + 0x2c49d0) + 0x6460);\n  (**(code **)(pcVar10 + 0x2c8af0))(*(int *)(pcVar10 + 0x2c489c) + -0x1e94,uVar2);\n                    /* WARNING: Could not recover jumptable at 0x001fd268. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  (**(code **)(pcVar10 + 0x2c8c10))(10);\n  return;\n}\n\n" comment comment comment comment comment comment comment (function_definition "void __thiscall\ngold::General_options::parse_dynamic_list\n          (General_options *this,char *param_1,char *arg,Command_line *cmdline)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  Input_arguments *pIVar4;\n  pointer pIVar5;\n  One_option *this_00;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  code *pcVar11;\n  undefined4 *puStack_168;\n  undefined4 *puStack_164;\n  undefined4 uStack_160;\n  int iStack_154;\n  char *pcStack_150;\n  \n  iVar1 = (*(code *)PTR_read_dynamic_list_004c2568)(arg,cmdline,&this->dynamic_list_);\n  if (iVar1 != 0) {\n    this->have_dynamic_list_ = true;\n    return;\n  }\n  uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s__s_004c1a50 + 0x6370);\n  puVar9 = PTR_gold_fatal_004c2020;\n  (*(code *)PTR_gold_fatal_004c2020)();\n  uVar3 = (**(code **)(puVar9 + 0x2c8d98))(*(int *)(puVar9 + 0x2c4bb8) + 0x639c);\n  pcVar10 = *(code **)(puVar9 + 0x2c5188);\n  (*pcVar10)(uVar3,uVar2,arg);\n  uVar2 = (**(code **)(pcVar10 + 0x2c8d48))(*(int *)(pcVar10 + 0x2c4b68) + 0x63d0);\n  pcVar10 = *(code **)(pcVar10 + 0x2c5138);\n  (*pcVar10)(uVar2,uVar3);\n  pIVar4 = (Input_arguments *)\n           (**(code **)(pcVar10 + 0x2c8d04))(*(int *)(pcVar10 + 0x2c4b24) + 0x63f4);\n  pcVar10 = *(code **)(pcVar10 + 0x2c50f4);\n  (*pcVar10)();\n  if ((cmdline->inputs_).in_group_ != false) {\n    (cmdline->inputs_).in_group_ = false;\n    return;\n  }\n  iVar1 = *(int *)(pcVar10 + 0x2c55f8) + -0x30d4;\n  Input_arguments::end_group(pIVar4);\n  pIVar4 = (Input_arguments *)\n           (**(code **)(iVar1 + 0x2c8c90))(*(int *)(FUN_002c4ab0 + iVar1) + 0x6414);\n  pcVar10 = *(code **)(iVar1 + 0x2c5080);\n  (*pcVar10)();\n  if ((cmdline->inputs_).in_lib_ != false) {\n    (cmdline->inputs_).in_lib_ = false;\n    return;\n  }\n  iVar1 = *(int *)(pcVar10 + 0x2c5584) + -0x3060;\n  Input_arguments::end_lib(pIVar4);\n  if (pIVar4 < (Input_arguments *)0x40000000) {\n    uVar2 = (**(code **)(iVar1 + 0x2c4394))((int)pIVar4 << 2);\n    (**(code **)(iVar1 + 0x2c8c54))(uVar2,0,(int)pIVar4 << 2);\n    return;\n  }\n  pcVar10 = *(code **)(iVar1 + 0x2c4aac);\n  (*pcVar10)();\n  (**(code **)(pcVar10 + 0x2c8af0))(*(int *)(pcVar10 + 0x2c489c) + 0xe80);\n  if (*(char *)&pIVar4[1].input_argument_list_.\n                super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n                _M_impl._M_end_of_storage == '\0') {\n    iVar8 = *(int *)(pcVar10 + 0x2c489c);\n    if ((pIVar4->input_argument_list_).\n        super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.\n        _M_finish == (pointer)0x0) {\n      iVar1 = 2;\n      goto LAB_001fd0dc;\n    }\n    pIVar5 = (pIVar4->input_argument_list_).\n             super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl\n             ._M_start;\n    if (pIVar5->is_file_ == false) {\n      iVar1 = 2;\n      if (pIVar5->field_0x1 == '\0') {\n        iVar8 = *(int *)(pcVar10 + 0x2c489c);\n        goto LAB_001fd0dc;\n      }\n    }\n    else {\n      iVar1 = 2;\n    }\nLAB_001fd168:\n    pIVar5 = pIVar4[1].input_argument_list_.\n             super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl\n             ._M_finish;\n    if (pIVar5 < (pointer)&DAT_00000005) {\n                    /* WARNING: Could not recover jumptable at 0x001fd18c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(pcVar10 + *(int *)(*(int *)(pcVar10 + 0x2c489c) + -0x51b0 + (int)pIVar5 * 4) + 0x2cc1c0))()\n      ;\n      return;\n    }\n    uVar2 = 0x81;\nLAB_001fd378:\n    pcVar11 = *(code **)(pcVar10 + 0x2c49b0);\n    (*pcVar11)(*(int *)(pcVar10 + 0x2c49d0) + 0x6434,uVar2,*(int *)(pcVar10 + 0x2c489c) + -0x5148);\n    puVar7 = *(undefined4 **)(pcVar11 + 0x2c45fc);\n    iStack_154 = iVar1;\n    pcStack_150 = arg;\n    uVar2 = (**(code **)(pcVar11 + 0x2c88a0))(*(int *)(pcVar11 + 0x2c46c0) + 0x6468);\n    (**(code **)(pcVar11 + 0x2c87e0))(uVar2,*puVar7);\n    iVar1 = *(int *)(pcVar11 + 0x2c51dc);\n    puVar6 = *(undefined4 **)(iVar1 + -0x42ec);\n    if (puVar6 != *(undefined4 **)(iVar1 + -0x42e8)) {\n      do {\n        this_00 = (One_option *)*puVar6;\n        puVar6 = puVar6 + 1;\n        gold::options::One_option::print(this_00);\n      } while (*(undefined4 **)(iVar1 + -0x42e8) != puVar6);\n    }\n    uVar2 = (**(code **)(pcVar11 + 0x2c88a0))(*(int *)(pcVar11 + 0x2c46c0) + 0x6490);\n    (**(code **)(pcVar11 + 0x2c87e0))(uVar2,*puVar7);\n    puStack_168 = (undefined4 *)0x0;\n    puStack_164 = (undefined4 *)0x0;\n    uStack_160 = 0;\n    (**(code **)(pcVar11 + 0x2c51c0))(&puStack_168);\n    if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar11 + 0x2c46c0);\n      puVar6 = puStack_168;\n      do {\n        (**(code **)(pcVar11 + 0x2c87e0))(iVar1 + 0x653c,*puVar6);\n        puVar6 = puVar6 + 1;\n      } while (puStack_164 != puVar6);\n    }\n    (**(code **)(pcVar11 + 0x2c8900))(10);\n    uVar2 = (**(code **)(pcVar11 + 0x2c88a0))(*(int *)(pcVar11 + 0x2c46c0) + 0x64a8);\n    (**(code **)(pcVar11 + 0x2c87e0))(uVar2,*puVar7);\n    if (puStack_168 != puStack_164) {\n      puStack_164 = puStack_168;\n    }\n    (**(code **)(pcVar11 + 0x2c51c4))(&puStack_168);\n    if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar11 + 0x2c46c0);\n      puVar6 = puStack_168;\n      do {\n        (**(code **)(pcVar11 + 0x2c87e0))(iVar1 + 0x653c,*puVar6);\n        puVar6 = puVar6 + 1;\n      } while (puStack_164 != puVar6);\n    }\n    (**(code **)(pcVar11 + 0x2c8900))(10);\n    uVar2 = (**(code **)(pcVar11 + 0x2c88a0))(*(int *)(pcVar11 + 0x2c46c0) + 0x64c4);\n    (**(code **)(pcVar11 + 0x2c87e0))(uVar2,*(int *)(pcVar11 + 0x2c46c0) + 0x64d8);\n    if (puStack_168 != (undefined4 *)0x0) {\n      (**(code **)(pcVar11 + 0x2c3f6c))();\n    }\n    return;\n  }\n  iVar1 = (**(code **)(pcVar10 + 0x2c8af0))(*(int *)(pcVar10 + 0x2c49d0) + 0x6430);\n  pIVar5 = pIVar4[2].input_argument_list_.\n           super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.\n           _M_start;\n  iVar1 = iVar1 + 2;\n  if (pIVar5 != (pointer)0x0) {\n    uVar2 = 0x6a;\n    if (pIVar4[1].input_argument_list_.\n        super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.\n        _M_finish == (pointer)&DAT_00000004) goto LAB_001fd378;\n    uVar2 = (**(code **)(pcVar10 + 0x2c8bb0))(pIVar5,0x6a);\n    iVar8 = (**(code **)(pcVar10 + 0x2c8af0))(*(int *)(pcVar10 + 0x2c49d0) + 0x653c,uVar2);\n    iVar1 = iVar1 + iVar8;\n  }\n  iVar8 = *(int *)(pcVar10 + 0x2c489c);\n  if ((pIVar4->input_argument_list_).\n      super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.\n      _M_finish != (pointer)0x0) {\n    pIVar5 = (pIVar4->input_argument_list_).\n             super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl\n             ._M_start;\n    if ((pIVar5->is_file_ !=\n         (bool)*(char *)&pIVar4[1].input_argument_list_.\n                         super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>\n                         ._M_impl._M_end_of_storage) || (pIVar5->field_0x1 != '\0')) {\n      iVar8 = (**(code **)(pcVar10 + 0x2c8af0))(*(int *)(pcVar10 + 0x2c49d0) + 0x644c);\n      iVar1 = iVar1 + iVar8;\n      goto LAB_001fd168;\n    }\n    iVar8 = *(int *)(pcVar10 + 0x2c489c);\n  }\n  if (0x1d < iVar1) {\n    iVar1 = 0;\n    (**(code **)(pcVar10 + 0x2c8c10))(10);\n  }\nLAB_001fd0dc:\n  puVar6 = *(undefined4 **)(pcVar10 + 0x2c8a68);\n  do {\n    iVar1 = iVar1 + 1;\n    (**(code **)(pcVar10 + 0x2c8a4c))(0x20,*puVar6);\n  } while (iVar1 != 0x1e);\n  uVar2 = (**(code **)(pcVar10 + 0x2c8bb0))(pIVar4[1].file_count_);\n  (**(code **)(pcVar10 + 0x2c8af0))(iVar8 + 0xec4,uVar2);\n  if (pIVar4[2].in_group_ == false) {\n                    /* WARNING: Could not recover jumptable at 0x001fd14c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(pcVar10 + 0x2c8c10))(10);\n    return;\n  }\n  uVar2 = (**(code **)(pcVar10 + 0x2c8bb0))(*(int *)(pcVar10 + 0x2c49d0) + 0x6460);\n  (**(code **)(pcVar10 + 0x2c8af0))(*(int *)(pcVar10 + 0x2c489c) + -0x1e94,uVar2);\n                    /* WARNING: Could not recover jumptable at 0x001fd268. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  (**(code **)(pcVar10 + 0x2c8c10))(10);\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::General_options::" identifier : : identifier : :) (function_declarator "parse_dynamic_list\n          (General_options *this,char *param_1,char *arg,Command_line *cmdline)" identifier (parameter_list "(General_options *this,char *param_1,char *arg,Command_line *cmdline)" ( (parameter_declaration "General_options *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *arg" primitive_type (pointer_declarator "*arg" * identifier)) , (parameter_declaration "Command_line *cmdline" type_identifier (pointer_declarator "*cmdline" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  Input_arguments *pIVar4;\n  pointer pIVar5;\n  One_option *this_00;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  code *pcVar11;\n  undefined4 *puStack_168;\n  undefined4 *puStack_164;\n  undefined4 uStack_160;\n  int iStack_154;\n  char *pcStack_150;\n  \n  iVar1 = (*(code *)PTR_read_dynamic_list_004c2568)(arg,cmdline,&this->dynamic_list_);\n  if (iVar1 != 0) {\n    this->have_dynamic_list_ = true;\n    return;\n  }\n  uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s__s_004c1a50 + 0x6370);\n  puVar9 = PTR_gold_fatal_004c2020;\n  (*(code *)PTR_gold_fatal_004c2020)();\n  uVar3 = (**(code **)(puVar9 + 0x2c8d98))(*(int *)(puVar9 + 0x2c4bb8) + 0x639c);\n  pcVar10 = *(code **)(puVar9 + 0x2c5188);\n  (*pcVar10)(uVar3,uVar2,arg);\n  uVar2 = (**(code **)(pcVar10 + 0x2c8d48))(*(int *)(pcVar10 + 0x2c4b68) + 0x63d0);\n  pcVar10 = *(code **)(pcVar10 + 0x2c5138);\n  (*pcVar10)(uVar2,uVar3);\n  pIVar4 = (Input_arguments *)\n           (**(code **)(pcVar10 + 0x2c8d04))(*(int *)(pcVar10 + 0x2c4b24) + 0x63f4);\n  pcVar10 = *(code **)(pcVar10 + 0x2c50f4);\n  (*pcVar10)();\n  if ((cmdline->inputs_).in_group_ != false) {\n    (cmdline->inputs_).in_group_ = false;\n    return;\n  }\n  iVar1 = *(int *)(pcVar10 + 0x2c55f8) + -0x30d4;\n  Input_arguments::end_group(pIVar4);\n  pIVar4 = (Input_arguments *)\n           (**(code **)(iVar1 + 0x2c8c90))(*(int *)(FUN_002c4ab0 + iVar1) + 0x6414);\n  pcVar10 = *(code **)(iVar1 + 0x2c5080);\n  (*pcVar10)();\n  if ((cmdline->inputs_).in_lib_ != false) {\n    (cmdline->inputs_).in_lib_ = false;\n    return;\n  }\n  iVar1 = *(int *)(pcVar10 + 0x2c5584) + -0x3060;\n  Input_arguments::end_lib(pIVar4);\n  if (pIVar4 < (Input_arguments *)0x40000000) {\n    uVar2 = (**(code **)(iVar1 + 0x2c4394))((int)pIVar4 << 2);\n    (**(code **)(iVar1 + 0x2c8c54))(uVar2,0,(int)pIVar4 << 2);\n    return;\n  }\n  pcVar10 = *(code **)(iVar1 + 0x2c4aac);\n  (*pcVar10)();\n  (**(code **)(pcVar10 + 0x2c8af0))(*(int *)(pcVar10 + 0x2c489c) + 0xe80);\n  if (*(char *)&pIVar4[1].input_argument_list_.\n                super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n                _M_impl._M_end_of_storage == '\0') {\n    iVar8 = *(int *)(pcVar10 + 0x2c489c);\n    if ((pIVar4->input_argument_list_).\n        super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.\n        _M_finish == (pointer)0x0) {\n      iVar1 = 2;\n      goto LAB_001fd0dc;\n    }\n    pIVar5 = (pIVar4->input_argument_list_).\n             super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl\n             ._M_start;\n    if (pIVar5->is_file_ == false) {\n      iVar1 = 2;\n      if (pIVar5->field_0x1 == '\0') {\n        iVar8 = *(int *)(pcVar10 + 0x2c489c);\n        goto LAB_001fd0dc;\n      }\n    }\n    else {\n      iVar1 = 2;\n    }\nLAB_001fd168:\n    pIVar5 = pIVar4[1].input_argument_list_.\n             super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl\n             ._M_finish;\n    if (pIVar5 < (pointer)&DAT_00000005) {\n                    /* WARNING: Could not recover jumptable at 0x001fd18c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(pcVar10 + *(int *)(*(int *)(pcVar10 + 0x2c489c) + -0x51b0 + (int)pIVar5 * 4) + 0x2cc1c0))()\n      ;\n      return;\n    }\n    uVar2 = 0x81;\nLAB_001fd378:\n    pcVar11 = *(code **)(pcVar10 + 0x2c49b0);\n    (*pcVar11)(*(int *)(pcVar10 + 0x2c49d0) + 0x6434,uVar2,*(int *)(pcVar10 + 0x2c489c) + -0x5148);\n    puVar7 = *(undefined4 **)(pcVar11 + 0x2c45fc);\n    iStack_154 = iVar1;\n    pcStack_150 = arg;\n    uVar2 = (**(code **)(pcVar11 + 0x2c88a0))(*(int *)(pcVar11 + 0x2c46c0) + 0x6468);\n    (**(code **)(pcVar11 + 0x2c87e0))(uVar2,*puVar7);\n    iVar1 = *(int *)(pcVar11 + 0x2c51dc);\n    puVar6 = *(undefined4 **)(iVar1 + -0x42ec);\n    if (puVar6 != *(undefined4 **)(iVar1 + -0x42e8)) {\n      do {\n        this_00 = (One_option *)*puVar6;\n        puVar6 = puVar6 + 1;\n        gold::options::One_option::print(this_00);\n      } while (*(undefined4 **)(iVar1 + -0x42e8) != puVar6);\n    }\n    uVar2 = (**(code **)(pcVar11 + 0x2c88a0))(*(int *)(pcVar11 + 0x2c46c0) + 0x6490);\n    (**(code **)(pcVar11 + 0x2c87e0))(uVar2,*puVar7);\n    puStack_168 = (undefined4 *)0x0;\n    puStack_164 = (undefined4 *)0x0;\n    uStack_160 = 0;\n    (**(code **)(pcVar11 + 0x2c51c0))(&puStack_168);\n    if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar11 + 0x2c46c0);\n      puVar6 = puStack_168;\n      do {\n        (**(code **)(pcVar11 + 0x2c87e0))(iVar1 + 0x653c,*puVar6);\n        puVar6 = puVar6 + 1;\n      } while (puStack_164 != puVar6);\n    }\n    (**(code **)(pcVar11 + 0x2c8900))(10);\n    uVar2 = (**(code **)(pcVar11 + 0x2c88a0))(*(int *)(pcVar11 + 0x2c46c0) + 0x64a8);\n    (**(code **)(pcVar11 + 0x2c87e0))(uVar2,*puVar7);\n    if (puStack_168 != puStack_164) {\n      puStack_164 = puStack_168;\n    }\n    (**(code **)(pcVar11 + 0x2c51c4))(&puStack_168);\n    if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar11 + 0x2c46c0);\n      puVar6 = puStack_168;\n      do {\n        (**(code **)(pcVar11 + 0x2c87e0))(iVar1 + 0x653c,*puVar6);\n        puVar6 = puVar6 + 1;\n      } while (puStack_164 != puVar6);\n    }\n    (**(code **)(pcVar11 + 0x2c8900))(10);\n    uVar2 = (**(code **)(pcVar11 + 0x2c88a0))(*(int *)(pcVar11 + 0x2c46c0) + 0x64c4);\n    (**(code **)(pcVar11 + 0x2c87e0))(uVar2,*(int *)(pcVar11 + 0x2c46c0) + 0x64d8);\n    if (puStack_168 != (undefined4 *)0x0) {\n      (**(code **)(pcVar11 + 0x2c3f6c))();\n    }\n    return;\n  }\n  iVar1 = (**(code **)(pcVar10 + 0x2c8af0))(*(int *)(pcVar10 + 0x2c49d0) + 0x6430);\n  pIVar5 = pIVar4[2].input_argument_list_.\n           super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.\n           _M_start;\n  iVar1 = iVar1 + 2;\n  if (pIVar5 != (pointer)0x0) {\n    uVar2 = 0x6a;\n    if (pIVar4[1].input_argument_list_.\n        super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.\n        _M_finish == (pointer)&DAT_00000004) goto LAB_001fd378;\n    uVar2 = (**(code **)(pcVar10 + 0x2c8bb0))(pIVar5,0x6a);\n    iVar8 = (**(code **)(pcVar10 + 0x2c8af0))(*(int *)(pcVar10 + 0x2c49d0) + 0x653c,uVar2);\n    iVar1 = iVar1 + iVar8;\n  }\n  iVar8 = *(int *)(pcVar10 + 0x2c489c);\n  if ((pIVar4->input_argument_list_).\n      super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.\n      _M_finish != (pointer)0x0) {\n    pIVar5 = (pIVar4->input_argument_list_).\n             super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl\n             ._M_start;\n    if ((pIVar5->is_file_ !=\n         (bool)*(char *)&pIVar4[1].input_argument_list_.\n                         super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>\n                         ._M_impl._M_end_of_storage) || (pIVar5->field_0x1 != '\0')) {\n      iVar8 = (**(code **)(pcVar10 + 0x2c8af0))(*(int *)(pcVar10 + 0x2c49d0) + 0x644c);\n      iVar1 = iVar1 + iVar8;\n      goto LAB_001fd168;\n    }\n    iVar8 = *(int *)(pcVar10 + 0x2c489c);\n  }\n  if (0x1d < iVar1) {\n    iVar1 = 0;\n    (**(code **)(pcVar10 + 0x2c8c10))(10);\n  }\nLAB_001fd0dc:\n  puVar6 = *(undefined4 **)(pcVar10 + 0x2c8a68);\n  do {\n    iVar1 = iVar1 + 1;\n    (**(code **)(pcVar10 + 0x2c8a4c))(0x20,*puVar6);\n  } while (iVar1 != 0x1e);\n  uVar2 = (**(code **)(pcVar10 + 0x2c8bb0))(pIVar4[1].file_count_);\n  (**(code **)(pcVar10 + 0x2c8af0))(iVar8 + 0xec4,uVar2);\n  if (pIVar4[2].in_group_ == false) {\n                    /* WARNING: Could not recover jumptable at 0x001fd14c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(pcVar10 + 0x2c8c10))(10);\n    return;\n  }\n  uVar2 = (**(code **)(pcVar10 + 0x2c8bb0))(*(int *)(pcVar10 + 0x2c49d0) + 0x6460);\n  (**(code **)(pcVar10 + 0x2c8af0))(*(int *)(pcVar10 + 0x2c489c) + -0x1e94,uVar2);\n                    /* WARNING: Could not recover jumptable at 0x001fd268. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  (**(code **)(pcVar10 + 0x2c8c10))(10);\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "Input_arguments *pIVar4;" type_identifier (pointer_declarator "*pIVar4" * identifier) ;) (declaration "pointer pIVar5;" type_identifier identifier ;) (declaration "One_option *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "code *pcVar10;" type_identifier (pointer_declarator "*pcVar10" * identifier) ;) (declaration "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (declaration "undefined4 *puStack_168;" type_identifier (pointer_declarator "*puStack_168" * identifier) ;) (declaration "undefined4 *puStack_164;" type_identifier (pointer_declarator "*puStack_164" * identifier) ;) (declaration "undefined4 uStack_160;" type_identifier identifier ;) (declaration "int iStack_154;" primitive_type identifier ;) (declaration "char *pcStack_150;" primitive_type (pointer_declarator "*pcStack_150" * identifier) ;) (expression_statement "iVar1 = (*(code *)PTR_read_dynamic_list_004c2568)(arg,cmdline,&this->dynamic_list_);" (assignment_expression "iVar1 = (*(code *)PTR_read_dynamic_list_004c2568)(arg,cmdline,&this->dynamic_list_)" identifier = (call_expression "(*(code *)PTR_read_dynamic_list_004c2568)(arg,cmdline,&this->dynamic_list_)" (parenthesized_expression "(*(code *)PTR_read_dynamic_list_004c2568)" ( (pointer_expression "*(code *)PTR_read_dynamic_list_004c2568" * (cast_expression "(code *)PTR_read_dynamic_list_004c2568" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(arg,cmdline,&this->dynamic_list_)" ( identifier , identifier , (pointer_expression "&this->dynamic_list_" & (field_expression "this->dynamic_list_" identifier -> field_identifier)) )))) ;) (if_statement "if (iVar1 != 0) {\n    this->have_dynamic_list_ = true;\n    return;\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    this->have_dynamic_list_ = true;\n    return;\n  }" { (expression_statement "this->have_dynamic_list_ = true;" (assignment_expression "this->have_dynamic_list_ = true" (field_expression "this->have_dynamic_list_" identifier -> field_identifier) = true) ;) (return_statement "return;" return ;) })) (expression_statement "uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s__s_004c1a50 + 0x6370);" (assignment_expression "uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s__s_004c1a50 + 0x6370)" identifier = (call_expression "(*(code *)PTR_gettext_004c5c30)(PTR_s__s_004c1a50 + 0x6370)" (parenthesized_expression "(*(code *)PTR_gettext_004c5c30)" ( (pointer_expression "*(code *)PTR_gettext_004c5c30" * (cast_expression "(code *)PTR_gettext_004c5c30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s__s_004c1a50 + 0x6370)" ( (binary_expression "PTR_s__s_004c1a50 + 0x6370" identifier + number_literal) )))) ;) (expression_statement "puVar9 = PTR_gold_fatal_004c2020;" (assignment_expression "puVar9 = PTR_gold_fatal_004c2020" identifier = identifier) ;) (expression_statement "(*(code *)PTR_gold_fatal_004c2020)();" (call_expression "(*(code *)PTR_gold_fatal_004c2020)()" (parenthesized_expression "(*(code *)PTR_gold_fatal_004c2020)" ( (pointer_expression "*(code *)PTR_gold_fatal_004c2020" * (cast_expression "(code *)PTR_gold_fatal_004c2020" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar3 = (**(code **)(puVar9 + 0x2c8d98))(*(int *)(puVar9 + 0x2c4bb8) + 0x639c);" (assignment_expression "uVar3 = (**(code **)(puVar9 + 0x2c8d98))(*(int *)(puVar9 + 0x2c4bb8) + 0x639c)" identifier = (call_expression "(**(code **)(puVar9 + 0x2c8d98))(*(int *)(puVar9 + 0x2c4bb8) + 0x639c)" (parenthesized_expression "(**(code **)(puVar9 + 0x2c8d98))" ( (pointer_expression "**(code **)(puVar9 + 0x2c8d98)" * (pointer_expression "*(code **)(puVar9 + 0x2c8d98)" * (cast_expression "(code **)(puVar9 + 0x2c8d98)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0x2c8d98)" ( (binary_expression "puVar9 + 0x2c8d98" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar9 + 0x2c4bb8) + 0x639c)" ( (binary_expression "*(int *)(puVar9 + 0x2c4bb8) + 0x639c" (pointer_expression "*(int *)(puVar9 + 0x2c4bb8)" * (cast_expression "(int *)(puVar9 + 0x2c4bb8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x2c4bb8)" ( (binary_expression "puVar9 + 0x2c4bb8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pcVar10 = *(code **)(puVar9 + 0x2c5188);" (assignment_expression "pcVar10 = *(code **)(puVar9 + 0x2c5188)" identifier = (pointer_expression "*(code **)(puVar9 + 0x2c5188)" * (cast_expression "(code **)(puVar9 + 0x2c5188)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0x2c5188)" ( (binary_expression "puVar9 + 0x2c5188" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar10)(uVar3,uVar2,arg);" (call_expression "(*pcVar10)(uVar3,uVar2,arg)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(uVar3,uVar2,arg)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar2 = (**(code **)(pcVar10 + 0x2c8d48))(*(int *)(pcVar10 + 0x2c4b68) + 0x63d0);" (assignment_expression "uVar2 = (**(code **)(pcVar10 + 0x2c8d48))(*(int *)(pcVar10 + 0x2c4b68) + 0x63d0)" identifier = (call_expression "(**(code **)(pcVar10 + 0x2c8d48))(*(int *)(pcVar10 + 0x2c4b68) + 0x63d0)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2c8d48))" ( (pointer_expression "**(code **)(pcVar10 + 0x2c8d48)" * (pointer_expression "*(code **)(pcVar10 + 0x2c8d48)" * (cast_expression "(code **)(pcVar10 + 0x2c8d48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2c8d48)" ( (binary_expression "pcVar10 + 0x2c8d48" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar10 + 0x2c4b68) + 0x63d0)" ( (binary_expression "*(int *)(pcVar10 + 0x2c4b68) + 0x63d0" (pointer_expression "*(int *)(pcVar10 + 0x2c4b68)" * (cast_expression "(int *)(pcVar10 + 0x2c4b68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2c4b68)" ( (binary_expression "pcVar10 + 0x2c4b68" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pcVar10 = *(code **)(pcVar10 + 0x2c5138);" (assignment_expression "pcVar10 = *(code **)(pcVar10 + 0x2c5138)" identifier = (pointer_expression "*(code **)(pcVar10 + 0x2c5138)" * (cast_expression "(code **)(pcVar10 + 0x2c5138)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2c5138)" ( (binary_expression "pcVar10 + 0x2c5138" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar10)(uVar2,uVar3);" (call_expression "(*pcVar10)(uVar2,uVar3)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(uVar2,uVar3)" ( identifier , identifier ))) ;) (expression_statement "pIVar4 = (Input_arguments *)\n           (**(code **)(pcVar10 + 0x2c8d04))(*(int *)(pcVar10 + 0x2c4b24) + 0x63f4);" (assignment_expression "pIVar4 = (Input_arguments *)\n           (**(code **)(pcVar10 + 0x2c8d04))(*(int *)(pcVar10 + 0x2c4b24) + 0x63f4)" identifier = (cast_expression "(Input_arguments *)\n           (**(code **)(pcVar10 + 0x2c8d04))(*(int *)(pcVar10 + 0x2c4b24) + 0x63f4)" ( (type_descriptor "Input_arguments *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar10 + 0x2c8d04))(*(int *)(pcVar10 + 0x2c4b24) + 0x63f4)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2c8d04))" ( (pointer_expression "**(code **)(pcVar10 + 0x2c8d04)" * (pointer_expression "*(code **)(pcVar10 + 0x2c8d04)" * (cast_expression "(code **)(pcVar10 + 0x2c8d04)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2c8d04)" ( (binary_expression "pcVar10 + 0x2c8d04" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar10 + 0x2c4b24) + 0x63f4)" ( (binary_expression "*(int *)(pcVar10 + 0x2c4b24) + 0x63f4" (pointer_expression "*(int *)(pcVar10 + 0x2c4b24)" * (cast_expression "(int *)(pcVar10 + 0x2c4b24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2c4b24)" ( (binary_expression "pcVar10 + 0x2c4b24" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pcVar10 = *(code **)(pcVar10 + 0x2c50f4);" (assignment_expression "pcVar10 = *(code **)(pcVar10 + 0x2c50f4)" identifier = (pointer_expression "*(code **)(pcVar10 + 0x2c50f4)" * (cast_expression "(code **)(pcVar10 + 0x2c50f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2c50f4)" ( (binary_expression "pcVar10 + 0x2c50f4" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar10)();" (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if ((cmdline->inputs_).in_group_ != false) {\n    (cmdline->inputs_).in_group_ = false;\n    return;\n  }" if (parenthesized_expression "((cmdline->inputs_).in_group_ != false)" ( (binary_expression "(cmdline->inputs_).in_group_ != false" (field_expression "(cmdline->inputs_).in_group_" (parenthesized_expression "(cmdline->inputs_)" ( (field_expression "cmdline->inputs_" identifier -> field_identifier) )) . field_identifier) != false) )) (compound_statement "{\n    (cmdline->inputs_).in_group_ = false;\n    return;\n  }" { (expression_statement "(cmdline->inputs_).in_group_ = false;" (assignment_expression "(cmdline->inputs_).in_group_ = false" (field_expression "(cmdline->inputs_).in_group_" (parenthesized_expression "(cmdline->inputs_)" ( (field_expression "cmdline->inputs_" identifier -> field_identifier) )) . field_identifier) = false) ;) (return_statement "return;" return ;) })) (expression_statement "iVar1 = *(int *)(pcVar10 + 0x2c55f8) + -0x30d4;" (assignment_expression "iVar1 = *(int *)(pcVar10 + 0x2c55f8) + -0x30d4" identifier = (binary_expression "*(int *)(pcVar10 + 0x2c55f8) + -0x30d4" (pointer_expression "*(int *)(pcVar10 + 0x2c55f8)" * (cast_expression "(int *)(pcVar10 + 0x2c55f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2c55f8)" ( (binary_expression "pcVar10 + 0x2c55f8" identifier + number_literal) )))) + number_literal)) ;) (labeled_statement "Input_arguments::end_group(pIVar4);" statement_identifier : (ERROR ":" :) (expression_statement "end_group(pIVar4);" (call_expression "end_group(pIVar4)" identifier (argument_list "(pIVar4)" ( identifier ))) ;)) (expression_statement "pIVar4 = (Input_arguments *)\n           (**(code **)(iVar1 + 0x2c8c90))(*(int *)(FUN_002c4ab0 + iVar1) + 0x6414);" (assignment_expression "pIVar4 = (Input_arguments *)\n           (**(code **)(iVar1 + 0x2c8c90))(*(int *)(FUN_002c4ab0 + iVar1) + 0x6414)" identifier = (cast_expression "(Input_arguments *)\n           (**(code **)(iVar1 + 0x2c8c90))(*(int *)(FUN_002c4ab0 + iVar1) + 0x6414)" ( (type_descriptor "Input_arguments *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar1 + 0x2c8c90))(*(int *)(FUN_002c4ab0 + iVar1) + 0x6414)" (parenthesized_expression "(**(code **)(iVar1 + 0x2c8c90))" ( (pointer_expression "**(code **)(iVar1 + 0x2c8c90)" * (pointer_expression "*(code **)(iVar1 + 0x2c8c90)" * (cast_expression "(code **)(iVar1 + 0x2c8c90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x2c8c90)" ( (binary_expression "iVar1 + 0x2c8c90" identifier + number_literal) ))))) )) (argument_list "(*(int *)(FUN_002c4ab0 + iVar1) + 0x6414)" ( (binary_expression "*(int *)(FUN_002c4ab0 + iVar1) + 0x6414" (pointer_expression "*(int *)(FUN_002c4ab0 + iVar1)" * (cast_expression "(int *)(FUN_002c4ab0 + iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(FUN_002c4ab0 + iVar1)" ( (binary_expression "FUN_002c4ab0 + iVar1" identifier + identifier) )))) + number_literal) ))))) ;) (expression_statement "pcVar10 = *(code **)(iVar1 + 0x2c5080);" (assignment_expression "pcVar10 = *(code **)(iVar1 + 0x2c5080)" identifier = (pointer_expression "*(code **)(iVar1 + 0x2c5080)" * (cast_expression "(code **)(iVar1 + 0x2c5080)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x2c5080)" ( (binary_expression "iVar1 + 0x2c5080" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar10)();" (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if ((cmdline->inputs_).in_lib_ != false) {\n    (cmdline->inputs_).in_lib_ = false;\n    return;\n  }" if (parenthesized_expression "((cmdline->inputs_).in_lib_ != false)" ( (binary_expression "(cmdline->inputs_).in_lib_ != false" (field_expression "(cmdline->inputs_).in_lib_" (parenthesized_expression "(cmdline->inputs_)" ( (field_expression "cmdline->inputs_" identifier -> field_identifier) )) . field_identifier) != false) )) (compound_statement "{\n    (cmdline->inputs_).in_lib_ = false;\n    return;\n  }" { (expression_statement "(cmdline->inputs_).in_lib_ = false;" (assignment_expression "(cmdline->inputs_).in_lib_ = false" (field_expression "(cmdline->inputs_).in_lib_" (parenthesized_expression "(cmdline->inputs_)" ( (field_expression "cmdline->inputs_" identifier -> field_identifier) )) . field_identifier) = false) ;) (return_statement "return;" return ;) })) (expression_statement "iVar1 = *(int *)(pcVar10 + 0x2c5584) + -0x3060;" (assignment_expression "iVar1 = *(int *)(pcVar10 + 0x2c5584) + -0x3060" identifier = (binary_expression "*(int *)(pcVar10 + 0x2c5584) + -0x3060" (pointer_expression "*(int *)(pcVar10 + 0x2c5584)" * (cast_expression "(int *)(pcVar10 + 0x2c5584)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2c5584)" ( (binary_expression "pcVar10 + 0x2c5584" identifier + number_literal) )))) + number_literal)) ;) (labeled_statement "Input_arguments::end_lib(pIVar4);" statement_identifier : (ERROR ":" :) (expression_statement "end_lib(pIVar4);" (call_expression "end_lib(pIVar4)" identifier (argument_list "(pIVar4)" ( identifier ))) ;)) (if_statement "if (pIVar4 < (Input_arguments *)0x40000000) {\n    uVar2 = (**(code **)(iVar1 + 0x2c4394))((int)pIVar4 << 2);\n    (**(code **)(iVar1 + 0x2c8c54))(uVar2,0,(int)pIVar4 << 2);\n    return;\n  }" if (parenthesized_expression "(pIVar4 < (Input_arguments *)0x40000000)" ( (binary_expression "pIVar4 < (Input_arguments *)0x40000000" identifier < (cast_expression "(Input_arguments *)0x40000000" ( (type_descriptor "Input_arguments *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar2 = (**(code **)(iVar1 + 0x2c4394))((int)pIVar4 << 2);\n    (**(code **)(iVar1 + 0x2c8c54))(uVar2,0,(int)pIVar4 << 2);\n    return;\n  }" { (expression_statement "uVar2 = (**(code **)(iVar1 + 0x2c4394))((int)pIVar4 << 2);" (assignment_expression "uVar2 = (**(code **)(iVar1 + 0x2c4394))((int)pIVar4 << 2)" identifier = (call_expression "(**(code **)(iVar1 + 0x2c4394))((int)pIVar4 << 2)" (parenthesized_expression "(**(code **)(iVar1 + 0x2c4394))" ( (pointer_expression "**(code **)(iVar1 + 0x2c4394)" * (pointer_expression "*(code **)(iVar1 + 0x2c4394)" * (cast_expression "(code **)(iVar1 + 0x2c4394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x2c4394)" ( (binary_expression "iVar1 + 0x2c4394" identifier + number_literal) ))))) )) (argument_list "((int)pIVar4 << 2)" ( (binary_expression "(int)pIVar4 << 2" (cast_expression "(int)pIVar4" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "(**(code **)(iVar1 + 0x2c8c54))(uVar2,0,(int)pIVar4 << 2);" (call_expression "(**(code **)(iVar1 + 0x2c8c54))(uVar2,0,(int)pIVar4 << 2)" (parenthesized_expression "(**(code **)(iVar1 + 0x2c8c54))" ( (pointer_expression "**(code **)(iVar1 + 0x2c8c54)" * (pointer_expression "*(code **)(iVar1 + 0x2c8c54)" * (cast_expression "(code **)(iVar1 + 0x2c8c54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x2c8c54)" ( (binary_expression "iVar1 + 0x2c8c54" identifier + number_literal) ))))) )) (argument_list "(uVar2,0,(int)pIVar4 << 2)" ( identifier , number_literal , (binary_expression "(int)pIVar4 << 2" (cast_expression "(int)pIVar4" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "pcVar10 = *(code **)(iVar1 + 0x2c4aac);" (assignment_expression "pcVar10 = *(code **)(iVar1 + 0x2c4aac)" identifier = (pointer_expression "*(code **)(iVar1 + 0x2c4aac)" * (cast_expression "(code **)(iVar1 + 0x2c4aac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x2c4aac)" ( (binary_expression "iVar1 + 0x2c4aac" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar10)();" (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(pcVar10 + 0x2c8af0))(*(int *)(pcVar10 + 0x2c489c) + 0xe80);" (call_expression "(**(code **)(pcVar10 + 0x2c8af0))(*(int *)(pcVar10 + 0x2c489c) + 0xe80)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2c8af0))" ( (pointer_expression "**(code **)(pcVar10 + 0x2c8af0)" * (pointer_expression "*(code **)(pcVar10 + 0x2c8af0)" * (cast_expression "(code **)(pcVar10 + 0x2c8af0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2c8af0)" ( (binary_expression "pcVar10 + 0x2c8af0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar10 + 0x2c489c) + 0xe80)" ( (binary_expression "*(int *)(pcVar10 + 0x2c489c) + 0xe80" (pointer_expression "*(int *)(pcVar10 + 0x2c489c)" * (cast_expression "(int *)(pcVar10 + 0x2c489c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2c489c)" ( (binary_expression "pcVar10 + 0x2c489c" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (*(char *)&pIVar4[1].input_argument_list_.\n                super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n                _M_impl._M_end_of_storage == '\0') {\n    iVar8 = *(int *)(pcVar10 + 0x2c489c);\n    if ((pIVar4->input_argument_list_).\n        super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.\n        _M_finish == (pointer)0x0) {\n      iVar1 = 2;\n      goto LAB_001fd0dc;\n    }\n    pIVar5 = (pIVar4->input_argument_list_).\n             super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl\n             ._M_start;\n    if (pIVar5->is_file_ == false) {\n      iVar1 = 2;\n      if (pIVar5->field_0x1 == '\0') {\n        iVar8 = *(int *)(pcVar10 + 0x2c489c);\n        goto LAB_001fd0dc;\n      }\n    }\n    else {\n      iVar1 = 2;\n    }\nLAB_001fd168:\n    pIVar5 = pIVar4[1].input_argument_list_.\n             super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl\n             ._M_finish;\n    if (pIVar5 < (pointer)&DAT_00000005) {\n                    /* WARNING: Could not recover jumptable at 0x001fd18c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(pcVar10 + *(int *)(*(int *)(pcVar10 + 0x2c489c) + -0x51b0 + (int)pIVar5 * 4) + 0x2cc1c0))()\n      ;\n      return;\n    }\n    uVar2 = 0x81;\nLAB_001fd378:\n    pcVar11 = *(code **)(pcVar10 + 0x2c49b0);\n    (*pcVar11)(*(int *)(pcVar10 + 0x2c49d0) + 0x6434,uVar2,*(int *)(pcVar10 + 0x2c489c) + -0x5148);\n    puVar7 = *(undefined4 **)(pcVar11 + 0x2c45fc);\n    iStack_154 = iVar1;\n    pcStack_150 = arg;\n    uVar2 = (**(code **)(pcVar11 + 0x2c88a0))(*(int *)(pcVar11 + 0x2c46c0) + 0x6468);\n    (**(code **)(pcVar11 + 0x2c87e0))(uVar2,*puVar7);\n    iVar1 = *(int *)(pcVar11 + 0x2c51dc);\n    puVar6 = *(undefined4 **)(iVar1 + -0x42ec);\n    if (puVar6 != *(undefined4 **)(iVar1 + -0x42e8)) {\n      do {\n        this_00 = (One_option *)*puVar6;\n        puVar6 = puVar6 + 1;\n        gold::options::One_option::print(this_00);\n      } while (*(undefined4 **)(iVar1 + -0x42e8) != puVar6);\n    }\n    uVar2 = (**(code **)(pcVar11 + 0x2c88a0))(*(int *)(pcVar11 + 0x2c46c0) + 0x6490);\n    (**(code **)(pcVar11 + 0x2c87e0))(uVar2,*puVar7);\n    puStack_168 = (undefined4 *)0x0;\n    puStack_164 = (undefined4 *)0x0;\n    uStack_160 = 0;\n    (**(code **)(pcVar11 + 0x2c51c0))(&puStack_168);\n    if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar11 + 0x2c46c0);\n      puVar6 = puStack_168;\n      do {\n        (**(code **)(pcVar11 + 0x2c87e0))(iVar1 + 0x653c,*puVar6);\n        puVar6 = puVar6 + 1;\n      } while (puStack_164 != puVar6);\n    }\n    (**(code **)(pcVar11 + 0x2c8900))(10);\n    uVar2 = (**(code **)(pcVar11 + 0x2c88a0))(*(int *)(pcVar11 + 0x2c46c0) + 0x64a8);\n    (**(code **)(pcVar11 + 0x2c87e0))(uVar2,*puVar7);\n    if (puStack_168 != puStack_164) {\n      puStack_164 = puStack_168;\n    }\n    (**(code **)(pcVar11 + 0x2c51c4))(&puStack_168);\n    if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar11 + 0x2c46c0);\n      puVar6 = puStack_168;\n      do {\n        (**(code **)(pcVar11 + 0x2c87e0))(iVar1 + 0x653c,*puVar6);\n        puVar6 = puVar6 + 1;\n      } while (puStack_164 != puVar6);\n    }\n    (**(code **)(pcVar11 + 0x2c8900))(10);\n    uVar2 = (**(code **)(pcVar11 + 0x2c88a0))(*(int *)(pcVar11 + 0x2c46c0) + 0x64c4);\n    (**(code **)(pcVar11 + 0x2c87e0))(uVar2,*(int *)(pcVar11 + 0x2c46c0) + 0x64d8);\n    if (puStack_168 != (undefined4 *)0x0) {\n      (**(code **)(pcVar11 + 0x2c3f6c))();\n    }\n    return;\n  }" if (parenthesized_expression "(*(char *)&pIVar4[1].input_argument_list_.\n                super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n                _M_impl._M_end_of_storage == '\0')" ( (ERROR "*(char *)&pIVar4[1].input_argument_list_.\n                super__Vector_base<gold::Input_argument,_std::allocator<gold::" (comma_expression "*(char *)&pIVar4[1].input_argument_list_.\n                super__Vector_base<gold::Input_argument,_std" (binary_expression "*(char *)&pIVar4[1].input_argument_list_.\n                super__Vector_base<gold" (pointer_expression "*(char *)&pIVar4[1].input_argument_list_.\n                super__Vector_base" * (cast_expression "(char *)&pIVar4[1].input_argument_list_.\n                super__Vector_base" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pIVar4[1].input_argument_list_.\n                super__Vector_base" & (field_expression "pIVar4[1].input_argument_list_.\n                super__Vector_base" (field_expression "pIVar4[1].input_argument_list_" (subscript_expression "pIVar4[1]" identifier [ number_literal ]) . field_identifier) . field_identifier)))) < identifier) (ERROR "::Input_argument" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Input_argument>_>.\n                _M_impl._M_end_of_storage == '\0'" (field_expression "Input_argument>_>.\n                _M_impl._M_end_of_storage" (field_expression "Input_argument>_>.\n                _M_impl" (binary_expression "Input_argument>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar8 = *(int *)(pcVar10 + 0x2c489c);\n    if ((pIVar4->input_argument_list_).\n        super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.\n        _M_finish == (pointer)0x0) {\n      iVar1 = 2;\n      goto LAB_001fd0dc;\n    }\n    pIVar5 = (pIVar4->input_argument_list_).\n             super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl\n             ._M_start;\n    if (pIVar5->is_file_ == false) {\n      iVar1 = 2;\n      if (pIVar5->field_0x1 == '\0') {\n        iVar8 = *(int *)(pcVar10 + 0x2c489c);\n        goto LAB_001fd0dc;\n      }\n    }\n    else {\n      iVar1 = 2;\n    }\nLAB_001fd168:\n    pIVar5 = pIVar4[1].input_argument_list_.\n             super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl\n             ._M_finish;\n    if (pIVar5 < (pointer)&DAT_00000005) {\n                    /* WARNING: Could not recover jumptable at 0x001fd18c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(pcVar10 + *(int *)(*(int *)(pcVar10 + 0x2c489c) + -0x51b0 + (int)pIVar5 * 4) + 0x2cc1c0))()\n      ;\n      return;\n    }\n    uVar2 = 0x81;\nLAB_001fd378:\n    pcVar11 = *(code **)(pcVar10 + 0x2c49b0);\n    (*pcVar11)(*(int *)(pcVar10 + 0x2c49d0) + 0x6434,uVar2,*(int *)(pcVar10 + 0x2c489c) + -0x5148);\n    puVar7 = *(undefined4 **)(pcVar11 + 0x2c45fc);\n    iStack_154 = iVar1;\n    pcStack_150 = arg;\n    uVar2 = (**(code **)(pcVar11 + 0x2c88a0))(*(int *)(pcVar11 + 0x2c46c0) + 0x6468);\n    (**(code **)(pcVar11 + 0x2c87e0))(uVar2,*puVar7);\n    iVar1 = *(int *)(pcVar11 + 0x2c51dc);\n    puVar6 = *(undefined4 **)(iVar1 + -0x42ec);\n    if (puVar6 != *(undefined4 **)(iVar1 + -0x42e8)) {\n      do {\n        this_00 = (One_option *)*puVar6;\n        puVar6 = puVar6 + 1;\n        gold::options::One_option::print(this_00);\n      } while (*(undefined4 **)(iVar1 + -0x42e8) != puVar6);\n    }\n    uVar2 = (**(code **)(pcVar11 + 0x2c88a0))(*(int *)(pcVar11 + 0x2c46c0) + 0x6490);\n    (**(code **)(pcVar11 + 0x2c87e0))(uVar2,*puVar7);\n    puStack_168 = (undefined4 *)0x0;\n    puStack_164 = (undefined4 *)0x0;\n    uStack_160 = 0;\n    (**(code **)(pcVar11 + 0x2c51c0))(&puStack_168);\n    if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar11 + 0x2c46c0);\n      puVar6 = puStack_168;\n      do {\n        (**(code **)(pcVar11 + 0x2c87e0))(iVar1 + 0x653c,*puVar6);\n        puVar6 = puVar6 + 1;\n      } while (puStack_164 != puVar6);\n    }\n    (**(code **)(pcVar11 + 0x2c8900))(10);\n    uVar2 = (**(code **)(pcVar11 + 0x2c88a0))(*(int *)(pcVar11 + 0x2c46c0) + 0x64a8);\n    (**(code **)(pcVar11 + 0x2c87e0))(uVar2,*puVar7);\n    if (puStack_168 != puStack_164) {\n      puStack_164 = puStack_168;\n    }\n    (**(code **)(pcVar11 + 0x2c51c4))(&puStack_168);\n    if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar11 + 0x2c46c0);\n      puVar6 = puStack_168;\n      do {\n        (**(code **)(pcVar11 + 0x2c87e0))(iVar1 + 0x653c,*puVar6);\n        puVar6 = puVar6 + 1;\n      } while (puStack_164 != puVar6);\n    }\n    (**(code **)(pcVar11 + 0x2c8900))(10);\n    uVar2 = (**(code **)(pcVar11 + 0x2c88a0))(*(int *)(pcVar11 + 0x2c46c0) + 0x64c4);\n    (**(code **)(pcVar11 + 0x2c87e0))(uVar2,*(int *)(pcVar11 + 0x2c46c0) + 0x64d8);\n    if (puStack_168 != (undefined4 *)0x0) {\n      (**(code **)(pcVar11 + 0x2c3f6c))();\n    }\n    return;\n  }" { (expression_statement "iVar8 = *(int *)(pcVar10 + 0x2c489c);" (assignment_expression "iVar8 = *(int *)(pcVar10 + 0x2c489c)" identifier = (pointer_expression "*(int *)(pcVar10 + 0x2c489c)" * (cast_expression "(int *)(pcVar10 + 0x2c489c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2c489c)" ( (binary_expression "pcVar10 + 0x2c489c" identifier + number_literal) ))))) ;) (if_statement "if ((pIVar4->input_argument_list_).\n        super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.\n        _M_finish == (pointer)0x0) {\n      iVar1 = 2;\n      goto LAB_001fd0dc;\n    }" if (parenthesized_expression "((pIVar4->input_argument_list_).\n        super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.\n        _M_finish == (pointer)0x0)" ( (ERROR "(pIVar4->input_argument_list_).\n        super__Vector_base<gold::Input_argument,_std::allocator<gold::" (comma_expression "(pIVar4->input_argument_list_).\n        super__Vector_base<gold::Input_argument,_std" (binary_expression "(pIVar4->input_argument_list_).\n        super__Vector_base<gold" (field_expression "(pIVar4->input_argument_list_).\n        super__Vector_base" (parenthesized_expression "(pIVar4->input_argument_list_)" ( (field_expression "pIVar4->input_argument_list_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Input_argument" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Input_argument>_>._M_impl.\n        _M_finish == (pointer)0x0" (field_expression "Input_argument>_>._M_impl.\n        _M_finish" (field_expression "Input_argument>_>._M_impl" (binary_expression "Input_argument>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) == (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n      iVar1 = 2;\n      goto LAB_001fd0dc;\n    }" { (expression_statement "iVar1 = 2;" (assignment_expression "iVar1 = 2" identifier = number_literal) ;) (goto_statement "goto LAB_001fd0dc;" goto statement_identifier ;) })) (ERROR "pIVar5 = (pIVar4->input_argument_list_).\n             super__Vector_base<gold::Input_argument,_std::allocator<gold::" (comma_expression "pIVar5 = (pIVar4->input_argument_list_).\n             super__Vector_base<gold::Input_argument,_std" (assignment_expression "pIVar5 = (pIVar4->input_argument_list_).\n             super__Vector_base<gold" identifier = (binary_expression "(pIVar4->input_argument_list_).\n             super__Vector_base<gold" (field_expression "(pIVar4->input_argument_list_).\n             super__Vector_base" (parenthesized_expression "(pIVar4->input_argument_list_)" ( (field_expression "pIVar4->input_argument_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Input_argument" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Input_argument>_>._M_impl\n             ._M_start;" (field_expression "Input_argument>_>._M_impl\n             ._M_start" (field_expression "Input_argument>_>._M_impl" (binary_expression "Input_argument>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (pIVar5->is_file_ == false) {\n      iVar1 = 2;\n      if (pIVar5->field_0x1 == '\0') {\n        iVar8 = *(int *)(pcVar10 + 0x2c489c);\n        goto LAB_001fd0dc;\n      }\n    }\n    else {\n      iVar1 = 2;\n    }" if (parenthesized_expression "(pIVar5->is_file_ == false)" ( (binary_expression "pIVar5->is_file_ == false" (field_expression "pIVar5->is_file_" identifier -> field_identifier) == false) )) (compound_statement "{\n      iVar1 = 2;\n      if (pIVar5->field_0x1 == '\0') {\n        iVar8 = *(int *)(pcVar10 + 0x2c489c);\n        goto LAB_001fd0dc;\n      }\n    }" { (expression_statement "iVar1 = 2;" (assignment_expression "iVar1 = 2" identifier = number_literal) ;) (if_statement "if (pIVar5->field_0x1 == '\0') {\n        iVar8 = *(int *)(pcVar10 + 0x2c489c);\n        goto LAB_001fd0dc;\n      }" if (parenthesized_expression "(pIVar5->field_0x1 == '\0')" ( (binary_expression "pIVar5->field_0x1 == '\0'" (field_expression "pIVar5->field_0x1" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        iVar8 = *(int *)(pcVar10 + 0x2c489c);\n        goto LAB_001fd0dc;\n      }" { (expression_statement "iVar8 = *(int *)(pcVar10 + 0x2c489c);" (assignment_expression "iVar8 = *(int *)(pcVar10 + 0x2c489c)" identifier = (pointer_expression "*(int *)(pcVar10 + 0x2c489c)" * (cast_expression "(int *)(pcVar10 + 0x2c489c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2c489c)" ( (binary_expression "pcVar10 + 0x2c489c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_001fd0dc;" goto statement_identifier ;) })) }) (else_clause "else {\n      iVar1 = 2;\n    }" else (compound_statement "{\n      iVar1 = 2;\n    }" { (expression_statement "iVar1 = 2;" (assignment_expression "iVar1 = 2" identifier = number_literal) ;) }))) (labeled_statement "LAB_001fd168:\n    pIVar5 = pIVar4[1].input_argument_list_.\n             super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl\n             ._M_finish;" statement_identifier : (ERROR "pIVar5 = pIVar4[1].input_argument_list_.\n             super__Vector_base<gold::Input_argument,_std::allocator<gold::" (comma_expression "pIVar5 = pIVar4[1].input_argument_list_.\n             super__Vector_base<gold::Input_argument,_std" (assignment_expression "pIVar5 = pIVar4[1].input_argument_list_.\n             super__Vector_base<gold" identifier = (binary_expression "pIVar4[1].input_argument_list_.\n             super__Vector_base<gold" (field_expression "pIVar4[1].input_argument_list_.\n             super__Vector_base" (field_expression "pIVar4[1].input_argument_list_" (subscript_expression "pIVar4[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) < identifier)) (ERROR "::Input_argument" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Input_argument>_>._M_impl\n             ._M_finish;" (field_expression "Input_argument>_>._M_impl\n             ._M_finish" (field_expression "Input_argument>_>._M_impl" (binary_expression "Input_argument>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;)) (if_statement "if (pIVar5 < (pointer)&DAT_00000005) {\n                    /* WARNING: Could not recover jumptable at 0x001fd18c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(pcVar10 + *(int *)(*(int *)(pcVar10 + 0x2c489c) + -0x51b0 + (int)pIVar5 * 4) + 0x2cc1c0))()\n      ;\n      return;\n    }" if (parenthesized_expression "(pIVar5 < (pointer)&DAT_00000005)" ( (binary_expression "pIVar5 < (pointer)&DAT_00000005" (binary_expression "pIVar5 < (pointer)" identifier < (parenthesized_expression "(pointer)" ( identifier ))) & identifier) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x001fd18c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(pcVar10 + *(int *)(*(int *)(pcVar10 + 0x2c489c) + -0x51b0 + (int)pIVar5 * 4) + 0x2cc1c0))()\n      ;\n      return;\n    }" { comment comment (expression_statement "(*(pcVar10 + *(int *)(*(int *)(pcVar10 + 0x2c489c) + -0x51b0 + (int)pIVar5 * 4) + 0x2cc1c0))()\n      ;" (call_expression "(*(pcVar10 + *(int *)(*(int *)(pcVar10 + 0x2c489c) + -0x51b0 + (int)pIVar5 * 4) + 0x2cc1c0))()" (parenthesized_expression "(*(pcVar10 + *(int *)(*(int *)(pcVar10 + 0x2c489c) + -0x51b0 + (int)pIVar5 * 4) + 0x2cc1c0))" ( (pointer_expression "*(pcVar10 + *(int *)(*(int *)(pcVar10 + 0x2c489c) + -0x51b0 + (int)pIVar5 * 4) + 0x2cc1c0)" * (parenthesized_expression "(pcVar10 + *(int *)(*(int *)(pcVar10 + 0x2c489c) + -0x51b0 + (int)pIVar5 * 4) + 0x2cc1c0)" ( (binary_expression "pcVar10 + *(int *)(*(int *)(pcVar10 + 0x2c489c) + -0x51b0 + (int)pIVar5 * 4) + 0x2cc1c0" (binary_expression "pcVar10 + *(int *)(*(int *)(pcVar10 + 0x2c489c) + -0x51b0 + (int)pIVar5 * 4)" identifier + (pointer_expression "*(int *)(*(int *)(pcVar10 + 0x2c489c) + -0x51b0 + (int)pIVar5 * 4)" * (cast_expression "(int *)(*(int *)(pcVar10 + 0x2c489c) + -0x51b0 + (int)pIVar5 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar10 + 0x2c489c) + -0x51b0 + (int)pIVar5 * 4)" ( (binary_expression "*(int *)(pcVar10 + 0x2c489c) + -0x51b0 + (int)pIVar5 * 4" (binary_expression "*(int *)(pcVar10 + 0x2c489c) + -0x51b0" (pointer_expression "*(int *)(pcVar10 + 0x2c489c)" * (cast_expression "(int *)(pcVar10 + 0x2c489c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2c489c)" ( (binary_expression "pcVar10 + 0x2c489c" identifier + number_literal) )))) + number_literal) + (binary_expression "(int)pIVar5 * 4" (cast_expression "(int)pIVar5" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) + number_literal) ))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar2 = 0x81;" (assignment_expression "uVar2 = 0x81" identifier = number_literal) ;) (labeled_statement "LAB_001fd378:\n    pcVar11 = *(code **)(pcVar10 + 0x2c49b0);" statement_identifier : (expression_statement "pcVar11 = *(code **)(pcVar10 + 0x2c49b0);" (assignment_expression "pcVar11 = *(code **)(pcVar10 + 0x2c49b0)" identifier = (pointer_expression "*(code **)(pcVar10 + 0x2c49b0)" * (cast_expression "(code **)(pcVar10 + 0x2c49b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2c49b0)" ( (binary_expression "pcVar10 + 0x2c49b0" identifier + number_literal) ))))) ;)) (expression_statement "(*pcVar11)(*(int *)(pcVar10 + 0x2c49d0) + 0x6434,uVar2,*(int *)(pcVar10 + 0x2c489c) + -0x5148);" (call_expression "(*pcVar11)(*(int *)(pcVar10 + 0x2c49d0) + 0x6434,uVar2,*(int *)(pcVar10 + 0x2c489c) + -0x5148)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(*(int *)(pcVar10 + 0x2c49d0) + 0x6434,uVar2,*(int *)(pcVar10 + 0x2c489c) + -0x5148)" ( (binary_expression "*(int *)(pcVar10 + 0x2c49d0) + 0x6434" (pointer_expression "*(int *)(pcVar10 + 0x2c49d0)" * (cast_expression "(int *)(pcVar10 + 0x2c49d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2c49d0)" ( (binary_expression "pcVar10 + 0x2c49d0" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar10 + 0x2c489c) + -0x5148" (pointer_expression "*(int *)(pcVar10 + 0x2c489c)" * (cast_expression "(int *)(pcVar10 + 0x2c489c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2c489c)" ( (binary_expression "pcVar10 + 0x2c489c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "puVar7 = *(undefined4 **)(pcVar11 + 0x2c45fc);" (assignment_expression "puVar7 = *(undefined4 **)(pcVar11 + 0x2c45fc)" identifier = (pointer_expression "*(undefined4 **)(pcVar11 + 0x2c45fc)" * (cast_expression "(undefined4 **)(pcVar11 + 0x2c45fc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x2c45fc)" ( (binary_expression "pcVar11 + 0x2c45fc" identifier + number_literal) ))))) ;) (expression_statement "iStack_154 = iVar1;" (assignment_expression "iStack_154 = iVar1" identifier = identifier) ;) (expression_statement "pcStack_150 = arg;" (assignment_expression "pcStack_150 = arg" identifier = identifier) ;) (expression_statement "uVar2 = (**(code **)(pcVar11 + 0x2c88a0))(*(int *)(pcVar11 + 0x2c46c0) + 0x6468);" (assignment_expression "uVar2 = (**(code **)(pcVar11 + 0x2c88a0))(*(int *)(pcVar11 + 0x2c46c0) + 0x6468)" identifier = (call_expression "(**(code **)(pcVar11 + 0x2c88a0))(*(int *)(pcVar11 + 0x2c46c0) + 0x6468)" (parenthesized_expression "(**(code **)(pcVar11 + 0x2c88a0))" ( (pointer_expression "**(code **)(pcVar11 + 0x2c88a0)" * (pointer_expression "*(code **)(pcVar11 + 0x2c88a0)" * (cast_expression "(code **)(pcVar11 + 0x2c88a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x2c88a0)" ( (binary_expression "pcVar11 + 0x2c88a0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar11 + 0x2c46c0) + 0x6468)" ( (binary_expression "*(int *)(pcVar11 + 0x2c46c0) + 0x6468" (pointer_expression "*(int *)(pcVar11 + 0x2c46c0)" * (cast_expression "(int *)(pcVar11 + 0x2c46c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2c46c0)" ( (binary_expression "pcVar11 + 0x2c46c0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar11 + 0x2c87e0))(uVar2,*puVar7);" (call_expression "(**(code **)(pcVar11 + 0x2c87e0))(uVar2,*puVar7)" (parenthesized_expression "(**(code **)(pcVar11 + 0x2c87e0))" ( (pointer_expression "**(code **)(pcVar11 + 0x2c87e0)" * (pointer_expression "*(code **)(pcVar11 + 0x2c87e0)" * (cast_expression "(code **)(pcVar11 + 0x2c87e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x2c87e0)" ( (binary_expression "pcVar11 + 0x2c87e0" identifier + number_literal) ))))) )) (argument_list "(uVar2,*puVar7)" ( identifier , (pointer_expression "*puVar7" * identifier) ))) ;) (expression_statement "iVar1 = *(int *)(pcVar11 + 0x2c51dc);" (assignment_expression "iVar1 = *(int *)(pcVar11 + 0x2c51dc)" identifier = (pointer_expression "*(int *)(pcVar11 + 0x2c51dc)" * (cast_expression "(int *)(pcVar11 + 0x2c51dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2c51dc)" ( (binary_expression "pcVar11 + 0x2c51dc" identifier + number_literal) ))))) ;) (expression_statement "puVar6 = *(undefined4 **)(iVar1 + -0x42ec);" (assignment_expression "puVar6 = *(undefined4 **)(iVar1 + -0x42ec)" identifier = (pointer_expression "*(undefined4 **)(iVar1 + -0x42ec)" * (cast_expression "(undefined4 **)(iVar1 + -0x42ec)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + -0x42ec)" ( (binary_expression "iVar1 + -0x42ec" identifier + number_literal) ))))) ;) (if_statement "if (puVar6 != *(undefined4 **)(iVar1 + -0x42e8)) {\n      do {\n        this_00 = (One_option *)*puVar6;\n        puVar6 = puVar6 + 1;\n        gold::options::One_option::print(this_00);\n      } while (*(undefined4 **)(iVar1 + -0x42e8) != puVar6);\n    }" if (parenthesized_expression "(puVar6 != *(undefined4 **)(iVar1 + -0x42e8))" ( (binary_expression "puVar6 != *(undefined4 **)(iVar1 + -0x42e8)" identifier != (pointer_expression "*(undefined4 **)(iVar1 + -0x42e8)" * (cast_expression "(undefined4 **)(iVar1 + -0x42e8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + -0x42e8)" ( (binary_expression "iVar1 + -0x42e8" identifier + number_literal) ))))) )) (compound_statement "{\n      do {\n        this_00 = (One_option *)*puVar6;\n        puVar6 = puVar6 + 1;\n        gold::options::One_option::print(this_00);\n      } while (*(undefined4 **)(iVar1 + -0x42e8) != puVar6);\n    }" { (do_statement "do {\n        this_00 = (One_option *)*puVar6;\n        puVar6 = puVar6 + 1;\n        gold::options::One_option::print(this_00);\n      } while (*(undefined4 **)(iVar1 + -0x42e8) != puVar6);" do (compound_statement "{\n        this_00 = (One_option *)*puVar6;\n        puVar6 = puVar6 + 1;\n        gold::options::One_option::print(this_00);\n      }" { (expression_statement "this_00 = (One_option *)*puVar6;" (assignment_expression "this_00 = (One_option *)*puVar6" identifier = (cast_expression "(One_option *)*puVar6" ( (type_descriptor "One_option *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier))) ;) (expression_statement "puVar6 = puVar6 + 1;" (assignment_expression "puVar6 = puVar6 + 1" identifier = (binary_expression "puVar6 + 1" identifier + number_literal)) ;) (labeled_statement "gold::options::One_option::print(this_00);" statement_identifier : (ERROR ":" :) (labeled_statement "options::One_option::print(this_00);" statement_identifier : (ERROR ":" :) (labeled_statement "One_option::print(this_00);" statement_identifier : (ERROR ":" :) (expression_statement "print(this_00);" (call_expression "print(this_00)" identifier (argument_list "(this_00)" ( identifier ))) ;)))) }) while (parenthesized_expression "(*(undefined4 **)(iVar1 + -0x42e8) != puVar6)" ( (binary_expression "*(undefined4 **)(iVar1 + -0x42e8) != puVar6" (pointer_expression "*(undefined4 **)(iVar1 + -0x42e8)" * (cast_expression "(undefined4 **)(iVar1 + -0x42e8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + -0x42e8)" ( (binary_expression "iVar1 + -0x42e8" identifier + number_literal) )))) != identifier) )) ;) })) (expression_statement "uVar2 = (**(code **)(pcVar11 + 0x2c88a0))(*(int *)(pcVar11 + 0x2c46c0) + 0x6490);" (assignment_expression "uVar2 = (**(code **)(pcVar11 + 0x2c88a0))(*(int *)(pcVar11 + 0x2c46c0) + 0x6490)" identifier = (call_expression "(**(code **)(pcVar11 + 0x2c88a0))(*(int *)(pcVar11 + 0x2c46c0) + 0x6490)" (parenthesized_expression "(**(code **)(pcVar11 + 0x2c88a0))" ( (pointer_expression "**(code **)(pcVar11 + 0x2c88a0)" * (pointer_expression "*(code **)(pcVar11 + 0x2c88a0)" * (cast_expression "(code **)(pcVar11 + 0x2c88a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x2c88a0)" ( (binary_expression "pcVar11 + 0x2c88a0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar11 + 0x2c46c0) + 0x6490)" ( (binary_expression "*(int *)(pcVar11 + 0x2c46c0) + 0x6490" (pointer_expression "*(int *)(pcVar11 + 0x2c46c0)" * (cast_expression "(int *)(pcVar11 + 0x2c46c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2c46c0)" ( (binary_expression "pcVar11 + 0x2c46c0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar11 + 0x2c87e0))(uVar2,*puVar7);" (call_expression "(**(code **)(pcVar11 + 0x2c87e0))(uVar2,*puVar7)" (parenthesized_expression "(**(code **)(pcVar11 + 0x2c87e0))" ( (pointer_expression "**(code **)(pcVar11 + 0x2c87e0)" * (pointer_expression "*(code **)(pcVar11 + 0x2c87e0)" * (cast_expression "(code **)(pcVar11 + 0x2c87e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x2c87e0)" ( (binary_expression "pcVar11 + 0x2c87e0" identifier + number_literal) ))))) )) (argument_list "(uVar2,*puVar7)" ( identifier , (pointer_expression "*puVar7" * identifier) ))) ;) (expression_statement "puStack_168 = (undefined4 *)0x0;" (assignment_expression "puStack_168 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puStack_164 = (undefined4 *)0x0;" (assignment_expression "puStack_164 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uStack_160 = 0;" (assignment_expression "uStack_160 = 0" identifier = number_literal) ;) (expression_statement "(**(code **)(pcVar11 + 0x2c51c0))(&puStack_168);" (call_expression "(**(code **)(pcVar11 + 0x2c51c0))(&puStack_168)" (parenthesized_expression "(**(code **)(pcVar11 + 0x2c51c0))" ( (pointer_expression "**(code **)(pcVar11 + 0x2c51c0)" * (pointer_expression "*(code **)(pcVar11 + 0x2c51c0)" * (cast_expression "(code **)(pcVar11 + 0x2c51c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x2c51c0)" ( (binary_expression "pcVar11 + 0x2c51c0" identifier + number_literal) ))))) )) (argument_list "(&puStack_168)" ( (pointer_expression "&puStack_168" & identifier) ))) ;) (if_statement "if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar11 + 0x2c46c0);\n      puVar6 = puStack_168;\n      do {\n        (**(code **)(pcVar11 + 0x2c87e0))(iVar1 + 0x653c,*puVar6);\n        puVar6 = puVar6 + 1;\n      } while (puStack_164 != puVar6);\n    }" if (parenthesized_expression "(puStack_168 != puStack_164)" ( (binary_expression "puStack_168 != puStack_164" identifier != identifier) )) (compound_statement "{\n      iVar1 = *(int *)(pcVar11 + 0x2c46c0);\n      puVar6 = puStack_168;\n      do {\n        (**(code **)(pcVar11 + 0x2c87e0))(iVar1 + 0x653c,*puVar6);\n        puVar6 = puVar6 + 1;\n      } while (puStack_164 != puVar6);\n    }" { (expression_statement "iVar1 = *(int *)(pcVar11 + 0x2c46c0);" (assignment_expression "iVar1 = *(int *)(pcVar11 + 0x2c46c0)" identifier = (pointer_expression "*(int *)(pcVar11 + 0x2c46c0)" * (cast_expression "(int *)(pcVar11 + 0x2c46c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2c46c0)" ( (binary_expression "pcVar11 + 0x2c46c0" identifier + number_literal) ))))) ;) (expression_statement "puVar6 = puStack_168;" (assignment_expression "puVar6 = puStack_168" identifier = identifier) ;) (do_statement "do {\n        (**(code **)(pcVar11 + 0x2c87e0))(iVar1 + 0x653c,*puVar6);\n        puVar6 = puVar6 + 1;\n      } while (puStack_164 != puVar6);" do (compound_statement "{\n        (**(code **)(pcVar11 + 0x2c87e0))(iVar1 + 0x653c,*puVar6);\n        puVar6 = puVar6 + 1;\n      }" { (expression_statement "(**(code **)(pcVar11 + 0x2c87e0))(iVar1 + 0x653c,*puVar6);" (call_expression "(**(code **)(pcVar11 + 0x2c87e0))(iVar1 + 0x653c,*puVar6)" (parenthesized_expression "(**(code **)(pcVar11 + 0x2c87e0))" ( (pointer_expression "**(code **)(pcVar11 + 0x2c87e0)" * (pointer_expression "*(code **)(pcVar11 + 0x2c87e0)" * (cast_expression "(code **)(pcVar11 + 0x2c87e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x2c87e0)" ( (binary_expression "pcVar11 + 0x2c87e0" identifier + number_literal) ))))) )) (argument_list "(iVar1 + 0x653c,*puVar6)" ( (binary_expression "iVar1 + 0x653c" identifier + number_literal) , (pointer_expression "*puVar6" * identifier) ))) ;) (expression_statement "puVar6 = puVar6 + 1;" (assignment_expression "puVar6 = puVar6 + 1" identifier = (binary_expression "puVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puStack_164 != puVar6)" ( (binary_expression "puStack_164 != puVar6" identifier != identifier) )) ;) })) (expression_statement "(**(code **)(pcVar11 + 0x2c8900))(10);" (call_expression "(**(code **)(pcVar11 + 0x2c8900))(10)" (parenthesized_expression "(**(code **)(pcVar11 + 0x2c8900))" ( (pointer_expression "**(code **)(pcVar11 + 0x2c8900)" * (pointer_expression "*(code **)(pcVar11 + 0x2c8900)" * (cast_expression "(code **)(pcVar11 + 0x2c8900)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x2c8900)" ( (binary_expression "pcVar11 + 0x2c8900" identifier + number_literal) ))))) )) (argument_list "(10)" ( number_literal ))) ;) (expression_statement "uVar2 = (**(code **)(pcVar11 + 0x2c88a0))(*(int *)(pcVar11 + 0x2c46c0) + 0x64a8);" (assignment_expression "uVar2 = (**(code **)(pcVar11 + 0x2c88a0))(*(int *)(pcVar11 + 0x2c46c0) + 0x64a8)" identifier = (call_expression "(**(code **)(pcVar11 + 0x2c88a0))(*(int *)(pcVar11 + 0x2c46c0) + 0x64a8)" (parenthesized_expression "(**(code **)(pcVar11 + 0x2c88a0))" ( (pointer_expression "**(code **)(pcVar11 + 0x2c88a0)" * (pointer_expression "*(code **)(pcVar11 + 0x2c88a0)" * (cast_expression "(code **)(pcVar11 + 0x2c88a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x2c88a0)" ( (binary_expression "pcVar11 + 0x2c88a0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar11 + 0x2c46c0) + 0x64a8)" ( (binary_expression "*(int *)(pcVar11 + 0x2c46c0) + 0x64a8" (pointer_expression "*(int *)(pcVar11 + 0x2c46c0)" * (cast_expression "(int *)(pcVar11 + 0x2c46c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2c46c0)" ( (binary_expression "pcVar11 + 0x2c46c0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar11 + 0x2c87e0))(uVar2,*puVar7);" (call_expression "(**(code **)(pcVar11 + 0x2c87e0))(uVar2,*puVar7)" (parenthesized_expression "(**(code **)(pcVar11 + 0x2c87e0))" ( (pointer_expression "**(code **)(pcVar11 + 0x2c87e0)" * (pointer_expression "*(code **)(pcVar11 + 0x2c87e0)" * (cast_expression "(code **)(pcVar11 + 0x2c87e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x2c87e0)" ( (binary_expression "pcVar11 + 0x2c87e0" identifier + number_literal) ))))) )) (argument_list "(uVar2,*puVar7)" ( identifier , (pointer_expression "*puVar7" * identifier) ))) ;) (if_statement "if (puStack_168 != puStack_164) {\n      puStack_164 = puStack_168;\n    }" if (parenthesized_expression "(puStack_168 != puStack_164)" ( (binary_expression "puStack_168 != puStack_164" identifier != identifier) )) (compound_statement "{\n      puStack_164 = puStack_168;\n    }" { (expression_statement "puStack_164 = puStack_168;" (assignment_expression "puStack_164 = puStack_168" identifier = identifier) ;) })) (expression_statement "(**(code **)(pcVar11 + 0x2c51c4))(&puStack_168);" (call_expression "(**(code **)(pcVar11 + 0x2c51c4))(&puStack_168)" (parenthesized_expression "(**(code **)(pcVar11 + 0x2c51c4))" ( (pointer_expression "**(code **)(pcVar11 + 0x2c51c4)" * (pointer_expression "*(code **)(pcVar11 + 0x2c51c4)" * (cast_expression "(code **)(pcVar11 + 0x2c51c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x2c51c4)" ( (binary_expression "pcVar11 + 0x2c51c4" identifier + number_literal) ))))) )) (argument_list "(&puStack_168)" ( (pointer_expression "&puStack_168" & identifier) ))) ;) (if_statement "if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar11 + 0x2c46c0);\n      puVar6 = puStack_168;\n      do {\n        (**(code **)(pcVar11 + 0x2c87e0))(iVar1 + 0x653c,*puVar6);\n        puVar6 = puVar6 + 1;\n      } while (puStack_164 != puVar6);\n    }" if (parenthesized_expression "(puStack_168 != puStack_164)" ( (binary_expression "puStack_168 != puStack_164" identifier != identifier) )) (compound_statement "{\n      iVar1 = *(int *)(pcVar11 + 0x2c46c0);\n      puVar6 = puStack_168;\n      do {\n        (**(code **)(pcVar11 + 0x2c87e0))(iVar1 + 0x653c,*puVar6);\n        puVar6 = puVar6 + 1;\n      } while (puStack_164 != puVar6);\n    }" { (expression_statement "iVar1 = *(int *)(pcVar11 + 0x2c46c0);" (assignment_expression "iVar1 = *(int *)(pcVar11 + 0x2c46c0)" identifier = (pointer_expression "*(int *)(pcVar11 + 0x2c46c0)" * (cast_expression "(int *)(pcVar11 + 0x2c46c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2c46c0)" ( (binary_expression "pcVar11 + 0x2c46c0" identifier + number_literal) ))))) ;) (expression_statement "puVar6 = puStack_168;" (assignment_expression "puVar6 = puStack_168" identifier = identifier) ;) (do_statement "do {\n        (**(code **)(pcVar11 + 0x2c87e0))(iVar1 + 0x653c,*puVar6);\n        puVar6 = puVar6 + 1;\n      } while (puStack_164 != puVar6);" do (compound_statement "{\n        (**(code **)(pcVar11 + 0x2c87e0))(iVar1 + 0x653c,*puVar6);\n        puVar6 = puVar6 + 1;\n      }" { (expression_statement "(**(code **)(pcVar11 + 0x2c87e0))(iVar1 + 0x653c,*puVar6);" (call_expression "(**(code **)(pcVar11 + 0x2c87e0))(iVar1 + 0x653c,*puVar6)" (parenthesized_expression "(**(code **)(pcVar11 + 0x2c87e0))" ( (pointer_expression "**(code **)(pcVar11 + 0x2c87e0)" * (pointer_expression "*(code **)(pcVar11 + 0x2c87e0)" * (cast_expression "(code **)(pcVar11 + 0x2c87e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x2c87e0)" ( (binary_expression "pcVar11 + 0x2c87e0" identifier + number_literal) ))))) )) (argument_list "(iVar1 + 0x653c,*puVar6)" ( (binary_expression "iVar1 + 0x653c" identifier + number_literal) , (pointer_expression "*puVar6" * identifier) ))) ;) (expression_statement "puVar6 = puVar6 + 1;" (assignment_expression "puVar6 = puVar6 + 1" identifier = (binary_expression "puVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puStack_164 != puVar6)" ( (binary_expression "puStack_164 != puVar6" identifier != identifier) )) ;) })) (expression_statement "(**(code **)(pcVar11 + 0x2c8900))(10);" (call_expression "(**(code **)(pcVar11 + 0x2c8900))(10)" (parenthesized_expression "(**(code **)(pcVar11 + 0x2c8900))" ( (pointer_expression "**(code **)(pcVar11 + 0x2c8900)" * (pointer_expression "*(code **)(pcVar11 + 0x2c8900)" * (cast_expression "(code **)(pcVar11 + 0x2c8900)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x2c8900)" ( (binary_expression "pcVar11 + 0x2c8900" identifier + number_literal) ))))) )) (argument_list "(10)" ( number_literal ))) ;) (expression_statement "uVar2 = (**(code **)(pcVar11 + 0x2c88a0))(*(int *)(pcVar11 + 0x2c46c0) + 0x64c4);" (assignment_expression "uVar2 = (**(code **)(pcVar11 + 0x2c88a0))(*(int *)(pcVar11 + 0x2c46c0) + 0x64c4)" identifier = (call_expression "(**(code **)(pcVar11 + 0x2c88a0))(*(int *)(pcVar11 + 0x2c46c0) + 0x64c4)" (parenthesized_expression "(**(code **)(pcVar11 + 0x2c88a0))" ( (pointer_expression "**(code **)(pcVar11 + 0x2c88a0)" * (pointer_expression "*(code **)(pcVar11 + 0x2c88a0)" * (cast_expression "(code **)(pcVar11 + 0x2c88a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x2c88a0)" ( (binary_expression "pcVar11 + 0x2c88a0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar11 + 0x2c46c0) + 0x64c4)" ( (binary_expression "*(int *)(pcVar11 + 0x2c46c0) + 0x64c4" (pointer_expression "*(int *)(pcVar11 + 0x2c46c0)" * (cast_expression "(int *)(pcVar11 + 0x2c46c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2c46c0)" ( (binary_expression "pcVar11 + 0x2c46c0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar11 + 0x2c87e0))(uVar2,*(int *)(pcVar11 + 0x2c46c0) + 0x64d8);" (call_expression "(**(code **)(pcVar11 + 0x2c87e0))(uVar2,*(int *)(pcVar11 + 0x2c46c0) + 0x64d8)" (parenthesized_expression "(**(code **)(pcVar11 + 0x2c87e0))" ( (pointer_expression "**(code **)(pcVar11 + 0x2c87e0)" * (pointer_expression "*(code **)(pcVar11 + 0x2c87e0)" * (cast_expression "(code **)(pcVar11 + 0x2c87e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x2c87e0)" ( (binary_expression "pcVar11 + 0x2c87e0" identifier + number_literal) ))))) )) (argument_list "(uVar2,*(int *)(pcVar11 + 0x2c46c0) + 0x64d8)" ( identifier , (binary_expression "*(int *)(pcVar11 + 0x2c46c0) + 0x64d8" (pointer_expression "*(int *)(pcVar11 + 0x2c46c0)" * (cast_expression "(int *)(pcVar11 + 0x2c46c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2c46c0)" ( (binary_expression "pcVar11 + 0x2c46c0" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (puStack_168 != (undefined4 *)0x0) {\n      (**(code **)(pcVar11 + 0x2c3f6c))();\n    }" if (parenthesized_expression "(puStack_168 != (undefined4 *)0x0)" ( (binary_expression "puStack_168 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (**(code **)(pcVar11 + 0x2c3f6c))();\n    }" { (expression_statement "(**(code **)(pcVar11 + 0x2c3f6c))();" (call_expression "(**(code **)(pcVar11 + 0x2c3f6c))()" (parenthesized_expression "(**(code **)(pcVar11 + 0x2c3f6c))" ( (pointer_expression "**(code **)(pcVar11 + 0x2c3f6c)" * (pointer_expression "*(code **)(pcVar11 + 0x2c3f6c)" * (cast_expression "(code **)(pcVar11 + 0x2c3f6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x2c3f6c)" ( (binary_expression "pcVar11 + 0x2c3f6c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })) (expression_statement "iVar1 = (**(code **)(pcVar10 + 0x2c8af0))(*(int *)(pcVar10 + 0x2c49d0) + 0x6430);" (assignment_expression "iVar1 = (**(code **)(pcVar10 + 0x2c8af0))(*(int *)(pcVar10 + 0x2c49d0) + 0x6430)" identifier = (call_expression "(**(code **)(pcVar10 + 0x2c8af0))(*(int *)(pcVar10 + 0x2c49d0) + 0x6430)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2c8af0))" ( (pointer_expression "**(code **)(pcVar10 + 0x2c8af0)" * (pointer_expression "*(code **)(pcVar10 + 0x2c8af0)" * (cast_expression "(code **)(pcVar10 + 0x2c8af0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2c8af0)" ( (binary_expression "pcVar10 + 0x2c8af0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar10 + 0x2c49d0) + 0x6430)" ( (binary_expression "*(int *)(pcVar10 + 0x2c49d0) + 0x6430" (pointer_expression "*(int *)(pcVar10 + 0x2c49d0)" * (cast_expression "(int *)(pcVar10 + 0x2c49d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2c49d0)" ( (binary_expression "pcVar10 + 0x2c49d0" identifier + number_literal) )))) + number_literal) )))) ;) (ERROR "pIVar5 = pIVar4[2].input_argument_list_.\n           super__Vector_base<gold::Input_argument,_std::allocator<gold::" (comma_expression "pIVar5 = pIVar4[2].input_argument_list_.\n           super__Vector_base<gold::Input_argument,_std" (assignment_expression "pIVar5 = pIVar4[2].input_argument_list_.\n           super__Vector_base<gold" identifier = (binary_expression "pIVar4[2].input_argument_list_.\n           super__Vector_base<gold" (field_expression "pIVar4[2].input_argument_list_.\n           super__Vector_base" (field_expression "pIVar4[2].input_argument_list_" (subscript_expression "pIVar4[2]" identifier [ number_literal ]) . field_identifier) . field_identifier) < identifier)) (ERROR "::Input_argument" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Input_argument>_>._M_impl.\n           _M_start;" (field_expression "Input_argument>_>._M_impl.\n           _M_start" (field_expression "Input_argument>_>._M_impl" (binary_expression "Input_argument>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "iVar1 = iVar1 + 2;" (assignment_expression "iVar1 = iVar1 + 2" identifier = (binary_expression "iVar1 + 2" identifier + number_literal)) ;) (if_statement "if (pIVar5 != (pointer)0x0) {\n    uVar2 = 0x6a;\n    if (pIVar4[1].input_argument_list_.\n        super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.\n        _M_finish == (pointer)&DAT_00000004) goto LAB_001fd378;\n    uVar2 = (**(code **)(pcVar10 + 0x2c8bb0))(pIVar5,0x6a);\n    iVar8 = (**(code **)(pcVar10 + 0x2c8af0))(*(int *)(pcVar10 + 0x2c49d0) + 0x653c,uVar2);\n    iVar1 = iVar1 + iVar8;\n  }" if (parenthesized_expression "(pIVar5 != (pointer)0x0)" ( (binary_expression "pIVar5 != (pointer)0x0" identifier != (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n    uVar2 = 0x6a;\n    if (pIVar4[1].input_argument_list_.\n        super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.\n        _M_finish == (pointer)&DAT_00000004) goto LAB_001fd378;\n    uVar2 = (**(code **)(pcVar10 + 0x2c8bb0))(pIVar5,0x6a);\n    iVar8 = (**(code **)(pcVar10 + 0x2c8af0))(*(int *)(pcVar10 + 0x2c49d0) + 0x653c,uVar2);\n    iVar1 = iVar1 + iVar8;\n  }" { (expression_statement "uVar2 = 0x6a;" (assignment_expression "uVar2 = 0x6a" identifier = number_literal) ;) (if_statement "if (pIVar4[1].input_argument_list_.\n        super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.\n        _M_finish == (pointer)&DAT_00000004) goto LAB_001fd378;" if (parenthesized_expression "(pIVar4[1].input_argument_list_.\n        super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.\n        _M_finish == (pointer)&DAT_00000004)" ( (ERROR "pIVar4[1].input_argument_list_.\n        super__Vector_base<gold::Input_argument,_std::allocator<gold::" (comma_expression "pIVar4[1].input_argument_list_.\n        super__Vector_base<gold::Input_argument,_std" (binary_expression "pIVar4[1].input_argument_list_.\n        super__Vector_base<gold" (field_expression "pIVar4[1].input_argument_list_.\n        super__Vector_base" (field_expression "pIVar4[1].input_argument_list_" (subscript_expression "pIVar4[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) < identifier) (ERROR "::Input_argument" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Input_argument>_>._M_impl.\n        _M_finish == (pointer)&DAT_00000004" (binary_expression "Input_argument>_>._M_impl.\n        _M_finish == (pointer)" (field_expression "Input_argument>_>._M_impl.\n        _M_finish" (field_expression "Input_argument>_>._M_impl" (binary_expression "Input_argument>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) == (parenthesized_expression "(pointer)" ( identifier ))) & identifier) )) (goto_statement "goto LAB_001fd378;" goto statement_identifier ;)) (expression_statement "uVar2 = (**(code **)(pcVar10 + 0x2c8bb0))(pIVar5,0x6a);" (assignment_expression "uVar2 = (**(code **)(pcVar10 + 0x2c8bb0))(pIVar5,0x6a)" identifier = (call_expression "(**(code **)(pcVar10 + 0x2c8bb0))(pIVar5,0x6a)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2c8bb0))" ( (pointer_expression "**(code **)(pcVar10 + 0x2c8bb0)" * (pointer_expression "*(code **)(pcVar10 + 0x2c8bb0)" * (cast_expression "(code **)(pcVar10 + 0x2c8bb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2c8bb0)" ( (binary_expression "pcVar10 + 0x2c8bb0" identifier + number_literal) ))))) )) (argument_list "(pIVar5,0x6a)" ( identifier , number_literal )))) ;) (expression_statement "iVar8 = (**(code **)(pcVar10 + 0x2c8af0))(*(int *)(pcVar10 + 0x2c49d0) + 0x653c,uVar2);" (assignment_expression "iVar8 = (**(code **)(pcVar10 + 0x2c8af0))(*(int *)(pcVar10 + 0x2c49d0) + 0x653c,uVar2)" identifier = (call_expression "(**(code **)(pcVar10 + 0x2c8af0))(*(int *)(pcVar10 + 0x2c49d0) + 0x653c,uVar2)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2c8af0))" ( (pointer_expression "**(code **)(pcVar10 + 0x2c8af0)" * (pointer_expression "*(code **)(pcVar10 + 0x2c8af0)" * (cast_expression "(code **)(pcVar10 + 0x2c8af0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2c8af0)" ( (binary_expression "pcVar10 + 0x2c8af0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar10 + 0x2c49d0) + 0x653c,uVar2)" ( (binary_expression "*(int *)(pcVar10 + 0x2c49d0) + 0x653c" (pointer_expression "*(int *)(pcVar10 + 0x2c49d0)" * (cast_expression "(int *)(pcVar10 + 0x2c49d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2c49d0)" ( (binary_expression "pcVar10 + 0x2c49d0" identifier + number_literal) )))) + number_literal) , identifier )))) ;) (expression_statement "iVar1 = iVar1 + iVar8;" (assignment_expression "iVar1 = iVar1 + iVar8" identifier = (binary_expression "iVar1 + iVar8" identifier + identifier)) ;) })) (expression_statement "iVar8 = *(int *)(pcVar10 + 0x2c489c);" (assignment_expression "iVar8 = *(int *)(pcVar10 + 0x2c489c)" identifier = (pointer_expression "*(int *)(pcVar10 + 0x2c489c)" * (cast_expression "(int *)(pcVar10 + 0x2c489c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2c489c)" ( (binary_expression "pcVar10 + 0x2c489c" identifier + number_literal) ))))) ;) (if_statement "if ((pIVar4->input_argument_list_).\n      super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.\n      _M_finish != (pointer)0x0) {\n    pIVar5 = (pIVar4->input_argument_list_).\n             super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl\n             ._M_start;\n    if ((pIVar5->is_file_ !=\n         (bool)*(char *)&pIVar4[1].input_argument_list_.\n                         super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>\n                         ._M_impl._M_end_of_storage) || (pIVar5->field_0x1 != '\0')) {\n      iVar8 = (**(code **)(pcVar10 + 0x2c8af0))(*(int *)(pcVar10 + 0x2c49d0) + 0x644c);\n      iVar1 = iVar1 + iVar8;\n      goto LAB_001fd168;\n    }\n    iVar8 = *(int *)(pcVar10 + 0x2c489c);\n  }" if (parenthesized_expression "((pIVar4->input_argument_list_).\n      super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.\n      _M_finish != (pointer)0x0)" ( (ERROR "(pIVar4->input_argument_list_).\n      super__Vector_base<gold::Input_argument,_std::allocator<gold::" (comma_expression "(pIVar4->input_argument_list_).\n      super__Vector_base<gold::Input_argument,_std" (binary_expression "(pIVar4->input_argument_list_).\n      super__Vector_base<gold" (field_expression "(pIVar4->input_argument_list_).\n      super__Vector_base" (parenthesized_expression "(pIVar4->input_argument_list_)" ( (field_expression "pIVar4->input_argument_list_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Input_argument" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Input_argument>_>._M_impl.\n      _M_finish != (pointer)0x0" (field_expression "Input_argument>_>._M_impl.\n      _M_finish" (field_expression "Input_argument>_>._M_impl" (binary_expression "Input_argument>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) != (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n    pIVar5 = (pIVar4->input_argument_list_).\n             super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl\n             ._M_start;\n    if ((pIVar5->is_file_ !=\n         (bool)*(char *)&pIVar4[1].input_argument_list_.\n                         super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>\n                         ._M_impl._M_end_of_storage) || (pIVar5->field_0x1 != '\0')) {\n      iVar8 = (**(code **)(pcVar10 + 0x2c8af0))(*(int *)(pcVar10 + 0x2c49d0) + 0x644c);\n      iVar1 = iVar1 + iVar8;\n      goto LAB_001fd168;\n    }\n    iVar8 = *(int *)(pcVar10 + 0x2c489c);\n  }" { (ERROR "pIVar5 = (pIVar4->input_argument_list_).\n             super__Vector_base<gold::Input_argument,_std::allocator<gold::" (comma_expression "pIVar5 = (pIVar4->input_argument_list_).\n             super__Vector_base<gold::Input_argument,_std" (assignment_expression "pIVar5 = (pIVar4->input_argument_list_).\n             super__Vector_base<gold" identifier = (binary_expression "(pIVar4->input_argument_list_).\n             super__Vector_base<gold" (field_expression "(pIVar4->input_argument_list_).\n             super__Vector_base" (parenthesized_expression "(pIVar4->input_argument_list_)" ( (field_expression "pIVar4->input_argument_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Input_argument" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Input_argument>_>._M_impl\n             ._M_start;" (field_expression "Input_argument>_>._M_impl\n             ._M_start" (field_expression "Input_argument>_>._M_impl" (binary_expression "Input_argument>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if ((pIVar5->is_file_ !=\n         (bool)*(char *)&pIVar4[1].input_argument_list_.\n                         super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>\n                         ._M_impl._M_end_of_storage) || (pIVar5->field_0x1 != '\0')) {\n      iVar8 = (**(code **)(pcVar10 + 0x2c8af0))(*(int *)(pcVar10 + 0x2c49d0) + 0x644c);\n      iVar1 = iVar1 + iVar8;\n      goto LAB_001fd168;\n    }" if (parenthesized_expression "((pIVar5->is_file_ !=\n         (bool)*(char *)&pIVar4[1].input_argument_list_.\n                         super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>\n                         ._M_impl._M_end_of_storage) || (pIVar5->field_0x1 != '\0'))" ( (binary_expression "(pIVar5->is_file_ !=\n         (bool)*(char *)&pIVar4[1].input_argument_list_.\n                         super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>\n                         ._M_impl._M_end_of_storage) || (pIVar5->field_0x1 != '\0')" (parenthesized_expression "(pIVar5->is_file_ !=\n         (bool)*(char *)&pIVar4[1].input_argument_list_.\n                         super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>\n                         ._M_impl._M_end_of_storage)" ( (ERROR "pIVar5->is_file_ !=\n         (bool)*(char *)&pIVar4[1].input_argument_list_.\n                         super__Vector_base<gold::Input_argument,_std::allocator<gold::" (comma_expression "pIVar5->is_file_ !=\n         (bool)*(char *)&pIVar4[1].input_argument_list_.\n                         super__Vector_base<gold::Input_argument,_std" (binary_expression "pIVar5->is_file_ !=\n         (bool)*(char *)&pIVar4[1].input_argument_list_.\n                         super__Vector_base<gold" (field_expression "pIVar5->is_file_" identifier -> field_identifier) != (binary_expression "(bool)*(char *)&pIVar4[1].input_argument_list_.\n                         super__Vector_base<gold" (cast_expression "(bool)*(char *)&pIVar4[1].input_argument_list_.\n                         super__Vector_base" ( (type_descriptor "bool" primitive_type) ) (pointer_expression "*(char *)&pIVar4[1].input_argument_list_.\n                         super__Vector_base" * (cast_expression "(char *)&pIVar4[1].input_argument_list_.\n                         super__Vector_base" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pIVar4[1].input_argument_list_.\n                         super__Vector_base" & (field_expression "pIVar4[1].input_argument_list_.\n                         super__Vector_base" (field_expression "pIVar4[1].input_argument_list_" (subscript_expression "pIVar4[1]" identifier [ number_literal ]) . field_identifier) . field_identifier))))) < identifier)) (ERROR "::Input_argument" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (field_expression "Input_argument>_>\n                         ._M_impl._M_end_of_storage" (field_expression "Input_argument>_>\n                         ._M_impl" (binary_expression "Input_argument>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) || (parenthesized_expression "(pIVar5->field_0x1 != '\0')" ( (binary_expression "pIVar5->field_0x1 != '\0'" (field_expression "pIVar5->field_0x1" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      iVar8 = (**(code **)(pcVar10 + 0x2c8af0))(*(int *)(pcVar10 + 0x2c49d0) + 0x644c);\n      iVar1 = iVar1 + iVar8;\n      goto LAB_001fd168;\n    }" { (expression_statement "iVar8 = (**(code **)(pcVar10 + 0x2c8af0))(*(int *)(pcVar10 + 0x2c49d0) + 0x644c);" (assignment_expression "iVar8 = (**(code **)(pcVar10 + 0x2c8af0))(*(int *)(pcVar10 + 0x2c49d0) + 0x644c)" identifier = (call_expression "(**(code **)(pcVar10 + 0x2c8af0))(*(int *)(pcVar10 + 0x2c49d0) + 0x644c)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2c8af0))" ( (pointer_expression "**(code **)(pcVar10 + 0x2c8af0)" * (pointer_expression "*(code **)(pcVar10 + 0x2c8af0)" * (cast_expression "(code **)(pcVar10 + 0x2c8af0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2c8af0)" ( (binary_expression "pcVar10 + 0x2c8af0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar10 + 0x2c49d0) + 0x644c)" ( (binary_expression "*(int *)(pcVar10 + 0x2c49d0) + 0x644c" (pointer_expression "*(int *)(pcVar10 + 0x2c49d0)" * (cast_expression "(int *)(pcVar10 + 0x2c49d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2c49d0)" ( (binary_expression "pcVar10 + 0x2c49d0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar1 = iVar1 + iVar8;" (assignment_expression "iVar1 = iVar1 + iVar8" identifier = (binary_expression "iVar1 + iVar8" identifier + identifier)) ;) (goto_statement "goto LAB_001fd168;" goto statement_identifier ;) })) (expression_statement "iVar8 = *(int *)(pcVar10 + 0x2c489c);" (assignment_expression "iVar8 = *(int *)(pcVar10 + 0x2c489c)" identifier = (pointer_expression "*(int *)(pcVar10 + 0x2c489c)" * (cast_expression "(int *)(pcVar10 + 0x2c489c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2c489c)" ( (binary_expression "pcVar10 + 0x2c489c" identifier + number_literal) ))))) ;) })) (if_statement "if (0x1d < iVar1) {\n    iVar1 = 0;\n    (**(code **)(pcVar10 + 0x2c8c10))(10);\n  }" if (parenthesized_expression "(0x1d < iVar1)" ( (binary_expression "0x1d < iVar1" number_literal < identifier) )) (compound_statement "{\n    iVar1 = 0;\n    (**(code **)(pcVar10 + 0x2c8c10))(10);\n  }" { (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) (expression_statement "(**(code **)(pcVar10 + 0x2c8c10))(10);" (call_expression "(**(code **)(pcVar10 + 0x2c8c10))(10)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2c8c10))" ( (pointer_expression "**(code **)(pcVar10 + 0x2c8c10)" * (pointer_expression "*(code **)(pcVar10 + 0x2c8c10)" * (cast_expression "(code **)(pcVar10 + 0x2c8c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2c8c10)" ( (binary_expression "pcVar10 + 0x2c8c10" identifier + number_literal) ))))) )) (argument_list "(10)" ( number_literal ))) ;) })) (labeled_statement "LAB_001fd0dc:\n  puVar6 = *(undefined4 **)(pcVar10 + 0x2c8a68);" statement_identifier : (expression_statement "puVar6 = *(undefined4 **)(pcVar10 + 0x2c8a68);" (assignment_expression "puVar6 = *(undefined4 **)(pcVar10 + 0x2c8a68)" identifier = (pointer_expression "*(undefined4 **)(pcVar10 + 0x2c8a68)" * (cast_expression "(undefined4 **)(pcVar10 + 0x2c8a68)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2c8a68)" ( (binary_expression "pcVar10 + 0x2c8a68" identifier + number_literal) ))))) ;)) (do_statement "do {\n    iVar1 = iVar1 + 1;\n    (**(code **)(pcVar10 + 0x2c8a4c))(0x20,*puVar6);\n  } while (iVar1 != 0x1e);" do (compound_statement "{\n    iVar1 = iVar1 + 1;\n    (**(code **)(pcVar10 + 0x2c8a4c))(0x20,*puVar6);\n  }" { (expression_statement "iVar1 = iVar1 + 1;" (assignment_expression "iVar1 = iVar1 + 1" identifier = (binary_expression "iVar1 + 1" identifier + number_literal)) ;) (expression_statement "(**(code **)(pcVar10 + 0x2c8a4c))(0x20,*puVar6);" (call_expression "(**(code **)(pcVar10 + 0x2c8a4c))(0x20,*puVar6)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2c8a4c))" ( (pointer_expression "**(code **)(pcVar10 + 0x2c8a4c)" * (pointer_expression "*(code **)(pcVar10 + 0x2c8a4c)" * (cast_expression "(code **)(pcVar10 + 0x2c8a4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2c8a4c)" ( (binary_expression "pcVar10 + 0x2c8a4c" identifier + number_literal) ))))) )) (argument_list "(0x20,*puVar6)" ( number_literal , (pointer_expression "*puVar6" * identifier) ))) ;) }) while (parenthesized_expression "(iVar1 != 0x1e)" ( (binary_expression "iVar1 != 0x1e" identifier != number_literal) )) ;) (expression_statement "uVar2 = (**(code **)(pcVar10 + 0x2c8bb0))(pIVar4[1].file_count_);" (assignment_expression "uVar2 = (**(code **)(pcVar10 + 0x2c8bb0))(pIVar4[1].file_count_)" identifier = (call_expression "(**(code **)(pcVar10 + 0x2c8bb0))(pIVar4[1].file_count_)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2c8bb0))" ( (pointer_expression "**(code **)(pcVar10 + 0x2c8bb0)" * (pointer_expression "*(code **)(pcVar10 + 0x2c8bb0)" * (cast_expression "(code **)(pcVar10 + 0x2c8bb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2c8bb0)" ( (binary_expression "pcVar10 + 0x2c8bb0" identifier + number_literal) ))))) )) (argument_list "(pIVar4[1].file_count_)" ( (field_expression "pIVar4[1].file_count_" (subscript_expression "pIVar4[1]" identifier [ number_literal ]) . field_identifier) )))) ;) (expression_statement "(**(code **)(pcVar10 + 0x2c8af0))(iVar8 + 0xec4,uVar2);" (call_expression "(**(code **)(pcVar10 + 0x2c8af0))(iVar8 + 0xec4,uVar2)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2c8af0))" ( (pointer_expression "**(code **)(pcVar10 + 0x2c8af0)" * (pointer_expression "*(code **)(pcVar10 + 0x2c8af0)" * (cast_expression "(code **)(pcVar10 + 0x2c8af0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2c8af0)" ( (binary_expression "pcVar10 + 0x2c8af0" identifier + number_literal) ))))) )) (argument_list "(iVar8 + 0xec4,uVar2)" ( (binary_expression "iVar8 + 0xec4" identifier + number_literal) , identifier ))) ;) (if_statement "if (pIVar4[2].in_group_ == false) {\n                    /* WARNING: Could not recover jumptable at 0x001fd14c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(pcVar10 + 0x2c8c10))(10);\n    return;\n  }" if (parenthesized_expression "(pIVar4[2].in_group_ == false)" ( (binary_expression "pIVar4[2].in_group_ == false" (field_expression "pIVar4[2].in_group_" (subscript_expression "pIVar4[2]" identifier [ number_literal ]) . field_identifier) == false) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x001fd14c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(pcVar10 + 0x2c8c10))(10);\n    return;\n  }" { comment comment (expression_statement "(**(code **)(pcVar10 + 0x2c8c10))(10);" (call_expression "(**(code **)(pcVar10 + 0x2c8c10))(10)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2c8c10))" ( (pointer_expression "**(code **)(pcVar10 + 0x2c8c10)" * (pointer_expression "*(code **)(pcVar10 + 0x2c8c10)" * (cast_expression "(code **)(pcVar10 + 0x2c8c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2c8c10)" ( (binary_expression "pcVar10 + 0x2c8c10" identifier + number_literal) ))))) )) (argument_list "(10)" ( number_literal ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar2 = (**(code **)(pcVar10 + 0x2c8bb0))(*(int *)(pcVar10 + 0x2c49d0) + 0x6460);" (assignment_expression "uVar2 = (**(code **)(pcVar10 + 0x2c8bb0))(*(int *)(pcVar10 + 0x2c49d0) + 0x6460)" identifier = (call_expression "(**(code **)(pcVar10 + 0x2c8bb0))(*(int *)(pcVar10 + 0x2c49d0) + 0x6460)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2c8bb0))" ( (pointer_expression "**(code **)(pcVar10 + 0x2c8bb0)" * (pointer_expression "*(code **)(pcVar10 + 0x2c8bb0)" * (cast_expression "(code **)(pcVar10 + 0x2c8bb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2c8bb0)" ( (binary_expression "pcVar10 + 0x2c8bb0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar10 + 0x2c49d0) + 0x6460)" ( (binary_expression "*(int *)(pcVar10 + 0x2c49d0) + 0x6460" (pointer_expression "*(int *)(pcVar10 + 0x2c49d0)" * (cast_expression "(int *)(pcVar10 + 0x2c49d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2c49d0)" ( (binary_expression "pcVar10 + 0x2c49d0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar10 + 0x2c8af0))(*(int *)(pcVar10 + 0x2c489c) + -0x1e94,uVar2);" (call_expression "(**(code **)(pcVar10 + 0x2c8af0))(*(int *)(pcVar10 + 0x2c489c) + -0x1e94,uVar2)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2c8af0))" ( (pointer_expression "**(code **)(pcVar10 + 0x2c8af0)" * (pointer_expression "*(code **)(pcVar10 + 0x2c8af0)" * (cast_expression "(code **)(pcVar10 + 0x2c8af0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2c8af0)" ( (binary_expression "pcVar10 + 0x2c8af0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar10 + 0x2c489c) + -0x1e94,uVar2)" ( (binary_expression "*(int *)(pcVar10 + 0x2c489c) + -0x1e94" (pointer_expression "*(int *)(pcVar10 + 0x2c489c)" * (cast_expression "(int *)(pcVar10 + 0x2c489c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2c489c)" ( (binary_expression "pcVar10 + 0x2c489c" identifier + number_literal) )))) + number_literal) , identifier ))) ;) comment comment (expression_statement "(**(code **)(pcVar10 + 0x2c8c10))(10);" (call_expression "(**(code **)(pcVar10 + 0x2c8c10))(10)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2c8c10))" ( (pointer_expression "**(code **)(pcVar10 + 0x2c8c10)" * (pointer_expression "*(code **)(pcVar10 + 0x2c8c10)" * (cast_expression "(code **)(pcVar10 + 0x2c8c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2c8c10)" ( (binary_expression "pcVar10 + 0x2c8c10" identifier + number_literal) ))))) )) (argument_list "(10)" ( number_literal ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void __thiscall\ngold::General_options::parse_dynamic_list\n          (General_options *this,char *param_1,char *param_2,Command_line *param_3)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 *puVar4;\n  One_option *this_00;\n  undefined4 *puVar5;\n  int iVar6;\n  undefined *puVar7;\n  code *pcVar8;\n  code *pcVar9;\n  undefined4 *puStack_168;\n  undefined4 *puStack_164;\n  undefined4 uStack_160;\n  int iStack_154;\n  char *pcStack_150;\n  \n  iVar1 = (*(code *)PTR_read_dynamic_list_004c2568)(param_2,param_3,this + 0x5950);\n  if (iVar1 != 0) {\n    this[0x5a1c] = (General_options)0x1;\n    return;\n  }\n  uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s__s_004c1a50 + 0x6370);\n  puVar7 = PTR_gold_fatal_004c2020;\n  (*(code *)PTR_gold_fatal_004c2020)();\n  uVar3 = (**(code **)(puVar7 + 0x2c8d98))(*(int *)(puVar7 + 0x2c4bb8) + 0x639c);\n  pcVar8 = *(code **)(puVar7 + 0x2c5188);\n  (*pcVar8)(uVar3,uVar2,param_2);\n  uVar2 = (**(code **)(pcVar8 + 0x2c8d48))(*(int *)(pcVar8 + 0x2c4b68) + 0x63d0);\n  pcVar8 = *(code **)(pcVar8 + 0x2c5138);\n  (*pcVar8)(uVar2,uVar3);\n  uVar2 = (**(code **)(pcVar8 + 0x2c8d04))(*(int *)(pcVar8 + 0x2c4b24) + 0x63f4);\n  pcVar8 = *(code **)(pcVar8 + 0x2c50f4);\n  (*pcVar8)(uVar2);\n  if (param_3[0x5b90] != (Command_line)0x0) {\n    param_3[0x5b90] = (Command_line)0x0;\n    return;\n  }\n  iVar1 = *(int *)(pcVar8 + 0x2c55f8) + -0x30d4;\n  FUN_001fcf2c();\n  puVar4 = (undefined4 *)(**(code **)(iVar1 + 0x2c8c90))(*(int *)(iVar1 + 0x2c4ab0) + 0x6414);\n  pcVar8 = *(code **)(iVar1 + 0x2c5080);\n  (*pcVar8)();\n  if (param_3[0x5b91] != (Command_line)0x0) {\n    param_3[0x5b91] = (Command_line)0x0;\n    return;\n  }\n  iVar1 = *(int *)(pcVar8 + 0x2c5584) + -0x3060;\n  FUN_001fcfa0();\n  if (puVar4 < (undefined4 *)0x40000000) {\n    uVar2 = (**(code **)(iVar1 + 0x2c4394))((int)puVar4 << 2);\n    (**(code **)(iVar1 + 0x2c8c54))(uVar2,0,(int)puVar4 << 2);\n    return;\n  }\n  pcVar8 = *(code **)(iVar1 + 0x2c4aac);\n  (*pcVar8)();\n  (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c489c) + 0xe80);\n  if (*(char *)(puVar4 + 7) == '\0') {\n    iVar6 = *(int *)(pcVar8 + 0x2c489c);\n    if (puVar4[1] == 0) {\n      iVar1 = 2;\n      goto LAB_001fd0dc;\n    }\n    if (*(char *)*puVar4 == '\0') {\n      iVar1 = 2;\n      if (((char *)*puVar4)[1] == '\0') {\n        iVar6 = *(int *)(pcVar8 + 0x2c489c);\n        goto LAB_001fd0dc;\n      }\n    }\n    else {\n      iVar1 = 2;\n    }\nLAB_001fd168:\n    if ((uint)puVar4[6] < 5) {\n                    \n                    \n      (*(pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4) + 0x2cc1c0))();\n      return;\n    }\n    uVar2 = 0x81;\nLAB_001fd378:\n    pcVar9 = *(code **)(pcVar8 + 0x2c49b0);\n    (*pcVar9)(*(int *)(pcVar8 + 0x2c49d0) + 0x6434,uVar2,*(int *)(pcVar8 + 0x2c489c) + -0x5148);\n    puVar5 = *(undefined4 **)(pcVar9 + 0x2c45fc);\n    iStack_154 = iVar1;\n    pcStack_150 = param_2;\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6468);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);\n    iVar1 = *(int *)(pcVar9 + 0x2c51dc);\n    puVar4 = *(undefined4 **)(iVar1 + -0x42ec);\n    if (puVar4 != *(undefined4 **)(iVar1 + -0x42e8)) {\n      do {\n        this_00 = (One_option *)*puVar4;\n        puVar4 = puVar4 + 1;\n        options::One_option::print(this_00);\n      } while (*(undefined4 **)(iVar1 + -0x42e8) != puVar4);\n    }\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6490);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);\n    puStack_168 = (undefined4 *)0x0;\n    puStack_164 = (undefined4 *)0x0;\n    uStack_160 = 0;\n    (**(code **)(pcVar9 + 0x2c51c0))(&puStack_168);\n    if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar9 + 0x2c46c0);\n      puVar4 = puStack_168;\n      do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);\n    }\n    (**(code **)(pcVar9 + 0x2c8900))(10);\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64a8);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);\n    if (puStack_168 != puStack_164) {\n      puStack_164 = puStack_168;\n    }\n    (**(code **)(pcVar9 + 0x2c51c4))(&puStack_168);\n    if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar9 + 0x2c46c0);\n      puVar4 = puStack_168;\n      do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);\n    }\n    (**(code **)(pcVar9 + 0x2c8900))(10);\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64c4);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*(int *)(pcVar9 + 0x2c46c0) + 0x64d8);\n    if (puStack_168 != (undefined4 *)0x0) {\n      (**(code **)(pcVar9 + 0x2c3f6c))();\n    }\n    return;\n  }\n  iVar1 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x6430);\n  iVar1 = iVar1 + 2;\n  if (puVar4[10] != 0) {\n    uVar2 = 0x6a;\n    if (puVar4[6] == 4) goto LAB_001fd378;\n    uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(puVar4[10],0x6a);\n    iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x653c,uVar2);\n    iVar1 = iVar1 + iVar6;\n  }\n  iVar6 = *(int *)(pcVar8 + 0x2c489c);\n  if (puVar4[1] != 0) {\n    if ((*(char *)*puVar4 != *(char *)(puVar4 + 7)) || (((char *)*puVar4)[1] != '\0')) {\n      iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x644c);\n      iVar1 = iVar1 + iVar6;\n      goto LAB_001fd168;\n    }\n    iVar6 = *(int *)(pcVar8 + 0x2c489c);\n  }\n  if (0x1d < iVar1) {\n    iVar1 = 0;\n    (**(code **)(pcVar8 + 0x2c8c10))(10);\n  }\nLAB_001fd0dc:\n  puVar5 = *(undefined4 **)(pcVar8 + 0x2c8a68);\n  do {\n    iVar1 = iVar1 + 1;\n    (**(code **)(pcVar8 + 0x2c8a4c))(0x20,*puVar5);\n  } while (iVar1 != 0x1e);\n  uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(puVar4[9]);\n  (**(code **)(pcVar8 + 0x2c8af0))(iVar6 + 0xec4,uVar2);\n  if (*(char *)(puVar4 + 0xd) == '\0') {\n                    \n                    \n    (**(code **)(pcVar8 + 0x2c8c10))(10);\n    return;\n  }\n  uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(*(int *)(pcVar8 + 0x2c49d0) + 0x6460);\n  (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c489c) + -0x1e94,uVar2);\n                    \n                    \n  (**(code **)(pcVar8 + 0x2c8c10))(10);\n  return;\n}\n\n" (function_definition "void __thiscall\ngold::General_options::parse_dynamic_list\n          (General_options *this,char *param_1,char *param_2,Command_line *param_3)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 *puVar4;\n  One_option *this_00;\n  undefined4 *puVar5;\n  int iVar6;\n  undefined *puVar7;\n  code *pcVar8;\n  code *pcVar9;\n  undefined4 *puStack_168;\n  undefined4 *puStack_164;\n  undefined4 uStack_160;\n  int iStack_154;\n  char *pcStack_150;\n  \n  iVar1 = (*(code *)PTR_read_dynamic_list_004c2568)(param_2,param_3,this + 0x5950);\n  if (iVar1 != 0) {\n    this[0x5a1c] = (General_options)0x1;\n    return;\n  }\n  uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s__s_004c1a50 + 0x6370);\n  puVar7 = PTR_gold_fatal_004c2020;\n  (*(code *)PTR_gold_fatal_004c2020)();\n  uVar3 = (**(code **)(puVar7 + 0x2c8d98))(*(int *)(puVar7 + 0x2c4bb8) + 0x639c);\n  pcVar8 = *(code **)(puVar7 + 0x2c5188);\n  (*pcVar8)(uVar3,uVar2,param_2);\n  uVar2 = (**(code **)(pcVar8 + 0x2c8d48))(*(int *)(pcVar8 + 0x2c4b68) + 0x63d0);\n  pcVar8 = *(code **)(pcVar8 + 0x2c5138);\n  (*pcVar8)(uVar2,uVar3);\n  uVar2 = (**(code **)(pcVar8 + 0x2c8d04))(*(int *)(pcVar8 + 0x2c4b24) + 0x63f4);\n  pcVar8 = *(code **)(pcVar8 + 0x2c50f4);\n  (*pcVar8)(uVar2);\n  if (param_3[0x5b90] != (Command_line)0x0) {\n    param_3[0x5b90] = (Command_line)0x0;\n    return;\n  }\n  iVar1 = *(int *)(pcVar8 + 0x2c55f8) + -0x30d4;\n  FUN_001fcf2c();\n  puVar4 = (undefined4 *)(**(code **)(iVar1 + 0x2c8c90))(*(int *)(iVar1 + 0x2c4ab0) + 0x6414);\n  pcVar8 = *(code **)(iVar1 + 0x2c5080);\n  (*pcVar8)();\n  if (param_3[0x5b91] != (Command_line)0x0) {\n    param_3[0x5b91] = (Command_line)0x0;\n    return;\n  }\n  iVar1 = *(int *)(pcVar8 + 0x2c5584) + -0x3060;\n  FUN_001fcfa0();\n  if (puVar4 < (undefined4 *)0x40000000) {\n    uVar2 = (**(code **)(iVar1 + 0x2c4394))((int)puVar4 << 2);\n    (**(code **)(iVar1 + 0x2c8c54))(uVar2,0,(int)puVar4 << 2);\n    return;\n  }\n  pcVar8 = *(code **)(iVar1 + 0x2c4aac);\n  (*pcVar8)();\n  (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c489c) + 0xe80);\n  if (*(char *)(puVar4 + 7) == '\0') {\n    iVar6 = *(int *)(pcVar8 + 0x2c489c);\n    if (puVar4[1] == 0) {\n      iVar1 = 2;\n      goto LAB_001fd0dc;\n    }\n    if (*(char *)*puVar4 == '\0') {\n      iVar1 = 2;\n      if (((char *)*puVar4)[1] == '\0') {\n        iVar6 = *(int *)(pcVar8 + 0x2c489c);\n        goto LAB_001fd0dc;\n      }\n    }\n    else {\n      iVar1 = 2;\n    }\nLAB_001fd168:\n    if ((uint)puVar4[6] < 5) {\n                    \n                    \n      (*(pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4) + 0x2cc1c0))();\n      return;\n    }\n    uVar2 = 0x81;\nLAB_001fd378:\n    pcVar9 = *(code **)(pcVar8 + 0x2c49b0);\n    (*pcVar9)(*(int *)(pcVar8 + 0x2c49d0) + 0x6434,uVar2,*(int *)(pcVar8 + 0x2c489c) + -0x5148);\n    puVar5 = *(undefined4 **)(pcVar9 + 0x2c45fc);\n    iStack_154 = iVar1;\n    pcStack_150 = param_2;\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6468);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);\n    iVar1 = *(int *)(pcVar9 + 0x2c51dc);\n    puVar4 = *(undefined4 **)(iVar1 + -0x42ec);\n    if (puVar4 != *(undefined4 **)(iVar1 + -0x42e8)) {\n      do {\n        this_00 = (One_option *)*puVar4;\n        puVar4 = puVar4 + 1;\n        options::One_option::print(this_00);\n      } while (*(undefined4 **)(iVar1 + -0x42e8) != puVar4);\n    }\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6490);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);\n    puStack_168 = (undefined4 *)0x0;\n    puStack_164 = (undefined4 *)0x0;\n    uStack_160 = 0;\n    (**(code **)(pcVar9 + 0x2c51c0))(&puStack_168);\n    if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar9 + 0x2c46c0);\n      puVar4 = puStack_168;\n      do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);\n    }\n    (**(code **)(pcVar9 + 0x2c8900))(10);\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64a8);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);\n    if (puStack_168 != puStack_164) {\n      puStack_164 = puStack_168;\n    }\n    (**(code **)(pcVar9 + 0x2c51c4))(&puStack_168);\n    if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar9 + 0x2c46c0);\n      puVar4 = puStack_168;\n      do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);\n    }\n    (**(code **)(pcVar9 + 0x2c8900))(10);\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64c4);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*(int *)(pcVar9 + 0x2c46c0) + 0x64d8);\n    if (puStack_168 != (undefined4 *)0x0) {\n      (**(code **)(pcVar9 + 0x2c3f6c))();\n    }\n    return;\n  }\n  iVar1 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x6430);\n  iVar1 = iVar1 + 2;\n  if (puVar4[10] != 0) {\n    uVar2 = 0x6a;\n    if (puVar4[6] == 4) goto LAB_001fd378;\n    uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(puVar4[10],0x6a);\n    iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x653c,uVar2);\n    iVar1 = iVar1 + iVar6;\n  }\n  iVar6 = *(int *)(pcVar8 + 0x2c489c);\n  if (puVar4[1] != 0) {\n    if ((*(char *)*puVar4 != *(char *)(puVar4 + 7)) || (((char *)*puVar4)[1] != '\0')) {\n      iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x644c);\n      iVar1 = iVar1 + iVar6;\n      goto LAB_001fd168;\n    }\n    iVar6 = *(int *)(pcVar8 + 0x2c489c);\n  }\n  if (0x1d < iVar1) {\n    iVar1 = 0;\n    (**(code **)(pcVar8 + 0x2c8c10))(10);\n  }\nLAB_001fd0dc:\n  puVar5 = *(undefined4 **)(pcVar8 + 0x2c8a68);\n  do {\n    iVar1 = iVar1 + 1;\n    (**(code **)(pcVar8 + 0x2c8a4c))(0x20,*puVar5);\n  } while (iVar1 != 0x1e);\n  uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(puVar4[9]);\n  (**(code **)(pcVar8 + 0x2c8af0))(iVar6 + 0xec4,uVar2);\n  if (*(char *)(puVar4 + 0xd) == '\0') {\n                    \n                    \n    (**(code **)(pcVar8 + 0x2c8c10))(10);\n    return;\n  }\n  uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(*(int *)(pcVar8 + 0x2c49d0) + 0x6460);\n  (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c489c) + -0x1e94,uVar2);\n                    \n                    \n  (**(code **)(pcVar8 + 0x2c8c10))(10);\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::General_options::" identifier : : identifier : :) (function_declarator "parse_dynamic_list\n          (General_options *this,char *param_1,char *param_2,Command_line *param_3)" identifier (parameter_list "(General_options *this,char *param_1,char *param_2,Command_line *param_3)" ( (parameter_declaration "General_options *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "Command_line *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 *puVar4;\n  One_option *this_00;\n  undefined4 *puVar5;\n  int iVar6;\n  undefined *puVar7;\n  code *pcVar8;\n  code *pcVar9;\n  undefined4 *puStack_168;\n  undefined4 *puStack_164;\n  undefined4 uStack_160;\n  int iStack_154;\n  char *pcStack_150;\n  \n  iVar1 = (*(code *)PTR_read_dynamic_list_004c2568)(param_2,param_3,this + 0x5950);\n  if (iVar1 != 0) {\n    this[0x5a1c] = (General_options)0x1;\n    return;\n  }\n  uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s__s_004c1a50 + 0x6370);\n  puVar7 = PTR_gold_fatal_004c2020;\n  (*(code *)PTR_gold_fatal_004c2020)();\n  uVar3 = (**(code **)(puVar7 + 0x2c8d98))(*(int *)(puVar7 + 0x2c4bb8) + 0x639c);\n  pcVar8 = *(code **)(puVar7 + 0x2c5188);\n  (*pcVar8)(uVar3,uVar2,param_2);\n  uVar2 = (**(code **)(pcVar8 + 0x2c8d48))(*(int *)(pcVar8 + 0x2c4b68) + 0x63d0);\n  pcVar8 = *(code **)(pcVar8 + 0x2c5138);\n  (*pcVar8)(uVar2,uVar3);\n  uVar2 = (**(code **)(pcVar8 + 0x2c8d04))(*(int *)(pcVar8 + 0x2c4b24) + 0x63f4);\n  pcVar8 = *(code **)(pcVar8 + 0x2c50f4);\n  (*pcVar8)(uVar2);\n  if (param_3[0x5b90] != (Command_line)0x0) {\n    param_3[0x5b90] = (Command_line)0x0;\n    return;\n  }\n  iVar1 = *(int *)(pcVar8 + 0x2c55f8) + -0x30d4;\n  FUN_001fcf2c();\n  puVar4 = (undefined4 *)(**(code **)(iVar1 + 0x2c8c90))(*(int *)(iVar1 + 0x2c4ab0) + 0x6414);\n  pcVar8 = *(code **)(iVar1 + 0x2c5080);\n  (*pcVar8)();\n  if (param_3[0x5b91] != (Command_line)0x0) {\n    param_3[0x5b91] = (Command_line)0x0;\n    return;\n  }\n  iVar1 = *(int *)(pcVar8 + 0x2c5584) + -0x3060;\n  FUN_001fcfa0();\n  if (puVar4 < (undefined4 *)0x40000000) {\n    uVar2 = (**(code **)(iVar1 + 0x2c4394))((int)puVar4 << 2);\n    (**(code **)(iVar1 + 0x2c8c54))(uVar2,0,(int)puVar4 << 2);\n    return;\n  }\n  pcVar8 = *(code **)(iVar1 + 0x2c4aac);\n  (*pcVar8)();\n  (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c489c) + 0xe80);\n  if (*(char *)(puVar4 + 7) == '\0') {\n    iVar6 = *(int *)(pcVar8 + 0x2c489c);\n    if (puVar4[1] == 0) {\n      iVar1 = 2;\n      goto LAB_001fd0dc;\n    }\n    if (*(char *)*puVar4 == '\0') {\n      iVar1 = 2;\n      if (((char *)*puVar4)[1] == '\0') {\n        iVar6 = *(int *)(pcVar8 + 0x2c489c);\n        goto LAB_001fd0dc;\n      }\n    }\n    else {\n      iVar1 = 2;\n    }\nLAB_001fd168:\n    if ((uint)puVar4[6] < 5) {\n                    \n                    \n      (*(pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4) + 0x2cc1c0))();\n      return;\n    }\n    uVar2 = 0x81;\nLAB_001fd378:\n    pcVar9 = *(code **)(pcVar8 + 0x2c49b0);\n    (*pcVar9)(*(int *)(pcVar8 + 0x2c49d0) + 0x6434,uVar2,*(int *)(pcVar8 + 0x2c489c) + -0x5148);\n    puVar5 = *(undefined4 **)(pcVar9 + 0x2c45fc);\n    iStack_154 = iVar1;\n    pcStack_150 = param_2;\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6468);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);\n    iVar1 = *(int *)(pcVar9 + 0x2c51dc);\n    puVar4 = *(undefined4 **)(iVar1 + -0x42ec);\n    if (puVar4 != *(undefined4 **)(iVar1 + -0x42e8)) {\n      do {\n        this_00 = (One_option *)*puVar4;\n        puVar4 = puVar4 + 1;\n        options::One_option::print(this_00);\n      } while (*(undefined4 **)(iVar1 + -0x42e8) != puVar4);\n    }\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6490);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);\n    puStack_168 = (undefined4 *)0x0;\n    puStack_164 = (undefined4 *)0x0;\n    uStack_160 = 0;\n    (**(code **)(pcVar9 + 0x2c51c0))(&puStack_168);\n    if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar9 + 0x2c46c0);\n      puVar4 = puStack_168;\n      do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);\n    }\n    (**(code **)(pcVar9 + 0x2c8900))(10);\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64a8);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);\n    if (puStack_168 != puStack_164) {\n      puStack_164 = puStack_168;\n    }\n    (**(code **)(pcVar9 + 0x2c51c4))(&puStack_168);\n    if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar9 + 0x2c46c0);\n      puVar4 = puStack_168;\n      do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);\n    }\n    (**(code **)(pcVar9 + 0x2c8900))(10);\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64c4);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*(int *)(pcVar9 + 0x2c46c0) + 0x64d8);\n    if (puStack_168 != (undefined4 *)0x0) {\n      (**(code **)(pcVar9 + 0x2c3f6c))();\n    }\n    return;\n  }\n  iVar1 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x6430);\n  iVar1 = iVar1 + 2;\n  if (puVar4[10] != 0) {\n    uVar2 = 0x6a;\n    if (puVar4[6] == 4) goto LAB_001fd378;\n    uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(puVar4[10],0x6a);\n    iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x653c,uVar2);\n    iVar1 = iVar1 + iVar6;\n  }\n  iVar6 = *(int *)(pcVar8 + 0x2c489c);\n  if (puVar4[1] != 0) {\n    if ((*(char *)*puVar4 != *(char *)(puVar4 + 7)) || (((char *)*puVar4)[1] != '\0')) {\n      iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x644c);\n      iVar1 = iVar1 + iVar6;\n      goto LAB_001fd168;\n    }\n    iVar6 = *(int *)(pcVar8 + 0x2c489c);\n  }\n  if (0x1d < iVar1) {\n    iVar1 = 0;\n    (**(code **)(pcVar8 + 0x2c8c10))(10);\n  }\nLAB_001fd0dc:\n  puVar5 = *(undefined4 **)(pcVar8 + 0x2c8a68);\n  do {\n    iVar1 = iVar1 + 1;\n    (**(code **)(pcVar8 + 0x2c8a4c))(0x20,*puVar5);\n  } while (iVar1 != 0x1e);\n  uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(puVar4[9]);\n  (**(code **)(pcVar8 + 0x2c8af0))(iVar6 + 0xec4,uVar2);\n  if (*(char *)(puVar4 + 0xd) == '\0') {\n                    \n                    \n    (**(code **)(pcVar8 + 0x2c8c10))(10);\n    return;\n  }\n  uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(*(int *)(pcVar8 + 0x2c49d0) + 0x6460);\n  (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c489c) + -0x1e94,uVar2);\n                    \n                    \n  (**(code **)(pcVar8 + 0x2c8c10))(10);\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "One_option *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "code *pcVar8;" type_identifier (pointer_declarator "*pcVar8" * identifier) ;) (declaration "code *pcVar9;" type_identifier (pointer_declarator "*pcVar9" * identifier) ;) (declaration "undefined4 *puStack_168;" type_identifier (pointer_declarator "*puStack_168" * identifier) ;) (declaration "undefined4 *puStack_164;" type_identifier (pointer_declarator "*puStack_164" * identifier) ;) (declaration "undefined4 uStack_160;" type_identifier identifier ;) (declaration "int iStack_154;" primitive_type identifier ;) (declaration "char *pcStack_150;" primitive_type (pointer_declarator "*pcStack_150" * identifier) ;) (expression_statement "iVar1 = (*(code *)PTR_read_dynamic_list_004c2568)(param_2,param_3,this + 0x5950);" (assignment_expression "iVar1 = (*(code *)PTR_read_dynamic_list_004c2568)(param_2,param_3,this + 0x5950)" identifier = (call_expression "(*(code *)PTR_read_dynamic_list_004c2568)(param_2,param_3,this + 0x5950)" (parenthesized_expression "(*(code *)PTR_read_dynamic_list_004c2568)" ( (pointer_expression "*(code *)PTR_read_dynamic_list_004c2568" * (cast_expression "(code *)PTR_read_dynamic_list_004c2568" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2,param_3,this + 0x5950)" ( identifier , identifier , (binary_expression "this + 0x5950" identifier + number_literal) )))) ;) (if_statement "if (iVar1 != 0) {\n    this[0x5a1c] = (General_options)0x1;\n    return;\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    this[0x5a1c] = (General_options)0x1;\n    return;\n  }" { (expression_statement "this[0x5a1c] = (General_options)0x1;" (assignment_expression "this[0x5a1c] = (General_options)0x1" (subscript_expression "this[0x5a1c]" identifier [ number_literal ]) = (cast_expression "(General_options)0x1" ( (type_descriptor "General_options" type_identifier) ) number_literal)) ;) (return_statement "return;" return ;) })) (expression_statement "uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s__s_004c1a50 + 0x6370);" (assignment_expression "uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s__s_004c1a50 + 0x6370)" identifier = (call_expression "(*(code *)PTR_gettext_004c5c30)(PTR_s__s_004c1a50 + 0x6370)" (parenthesized_expression "(*(code *)PTR_gettext_004c5c30)" ( (pointer_expression "*(code *)PTR_gettext_004c5c30" * (cast_expression "(code *)PTR_gettext_004c5c30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s__s_004c1a50 + 0x6370)" ( (binary_expression "PTR_s__s_004c1a50 + 0x6370" identifier + number_literal) )))) ;) (expression_statement "puVar7 = PTR_gold_fatal_004c2020;" (assignment_expression "puVar7 = PTR_gold_fatal_004c2020" identifier = identifier) ;) (expression_statement "(*(code *)PTR_gold_fatal_004c2020)();" (call_expression "(*(code *)PTR_gold_fatal_004c2020)()" (parenthesized_expression "(*(code *)PTR_gold_fatal_004c2020)" ( (pointer_expression "*(code *)PTR_gold_fatal_004c2020" * (cast_expression "(code *)PTR_gold_fatal_004c2020" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar3 = (**(code **)(puVar7 + 0x2c8d98))(*(int *)(puVar7 + 0x2c4bb8) + 0x639c);" (assignment_expression "uVar3 = (**(code **)(puVar7 + 0x2c8d98))(*(int *)(puVar7 + 0x2c4bb8) + 0x639c)" identifier = (call_expression "(**(code **)(puVar7 + 0x2c8d98))(*(int *)(puVar7 + 0x2c4bb8) + 0x639c)" (parenthesized_expression "(**(code **)(puVar7 + 0x2c8d98))" ( (pointer_expression "**(code **)(puVar7 + 0x2c8d98)" * (pointer_expression "*(code **)(puVar7 + 0x2c8d98)" * (cast_expression "(code **)(puVar7 + 0x2c8d98)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x2c8d98)" ( (binary_expression "puVar7 + 0x2c8d98" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar7 + 0x2c4bb8) + 0x639c)" ( (binary_expression "*(int *)(puVar7 + 0x2c4bb8) + 0x639c" (pointer_expression "*(int *)(puVar7 + 0x2c4bb8)" * (cast_expression "(int *)(puVar7 + 0x2c4bb8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x2c4bb8)" ( (binary_expression "puVar7 + 0x2c4bb8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pcVar8 = *(code **)(puVar7 + 0x2c5188);" (assignment_expression "pcVar8 = *(code **)(puVar7 + 0x2c5188)" identifier = (pointer_expression "*(code **)(puVar7 + 0x2c5188)" * (cast_expression "(code **)(puVar7 + 0x2c5188)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x2c5188)" ( (binary_expression "puVar7 + 0x2c5188" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar8)(uVar3,uVar2,param_2);" (call_expression "(*pcVar8)(uVar3,uVar2,param_2)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(uVar3,uVar2,param_2)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar2 = (**(code **)(pcVar8 + 0x2c8d48))(*(int *)(pcVar8 + 0x2c4b68) + 0x63d0);" (assignment_expression "uVar2 = (**(code **)(pcVar8 + 0x2c8d48))(*(int *)(pcVar8 + 0x2c4b68) + 0x63d0)" identifier = (call_expression "(**(code **)(pcVar8 + 0x2c8d48))(*(int *)(pcVar8 + 0x2c4b68) + 0x63d0)" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8d48))" ( (pointer_expression "**(code **)(pcVar8 + 0x2c8d48)" * (pointer_expression "*(code **)(pcVar8 + 0x2c8d48)" * (cast_expression "(code **)(pcVar8 + 0x2c8d48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x2c8d48)" ( (binary_expression "pcVar8 + 0x2c8d48" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar8 + 0x2c4b68) + 0x63d0)" ( (binary_expression "*(int *)(pcVar8 + 0x2c4b68) + 0x63d0" (pointer_expression "*(int *)(pcVar8 + 0x2c4b68)" * (cast_expression "(int *)(pcVar8 + 0x2c4b68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x2c4b68)" ( (binary_expression "pcVar8 + 0x2c4b68" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pcVar8 = *(code **)(pcVar8 + 0x2c5138);" (assignment_expression "pcVar8 = *(code **)(pcVar8 + 0x2c5138)" identifier = (pointer_expression "*(code **)(pcVar8 + 0x2c5138)" * (cast_expression "(code **)(pcVar8 + 0x2c5138)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x2c5138)" ( (binary_expression "pcVar8 + 0x2c5138" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar8)(uVar2,uVar3);" (call_expression "(*pcVar8)(uVar2,uVar3)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(uVar2,uVar3)" ( identifier , identifier ))) ;) (expression_statement "uVar2 = (**(code **)(pcVar8 + 0x2c8d04))(*(int *)(pcVar8 + 0x2c4b24) + 0x63f4);" (assignment_expression "uVar2 = (**(code **)(pcVar8 + 0x2c8d04))(*(int *)(pcVar8 + 0x2c4b24) + 0x63f4)" identifier = (call_expression "(**(code **)(pcVar8 + 0x2c8d04))(*(int *)(pcVar8 + 0x2c4b24) + 0x63f4)" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8d04))" ( (pointer_expression "**(code **)(pcVar8 + 0x2c8d04)" * (pointer_expression "*(code **)(pcVar8 + 0x2c8d04)" * (cast_expression "(code **)(pcVar8 + 0x2c8d04)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x2c8d04)" ( (binary_expression "pcVar8 + 0x2c8d04" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar8 + 0x2c4b24) + 0x63f4)" ( (binary_expression "*(int *)(pcVar8 + 0x2c4b24) + 0x63f4" (pointer_expression "*(int *)(pcVar8 + 0x2c4b24)" * (cast_expression "(int *)(pcVar8 + 0x2c4b24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x2c4b24)" ( (binary_expression "pcVar8 + 0x2c4b24" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pcVar8 = *(code **)(pcVar8 + 0x2c50f4);" (assignment_expression "pcVar8 = *(code **)(pcVar8 + 0x2c50f4)" identifier = (pointer_expression "*(code **)(pcVar8 + 0x2c50f4)" * (cast_expression "(code **)(pcVar8 + 0x2c50f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x2c50f4)" ( (binary_expression "pcVar8 + 0x2c50f4" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar8)(uVar2);" (call_expression "(*pcVar8)(uVar2)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(uVar2)" ( identifier ))) ;) (if_statement "if (param_3[0x5b90] != (Command_line)0x0) {\n    param_3[0x5b90] = (Command_line)0x0;\n    return;\n  }" if (parenthesized_expression "(param_3[0x5b90] != (Command_line)0x0)" ( (binary_expression "param_3[0x5b90] != (Command_line)0x0" (subscript_expression "param_3[0x5b90]" identifier [ number_literal ]) != (cast_expression "(Command_line)0x0" ( (type_descriptor "Command_line" type_identifier) ) number_literal)) )) (compound_statement "{\n    param_3[0x5b90] = (Command_line)0x0;\n    return;\n  }" { (expression_statement "param_3[0x5b90] = (Command_line)0x0;" (assignment_expression "param_3[0x5b90] = (Command_line)0x0" (subscript_expression "param_3[0x5b90]" identifier [ number_literal ]) = (cast_expression "(Command_line)0x0" ( (type_descriptor "Command_line" type_identifier) ) number_literal)) ;) (return_statement "return;" return ;) })) (expression_statement "iVar1 = *(int *)(pcVar8 + 0x2c55f8) + -0x30d4;" (assignment_expression "iVar1 = *(int *)(pcVar8 + 0x2c55f8) + -0x30d4" identifier = (binary_expression "*(int *)(pcVar8 + 0x2c55f8) + -0x30d4" (pointer_expression "*(int *)(pcVar8 + 0x2c55f8)" * (cast_expression "(int *)(pcVar8 + 0x2c55f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x2c55f8)" ( (binary_expression "pcVar8 + 0x2c55f8" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "FUN_001fcf2c();" (call_expression "FUN_001fcf2c()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar4 = (undefined4 *)(**(code **)(iVar1 + 0x2c8c90))(*(int *)(iVar1 + 0x2c4ab0) + 0x6414);" (assignment_expression "puVar4 = (undefined4 *)(**(code **)(iVar1 + 0x2c8c90))(*(int *)(iVar1 + 0x2c4ab0) + 0x6414)" identifier = (cast_expression "(undefined4 *)(**(code **)(iVar1 + 0x2c8c90))(*(int *)(iVar1 + 0x2c4ab0) + 0x6414)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar1 + 0x2c8c90))(*(int *)(iVar1 + 0x2c4ab0) + 0x6414)" (parenthesized_expression "(**(code **)(iVar1 + 0x2c8c90))" ( (pointer_expression "**(code **)(iVar1 + 0x2c8c90)" * (pointer_expression "*(code **)(iVar1 + 0x2c8c90)" * (cast_expression "(code **)(iVar1 + 0x2c8c90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x2c8c90)" ( (binary_expression "iVar1 + 0x2c8c90" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar1 + 0x2c4ab0) + 0x6414)" ( (binary_expression "*(int *)(iVar1 + 0x2c4ab0) + 0x6414" (pointer_expression "*(int *)(iVar1 + 0x2c4ab0)" * (cast_expression "(int *)(iVar1 + 0x2c4ab0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x2c4ab0)" ( (binary_expression "iVar1 + 0x2c4ab0" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pcVar8 = *(code **)(iVar1 + 0x2c5080);" (assignment_expression "pcVar8 = *(code **)(iVar1 + 0x2c5080)" identifier = (pointer_expression "*(code **)(iVar1 + 0x2c5080)" * (cast_expression "(code **)(iVar1 + 0x2c5080)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x2c5080)" ( (binary_expression "iVar1 + 0x2c5080" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar8)();" (call_expression "(*pcVar8)()" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if (param_3[0x5b91] != (Command_line)0x0) {\n    param_3[0x5b91] = (Command_line)0x0;\n    return;\n  }" if (parenthesized_expression "(param_3[0x5b91] != (Command_line)0x0)" ( (binary_expression "param_3[0x5b91] != (Command_line)0x0" (subscript_expression "param_3[0x5b91]" identifier [ number_literal ]) != (cast_expression "(Command_line)0x0" ( (type_descriptor "Command_line" type_identifier) ) number_literal)) )) (compound_statement "{\n    param_3[0x5b91] = (Command_line)0x0;\n    return;\n  }" { (expression_statement "param_3[0x5b91] = (Command_line)0x0;" (assignment_expression "param_3[0x5b91] = (Command_line)0x0" (subscript_expression "param_3[0x5b91]" identifier [ number_literal ]) = (cast_expression "(Command_line)0x0" ( (type_descriptor "Command_line" type_identifier) ) number_literal)) ;) (return_statement "return;" return ;) })) (expression_statement "iVar1 = *(int *)(pcVar8 + 0x2c5584) + -0x3060;" (assignment_expression "iVar1 = *(int *)(pcVar8 + 0x2c5584) + -0x3060" identifier = (binary_expression "*(int *)(pcVar8 + 0x2c5584) + -0x3060" (pointer_expression "*(int *)(pcVar8 + 0x2c5584)" * (cast_expression "(int *)(pcVar8 + 0x2c5584)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x2c5584)" ( (binary_expression "pcVar8 + 0x2c5584" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "FUN_001fcfa0();" (call_expression "FUN_001fcfa0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (puVar4 < (undefined4 *)0x40000000) {\n    uVar2 = (**(code **)(iVar1 + 0x2c4394))((int)puVar4 << 2);\n    (**(code **)(iVar1 + 0x2c8c54))(uVar2,0,(int)puVar4 << 2);\n    return;\n  }" if (parenthesized_expression "(puVar4 < (undefined4 *)0x40000000)" ( (binary_expression "puVar4 < (undefined4 *)0x40000000" identifier < (cast_expression "(undefined4 *)0x40000000" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar2 = (**(code **)(iVar1 + 0x2c4394))((int)puVar4 << 2);\n    (**(code **)(iVar1 + 0x2c8c54))(uVar2,0,(int)puVar4 << 2);\n    return;\n  }" { (expression_statement "uVar2 = (**(code **)(iVar1 + 0x2c4394))((int)puVar4 << 2);" (assignment_expression "uVar2 = (**(code **)(iVar1 + 0x2c4394))((int)puVar4 << 2)" identifier = (call_expression "(**(code **)(iVar1 + 0x2c4394))((int)puVar4 << 2)" (parenthesized_expression "(**(code **)(iVar1 + 0x2c4394))" ( (pointer_expression "**(code **)(iVar1 + 0x2c4394)" * (pointer_expression "*(code **)(iVar1 + 0x2c4394)" * (cast_expression "(code **)(iVar1 + 0x2c4394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x2c4394)" ( (binary_expression "iVar1 + 0x2c4394" identifier + number_literal) ))))) )) (argument_list "((int)puVar4 << 2)" ( (binary_expression "(int)puVar4 << 2" (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "(**(code **)(iVar1 + 0x2c8c54))(uVar2,0,(int)puVar4 << 2);" (call_expression "(**(code **)(iVar1 + 0x2c8c54))(uVar2,0,(int)puVar4 << 2)" (parenthesized_expression "(**(code **)(iVar1 + 0x2c8c54))" ( (pointer_expression "**(code **)(iVar1 + 0x2c8c54)" * (pointer_expression "*(code **)(iVar1 + 0x2c8c54)" * (cast_expression "(code **)(iVar1 + 0x2c8c54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x2c8c54)" ( (binary_expression "iVar1 + 0x2c8c54" identifier + number_literal) ))))) )) (argument_list "(uVar2,0,(int)puVar4 << 2)" ( identifier , number_literal , (binary_expression "(int)puVar4 << 2" (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "pcVar8 = *(code **)(iVar1 + 0x2c4aac);" (assignment_expression "pcVar8 = *(code **)(iVar1 + 0x2c4aac)" identifier = (pointer_expression "*(code **)(iVar1 + 0x2c4aac)" * (cast_expression "(code **)(iVar1 + 0x2c4aac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x2c4aac)" ( (binary_expression "iVar1 + 0x2c4aac" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar8)();" (call_expression "(*pcVar8)()" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c489c) + 0xe80);" (call_expression "(**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c489c) + 0xe80)" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8af0))" ( (pointer_expression "**(code **)(pcVar8 + 0x2c8af0)" * (pointer_expression "*(code **)(pcVar8 + 0x2c8af0)" * (cast_expression "(code **)(pcVar8 + 0x2c8af0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x2c8af0)" ( (binary_expression "pcVar8 + 0x2c8af0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar8 + 0x2c489c) + 0xe80)" ( (binary_expression "*(int *)(pcVar8 + 0x2c489c) + 0xe80" (pointer_expression "*(int *)(pcVar8 + 0x2c489c)" * (cast_expression "(int *)(pcVar8 + 0x2c489c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x2c489c)" ( (binary_expression "pcVar8 + 0x2c489c" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (*(char *)(puVar4 + 7) == '\0') {\n    iVar6 = *(int *)(pcVar8 + 0x2c489c);\n    if (puVar4[1] == 0) {\n      iVar1 = 2;\n      goto LAB_001fd0dc;\n    }\n    if (*(char *)*puVar4 == '\0') {\n      iVar1 = 2;\n      if (((char *)*puVar4)[1] == '\0') {\n        iVar6 = *(int *)(pcVar8 + 0x2c489c);\n        goto LAB_001fd0dc;\n      }\n    }\n    else {\n      iVar1 = 2;\n    }\nLAB_001fd168:\n    if ((uint)puVar4[6] < 5) {\n                    \n                    \n      (*(pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4) + 0x2cc1c0))();\n      return;\n    }\n    uVar2 = 0x81;\nLAB_001fd378:\n    pcVar9 = *(code **)(pcVar8 + 0x2c49b0);\n    (*pcVar9)(*(int *)(pcVar8 + 0x2c49d0) + 0x6434,uVar2,*(int *)(pcVar8 + 0x2c489c) + -0x5148);\n    puVar5 = *(undefined4 **)(pcVar9 + 0x2c45fc);\n    iStack_154 = iVar1;\n    pcStack_150 = param_2;\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6468);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);\n    iVar1 = *(int *)(pcVar9 + 0x2c51dc);\n    puVar4 = *(undefined4 **)(iVar1 + -0x42ec);\n    if (puVar4 != *(undefined4 **)(iVar1 + -0x42e8)) {\n      do {\n        this_00 = (One_option *)*puVar4;\n        puVar4 = puVar4 + 1;\n        options::One_option::print(this_00);\n      } while (*(undefined4 **)(iVar1 + -0x42e8) != puVar4);\n    }\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6490);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);\n    puStack_168 = (undefined4 *)0x0;\n    puStack_164 = (undefined4 *)0x0;\n    uStack_160 = 0;\n    (**(code **)(pcVar9 + 0x2c51c0))(&puStack_168);\n    if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar9 + 0x2c46c0);\n      puVar4 = puStack_168;\n      do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);\n    }\n    (**(code **)(pcVar9 + 0x2c8900))(10);\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64a8);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);\n    if (puStack_168 != puStack_164) {\n      puStack_164 = puStack_168;\n    }\n    (**(code **)(pcVar9 + 0x2c51c4))(&puStack_168);\n    if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar9 + 0x2c46c0);\n      puVar4 = puStack_168;\n      do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);\n    }\n    (**(code **)(pcVar9 + 0x2c8900))(10);\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64c4);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*(int *)(pcVar9 + 0x2c46c0) + 0x64d8);\n    if (puStack_168 != (undefined4 *)0x0) {\n      (**(code **)(pcVar9 + 0x2c3f6c))();\n    }\n    return;\n  }" if (parenthesized_expression "(*(char *)(puVar4 + 7) == '\0')" ( (binary_expression "*(char *)(puVar4 + 7) == '\0'" (pointer_expression "*(char *)(puVar4 + 7)" * (cast_expression "(char *)(puVar4 + 7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 7)" ( (binary_expression "puVar4 + 7" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar6 = *(int *)(pcVar8 + 0x2c489c);\n    if (puVar4[1] == 0) {\n      iVar1 = 2;\n      goto LAB_001fd0dc;\n    }\n    if (*(char *)*puVar4 == '\0') {\n      iVar1 = 2;\n      if (((char *)*puVar4)[1] == '\0') {\n        iVar6 = *(int *)(pcVar8 + 0x2c489c);\n        goto LAB_001fd0dc;\n      }\n    }\n    else {\n      iVar1 = 2;\n    }\nLAB_001fd168:\n    if ((uint)puVar4[6] < 5) {\n                    \n                    \n      (*(pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4) + 0x2cc1c0))();\n      return;\n    }\n    uVar2 = 0x81;\nLAB_001fd378:\n    pcVar9 = *(code **)(pcVar8 + 0x2c49b0);\n    (*pcVar9)(*(int *)(pcVar8 + 0x2c49d0) + 0x6434,uVar2,*(int *)(pcVar8 + 0x2c489c) + -0x5148);\n    puVar5 = *(undefined4 **)(pcVar9 + 0x2c45fc);\n    iStack_154 = iVar1;\n    pcStack_150 = param_2;\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6468);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);\n    iVar1 = *(int *)(pcVar9 + 0x2c51dc);\n    puVar4 = *(undefined4 **)(iVar1 + -0x42ec);\n    if (puVar4 != *(undefined4 **)(iVar1 + -0x42e8)) {\n      do {\n        this_00 = (One_option *)*puVar4;\n        puVar4 = puVar4 + 1;\n        options::One_option::print(this_00);\n      } while (*(undefined4 **)(iVar1 + -0x42e8) != puVar4);\n    }\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6490);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);\n    puStack_168 = (undefined4 *)0x0;\n    puStack_164 = (undefined4 *)0x0;\n    uStack_160 = 0;\n    (**(code **)(pcVar9 + 0x2c51c0))(&puStack_168);\n    if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar9 + 0x2c46c0);\n      puVar4 = puStack_168;\n      do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);\n    }\n    (**(code **)(pcVar9 + 0x2c8900))(10);\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64a8);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);\n    if (puStack_168 != puStack_164) {\n      puStack_164 = puStack_168;\n    }\n    (**(code **)(pcVar9 + 0x2c51c4))(&puStack_168);\n    if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar9 + 0x2c46c0);\n      puVar4 = puStack_168;\n      do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);\n    }\n    (**(code **)(pcVar9 + 0x2c8900))(10);\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64c4);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*(int *)(pcVar9 + 0x2c46c0) + 0x64d8);\n    if (puStack_168 != (undefined4 *)0x0) {\n      (**(code **)(pcVar9 + 0x2c3f6c))();\n    }\n    return;\n  }" { (expression_statement "iVar6 = *(int *)(pcVar8 + 0x2c489c);" (assignment_expression "iVar6 = *(int *)(pcVar8 + 0x2c489c)" identifier = (pointer_expression "*(int *)(pcVar8 + 0x2c489c)" * (cast_expression "(int *)(pcVar8 + 0x2c489c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x2c489c)" ( (binary_expression "pcVar8 + 0x2c489c" identifier + number_literal) ))))) ;) (if_statement "if (puVar4[1] == 0) {\n      iVar1 = 2;\n      goto LAB_001fd0dc;\n    }" if (parenthesized_expression "(puVar4[1] == 0)" ( (binary_expression "puVar4[1] == 0" (subscript_expression "puVar4[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      iVar1 = 2;\n      goto LAB_001fd0dc;\n    }" { (expression_statement "iVar1 = 2;" (assignment_expression "iVar1 = 2" identifier = number_literal) ;) (goto_statement "goto LAB_001fd0dc;" goto statement_identifier ;) })) (if_statement "if (*(char *)*puVar4 == '\0') {\n      iVar1 = 2;\n      if (((char *)*puVar4)[1] == '\0') {\n        iVar6 = *(int *)(pcVar8 + 0x2c489c);\n        goto LAB_001fd0dc;\n      }\n    }\n    else {\n      iVar1 = 2;\n    }" if (parenthesized_expression "(*(char *)*puVar4 == '\0')" ( (binary_expression "*(char *)*puVar4 == '\0'" (pointer_expression "*(char *)*puVar4" * (cast_expression "(char *)*puVar4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar1 = 2;\n      if (((char *)*puVar4)[1] == '\0') {\n        iVar6 = *(int *)(pcVar8 + 0x2c489c);\n        goto LAB_001fd0dc;\n      }\n    }" { (expression_statement "iVar1 = 2;" (assignment_expression "iVar1 = 2" identifier = number_literal) ;) (if_statement "if (((char *)*puVar4)[1] == '\0') {\n        iVar6 = *(int *)(pcVar8 + 0x2c489c);\n        goto LAB_001fd0dc;\n      }" if (parenthesized_expression "(((char *)*puVar4)[1] == '\0')" ( (binary_expression "((char *)*puVar4)[1] == '\0'" (subscript_expression "((char *)*puVar4)[1]" (parenthesized_expression "((char *)*puVar4)" ( (cast_expression "(char *)*puVar4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier)) )) [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        iVar6 = *(int *)(pcVar8 + 0x2c489c);\n        goto LAB_001fd0dc;\n      }" { (expression_statement "iVar6 = *(int *)(pcVar8 + 0x2c489c);" (assignment_expression "iVar6 = *(int *)(pcVar8 + 0x2c489c)" identifier = (pointer_expression "*(int *)(pcVar8 + 0x2c489c)" * (cast_expression "(int *)(pcVar8 + 0x2c489c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x2c489c)" ( (binary_expression "pcVar8 + 0x2c489c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_001fd0dc;" goto statement_identifier ;) })) }) (else_clause "else {\n      iVar1 = 2;\n    }" else (compound_statement "{\n      iVar1 = 2;\n    }" { (expression_statement "iVar1 = 2;" (assignment_expression "iVar1 = 2" identifier = number_literal) ;) }))) (labeled_statement "LAB_001fd168:\n    if ((uint)puVar4[6] < 5) {\n                    \n                    \n      (*(pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4) + 0x2cc1c0))();\n      return;\n    }" statement_identifier : (if_statement "if ((uint)puVar4[6] < 5) {\n                    \n                    \n      (*(pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4) + 0x2cc1c0))();\n      return;\n    }" if (parenthesized_expression "((uint)puVar4[6] < 5)" ( (binary_expression "(uint)puVar4[6] < 5" (cast_expression "(uint)puVar4[6]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar4[6]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n                    \n                    \n      (*(pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4) + 0x2cc1c0))();\n      return;\n    }" { (expression_statement "(*(pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4) + 0x2cc1c0))();" (call_expression "(*(pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4) + 0x2cc1c0))()" (parenthesized_expression "(*(pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4) + 0x2cc1c0))" ( (pointer_expression "*(pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4) + 0x2cc1c0)" * (parenthesized_expression "(pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4) + 0x2cc1c0)" ( (binary_expression "pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4) + 0x2cc1c0" (binary_expression "pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4)" identifier + (pointer_expression "*(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4)" * (cast_expression "(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4)" ( (binary_expression "*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4" (binary_expression "*(int *)(pcVar8 + 0x2c489c) + -0x51b0" (pointer_expression "*(int *)(pcVar8 + 0x2c489c)" * (cast_expression "(int *)(pcVar8 + 0x2c489c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x2c489c)" ( (binary_expression "pcVar8 + 0x2c489c" identifier + number_literal) )))) + number_literal) + (binary_expression "puVar4[6] * 4" (subscript_expression "puVar4[6]" identifier [ number_literal ]) * number_literal)) ))))) + number_literal) ))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) }))) (expression_statement "uVar2 = 0x81;" (assignment_expression "uVar2 = 0x81" identifier = number_literal) ;) (labeled_statement "LAB_001fd378:\n    pcVar9 = *(code **)(pcVar8 + 0x2c49b0);" statement_identifier : (expression_statement "pcVar9 = *(code **)(pcVar8 + 0x2c49b0);" (assignment_expression "pcVar9 = *(code **)(pcVar8 + 0x2c49b0)" identifier = (pointer_expression "*(code **)(pcVar8 + 0x2c49b0)" * (cast_expression "(code **)(pcVar8 + 0x2c49b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x2c49b0)" ( (binary_expression "pcVar8 + 0x2c49b0" identifier + number_literal) ))))) ;)) (expression_statement "(*pcVar9)(*(int *)(pcVar8 + 0x2c49d0) + 0x6434,uVar2,*(int *)(pcVar8 + 0x2c489c) + -0x5148);" (call_expression "(*pcVar9)(*(int *)(pcVar8 + 0x2c49d0) + 0x6434,uVar2,*(int *)(pcVar8 + 0x2c489c) + -0x5148)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(*(int *)(pcVar8 + 0x2c49d0) + 0x6434,uVar2,*(int *)(pcVar8 + 0x2c489c) + -0x5148)" ( (binary_expression "*(int *)(pcVar8 + 0x2c49d0) + 0x6434" (pointer_expression "*(int *)(pcVar8 + 0x2c49d0)" * (cast_expression "(int *)(pcVar8 + 0x2c49d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x2c49d0)" ( (binary_expression "pcVar8 + 0x2c49d0" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar8 + 0x2c489c) + -0x5148" (pointer_expression "*(int *)(pcVar8 + 0x2c489c)" * (cast_expression "(int *)(pcVar8 + 0x2c489c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x2c489c)" ( (binary_expression "pcVar8 + 0x2c489c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "puVar5 = *(undefined4 **)(pcVar9 + 0x2c45fc);" (assignment_expression "puVar5 = *(undefined4 **)(pcVar9 + 0x2c45fc)" identifier = (pointer_expression "*(undefined4 **)(pcVar9 + 0x2c45fc)" * (cast_expression "(undefined4 **)(pcVar9 + 0x2c45fc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x2c45fc)" ( (binary_expression "pcVar9 + 0x2c45fc" identifier + number_literal) ))))) ;) (expression_statement "iStack_154 = iVar1;" (assignment_expression "iStack_154 = iVar1" identifier = identifier) ;) (expression_statement "pcStack_150 = param_2;" (assignment_expression "pcStack_150 = param_2" identifier = identifier) ;) (expression_statement "uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6468);" (assignment_expression "uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6468)" identifier = (call_expression "(**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6468)" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c88a0))" ( (pointer_expression "**(code **)(pcVar9 + 0x2c88a0)" * (pointer_expression "*(code **)(pcVar9 + 0x2c88a0)" * (cast_expression "(code **)(pcVar9 + 0x2c88a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x2c88a0)" ( (binary_expression "pcVar9 + 0x2c88a0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar9 + 0x2c46c0) + 0x6468)" ( (binary_expression "*(int *)(pcVar9 + 0x2c46c0) + 0x6468" (pointer_expression "*(int *)(pcVar9 + 0x2c46c0)" * (cast_expression "(int *)(pcVar9 + 0x2c46c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x2c46c0)" ( (binary_expression "pcVar9 + 0x2c46c0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);" (call_expression "(**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5)" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c87e0))" ( (pointer_expression "**(code **)(pcVar9 + 0x2c87e0)" * (pointer_expression "*(code **)(pcVar9 + 0x2c87e0)" * (cast_expression "(code **)(pcVar9 + 0x2c87e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x2c87e0)" ( (binary_expression "pcVar9 + 0x2c87e0" identifier + number_literal) ))))) )) (argument_list "(uVar2,*puVar5)" ( identifier , (pointer_expression "*puVar5" * identifier) ))) ;) (expression_statement "iVar1 = *(int *)(pcVar9 + 0x2c51dc);" (assignment_expression "iVar1 = *(int *)(pcVar9 + 0x2c51dc)" identifier = (pointer_expression "*(int *)(pcVar9 + 0x2c51dc)" * (cast_expression "(int *)(pcVar9 + 0x2c51dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x2c51dc)" ( (binary_expression "pcVar9 + 0x2c51dc" identifier + number_literal) ))))) ;) (expression_statement "puVar4 = *(undefined4 **)(iVar1 + -0x42ec);" (assignment_expression "puVar4 = *(undefined4 **)(iVar1 + -0x42ec)" identifier = (pointer_expression "*(undefined4 **)(iVar1 + -0x42ec)" * (cast_expression "(undefined4 **)(iVar1 + -0x42ec)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + -0x42ec)" ( (binary_expression "iVar1 + -0x42ec" identifier + number_literal) ))))) ;) (if_statement "if (puVar4 != *(undefined4 **)(iVar1 + -0x42e8)) {\n      do {\n        this_00 = (One_option *)*puVar4;\n        puVar4 = puVar4 + 1;\n        options::One_option::print(this_00);\n      } while (*(undefined4 **)(iVar1 + -0x42e8) != puVar4);\n    }" if (parenthesized_expression "(puVar4 != *(undefined4 **)(iVar1 + -0x42e8))" ( (binary_expression "puVar4 != *(undefined4 **)(iVar1 + -0x42e8)" identifier != (pointer_expression "*(undefined4 **)(iVar1 + -0x42e8)" * (cast_expression "(undefined4 **)(iVar1 + -0x42e8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + -0x42e8)" ( (binary_expression "iVar1 + -0x42e8" identifier + number_literal) ))))) )) (compound_statement "{\n      do {\n        this_00 = (One_option *)*puVar4;\n        puVar4 = puVar4 + 1;\n        options::One_option::print(this_00);\n      } while (*(undefined4 **)(iVar1 + -0x42e8) != puVar4);\n    }" { (do_statement "do {\n        this_00 = (One_option *)*puVar4;\n        puVar4 = puVar4 + 1;\n        options::One_option::print(this_00);\n      } while (*(undefined4 **)(iVar1 + -0x42e8) != puVar4);" do (compound_statement "{\n        this_00 = (One_option *)*puVar4;\n        puVar4 = puVar4 + 1;\n        options::One_option::print(this_00);\n      }" { (expression_statement "this_00 = (One_option *)*puVar4;" (assignment_expression "this_00 = (One_option *)*puVar4" identifier = (cast_expression "(One_option *)*puVar4" ( (type_descriptor "One_option *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) ;) (expression_statement "puVar4 = puVar4 + 1;" (assignment_expression "puVar4 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) (labeled_statement "options::One_option::print(this_00);" statement_identifier : (ERROR ":" :) (labeled_statement "One_option::print(this_00);" statement_identifier : (ERROR ":" :) (expression_statement "print(this_00);" (call_expression "print(this_00)" identifier (argument_list "(this_00)" ( identifier ))) ;))) }) while (parenthesized_expression "(*(undefined4 **)(iVar1 + -0x42e8) != puVar4)" ( (binary_expression "*(undefined4 **)(iVar1 + -0x42e8) != puVar4" (pointer_expression "*(undefined4 **)(iVar1 + -0x42e8)" * (cast_expression "(undefined4 **)(iVar1 + -0x42e8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + -0x42e8)" ( (binary_expression "iVar1 + -0x42e8" identifier + number_literal) )))) != identifier) )) ;) })) (expression_statement "uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6490);" (assignment_expression "uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6490)" identifier = (call_expression "(**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6490)" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c88a0))" ( (pointer_expression "**(code **)(pcVar9 + 0x2c88a0)" * (pointer_expression "*(code **)(pcVar9 + 0x2c88a0)" * (cast_expression "(code **)(pcVar9 + 0x2c88a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x2c88a0)" ( (binary_expression "pcVar9 + 0x2c88a0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar9 + 0x2c46c0) + 0x6490)" ( (binary_expression "*(int *)(pcVar9 + 0x2c46c0) + 0x6490" (pointer_expression "*(int *)(pcVar9 + 0x2c46c0)" * (cast_expression "(int *)(pcVar9 + 0x2c46c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x2c46c0)" ( (binary_expression "pcVar9 + 0x2c46c0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);" (call_expression "(**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5)" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c87e0))" ( (pointer_expression "**(code **)(pcVar9 + 0x2c87e0)" * (pointer_expression "*(code **)(pcVar9 + 0x2c87e0)" * (cast_expression "(code **)(pcVar9 + 0x2c87e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x2c87e0)" ( (binary_expression "pcVar9 + 0x2c87e0" identifier + number_literal) ))))) )) (argument_list "(uVar2,*puVar5)" ( identifier , (pointer_expression "*puVar5" * identifier) ))) ;) (expression_statement "puStack_168 = (undefined4 *)0x0;" (assignment_expression "puStack_168 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puStack_164 = (undefined4 *)0x0;" (assignment_expression "puStack_164 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uStack_160 = 0;" (assignment_expression "uStack_160 = 0" identifier = number_literal) ;) (expression_statement "(**(code **)(pcVar9 + 0x2c51c0))(&puStack_168);" (call_expression "(**(code **)(pcVar9 + 0x2c51c0))(&puStack_168)" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c51c0))" ( (pointer_expression "**(code **)(pcVar9 + 0x2c51c0)" * (pointer_expression "*(code **)(pcVar9 + 0x2c51c0)" * (cast_expression "(code **)(pcVar9 + 0x2c51c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x2c51c0)" ( (binary_expression "pcVar9 + 0x2c51c0" identifier + number_literal) ))))) )) (argument_list "(&puStack_168)" ( (pointer_expression "&puStack_168" & identifier) ))) ;) (if_statement "if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar9 + 0x2c46c0);\n      puVar4 = puStack_168;\n      do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);\n    }" if (parenthesized_expression "(puStack_168 != puStack_164)" ( (binary_expression "puStack_168 != puStack_164" identifier != identifier) )) (compound_statement "{\n      iVar1 = *(int *)(pcVar9 + 0x2c46c0);\n      puVar4 = puStack_168;\n      do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);\n    }" { (expression_statement "iVar1 = *(int *)(pcVar9 + 0x2c46c0);" (assignment_expression "iVar1 = *(int *)(pcVar9 + 0x2c46c0)" identifier = (pointer_expression "*(int *)(pcVar9 + 0x2c46c0)" * (cast_expression "(int *)(pcVar9 + 0x2c46c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x2c46c0)" ( (binary_expression "pcVar9 + 0x2c46c0" identifier + number_literal) ))))) ;) (expression_statement "puVar4 = puStack_168;" (assignment_expression "puVar4 = puStack_168" identifier = identifier) ;) (do_statement "do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);" do (compound_statement "{\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      }" { (expression_statement "(**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);" (call_expression "(**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4)" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c87e0))" ( (pointer_expression "**(code **)(pcVar9 + 0x2c87e0)" * (pointer_expression "*(code **)(pcVar9 + 0x2c87e0)" * (cast_expression "(code **)(pcVar9 + 0x2c87e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x2c87e0)" ( (binary_expression "pcVar9 + 0x2c87e0" identifier + number_literal) ))))) )) (argument_list "(iVar1 + 0x653c,*puVar4)" ( (binary_expression "iVar1 + 0x653c" identifier + number_literal) , (pointer_expression "*puVar4" * identifier) ))) ;) (expression_statement "puVar4 = puVar4 + 1;" (assignment_expression "puVar4 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puStack_164 != puVar4)" ( (binary_expression "puStack_164 != puVar4" identifier != identifier) )) ;) })) (expression_statement "(**(code **)(pcVar9 + 0x2c8900))(10);" (call_expression "(**(code **)(pcVar9 + 0x2c8900))(10)" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c8900))" ( (pointer_expression "**(code **)(pcVar9 + 0x2c8900)" * (pointer_expression "*(code **)(pcVar9 + 0x2c8900)" * (cast_expression "(code **)(pcVar9 + 0x2c8900)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x2c8900)" ( (binary_expression "pcVar9 + 0x2c8900" identifier + number_literal) ))))) )) (argument_list "(10)" ( number_literal ))) ;) (expression_statement "uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64a8);" (assignment_expression "uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64a8)" identifier = (call_expression "(**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64a8)" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c88a0))" ( (pointer_expression "**(code **)(pcVar9 + 0x2c88a0)" * (pointer_expression "*(code **)(pcVar9 + 0x2c88a0)" * (cast_expression "(code **)(pcVar9 + 0x2c88a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x2c88a0)" ( (binary_expression "pcVar9 + 0x2c88a0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar9 + 0x2c46c0) + 0x64a8)" ( (binary_expression "*(int *)(pcVar9 + 0x2c46c0) + 0x64a8" (pointer_expression "*(int *)(pcVar9 + 0x2c46c0)" * (cast_expression "(int *)(pcVar9 + 0x2c46c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x2c46c0)" ( (binary_expression "pcVar9 + 0x2c46c0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);" (call_expression "(**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5)" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c87e0))" ( (pointer_expression "**(code **)(pcVar9 + 0x2c87e0)" * (pointer_expression "*(code **)(pcVar9 + 0x2c87e0)" * (cast_expression "(code **)(pcVar9 + 0x2c87e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x2c87e0)" ( (binary_expression "pcVar9 + 0x2c87e0" identifier + number_literal) ))))) )) (argument_list "(uVar2,*puVar5)" ( identifier , (pointer_expression "*puVar5" * identifier) ))) ;) (if_statement "if (puStack_168 != puStack_164) {\n      puStack_164 = puStack_168;\n    }" if (parenthesized_expression "(puStack_168 != puStack_164)" ( (binary_expression "puStack_168 != puStack_164" identifier != identifier) )) (compound_statement "{\n      puStack_164 = puStack_168;\n    }" { (expression_statement "puStack_164 = puStack_168;" (assignment_expression "puStack_164 = puStack_168" identifier = identifier) ;) })) (expression_statement "(**(code **)(pcVar9 + 0x2c51c4))(&puStack_168);" (call_expression "(**(code **)(pcVar9 + 0x2c51c4))(&puStack_168)" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c51c4))" ( (pointer_expression "**(code **)(pcVar9 + 0x2c51c4)" * (pointer_expression "*(code **)(pcVar9 + 0x2c51c4)" * (cast_expression "(code **)(pcVar9 + 0x2c51c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x2c51c4)" ( (binary_expression "pcVar9 + 0x2c51c4" identifier + number_literal) ))))) )) (argument_list "(&puStack_168)" ( (pointer_expression "&puStack_168" & identifier) ))) ;) (if_statement "if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar9 + 0x2c46c0);\n      puVar4 = puStack_168;\n      do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);\n    }" if (parenthesized_expression "(puStack_168 != puStack_164)" ( (binary_expression "puStack_168 != puStack_164" identifier != identifier) )) (compound_statement "{\n      iVar1 = *(int *)(pcVar9 + 0x2c46c0);\n      puVar4 = puStack_168;\n      do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);\n    }" { (expression_statement "iVar1 = *(int *)(pcVar9 + 0x2c46c0);" (assignment_expression "iVar1 = *(int *)(pcVar9 + 0x2c46c0)" identifier = (pointer_expression "*(int *)(pcVar9 + 0x2c46c0)" * (cast_expression "(int *)(pcVar9 + 0x2c46c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x2c46c0)" ( (binary_expression "pcVar9 + 0x2c46c0" identifier + number_literal) ))))) ;) (expression_statement "puVar4 = puStack_168;" (assignment_expression "puVar4 = puStack_168" identifier = identifier) ;) (do_statement "do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);" do (compound_statement "{\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      }" { (expression_statement "(**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);" (call_expression "(**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4)" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c87e0))" ( (pointer_expression "**(code **)(pcVar9 + 0x2c87e0)" * (pointer_expression "*(code **)(pcVar9 + 0x2c87e0)" * (cast_expression "(code **)(pcVar9 + 0x2c87e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x2c87e0)" ( (binary_expression "pcVar9 + 0x2c87e0" identifier + number_literal) ))))) )) (argument_list "(iVar1 + 0x653c,*puVar4)" ( (binary_expression "iVar1 + 0x653c" identifier + number_literal) , (pointer_expression "*puVar4" * identifier) ))) ;) (expression_statement "puVar4 = puVar4 + 1;" (assignment_expression "puVar4 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puStack_164 != puVar4)" ( (binary_expression "puStack_164 != puVar4" identifier != identifier) )) ;) })) (expression_statement "(**(code **)(pcVar9 + 0x2c8900))(10);" (call_expression "(**(code **)(pcVar9 + 0x2c8900))(10)" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c8900))" ( (pointer_expression "**(code **)(pcVar9 + 0x2c8900)" * (pointer_expression "*(code **)(pcVar9 + 0x2c8900)" * (cast_expression "(code **)(pcVar9 + 0x2c8900)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x2c8900)" ( (binary_expression "pcVar9 + 0x2c8900" identifier + number_literal) ))))) )) (argument_list "(10)" ( number_literal ))) ;) (expression_statement "uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64c4);" (assignment_expression "uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64c4)" identifier = (call_expression "(**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64c4)" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c88a0))" ( (pointer_expression "**(code **)(pcVar9 + 0x2c88a0)" * (pointer_expression "*(code **)(pcVar9 + 0x2c88a0)" * (cast_expression "(code **)(pcVar9 + 0x2c88a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x2c88a0)" ( (binary_expression "pcVar9 + 0x2c88a0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar9 + 0x2c46c0) + 0x64c4)" ( (binary_expression "*(int *)(pcVar9 + 0x2c46c0) + 0x64c4" (pointer_expression "*(int *)(pcVar9 + 0x2c46c0)" * (cast_expression "(int *)(pcVar9 + 0x2c46c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x2c46c0)" ( (binary_expression "pcVar9 + 0x2c46c0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar9 + 0x2c87e0))(uVar2,*(int *)(pcVar9 + 0x2c46c0) + 0x64d8);" (call_expression "(**(code **)(pcVar9 + 0x2c87e0))(uVar2,*(int *)(pcVar9 + 0x2c46c0) + 0x64d8)" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c87e0))" ( (pointer_expression "**(code **)(pcVar9 + 0x2c87e0)" * (pointer_expression "*(code **)(pcVar9 + 0x2c87e0)" * (cast_expression "(code **)(pcVar9 + 0x2c87e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x2c87e0)" ( (binary_expression "pcVar9 + 0x2c87e0" identifier + number_literal) ))))) )) (argument_list "(uVar2,*(int *)(pcVar9 + 0x2c46c0) + 0x64d8)" ( identifier , (binary_expression "*(int *)(pcVar9 + 0x2c46c0) + 0x64d8" (pointer_expression "*(int *)(pcVar9 + 0x2c46c0)" * (cast_expression "(int *)(pcVar9 + 0x2c46c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x2c46c0)" ( (binary_expression "pcVar9 + 0x2c46c0" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (puStack_168 != (undefined4 *)0x0) {\n      (**(code **)(pcVar9 + 0x2c3f6c))();\n    }" if (parenthesized_expression "(puStack_168 != (undefined4 *)0x0)" ( (binary_expression "puStack_168 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (**(code **)(pcVar9 + 0x2c3f6c))();\n    }" { (expression_statement "(**(code **)(pcVar9 + 0x2c3f6c))();" (call_expression "(**(code **)(pcVar9 + 0x2c3f6c))()" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c3f6c))" ( (pointer_expression "**(code **)(pcVar9 + 0x2c3f6c)" * (pointer_expression "*(code **)(pcVar9 + 0x2c3f6c)" * (cast_expression "(code **)(pcVar9 + 0x2c3f6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x2c3f6c)" ( (binary_expression "pcVar9 + 0x2c3f6c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })) (expression_statement "iVar1 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x6430);" (assignment_expression "iVar1 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x6430)" identifier = (call_expression "(**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x6430)" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8af0))" ( (pointer_expression "**(code **)(pcVar8 + 0x2c8af0)" * (pointer_expression "*(code **)(pcVar8 + 0x2c8af0)" * (cast_expression "(code **)(pcVar8 + 0x2c8af0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x2c8af0)" ( (binary_expression "pcVar8 + 0x2c8af0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar8 + 0x2c49d0) + 0x6430)" ( (binary_expression "*(int *)(pcVar8 + 0x2c49d0) + 0x6430" (pointer_expression "*(int *)(pcVar8 + 0x2c49d0)" * (cast_expression "(int *)(pcVar8 + 0x2c49d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x2c49d0)" ( (binary_expression "pcVar8 + 0x2c49d0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar1 = iVar1 + 2;" (assignment_expression "iVar1 = iVar1 + 2" identifier = (binary_expression "iVar1 + 2" identifier + number_literal)) ;) (if_statement "if (puVar4[10] != 0) {\n    uVar2 = 0x6a;\n    if (puVar4[6] == 4) goto LAB_001fd378;\n    uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(puVar4[10],0x6a);\n    iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x653c,uVar2);\n    iVar1 = iVar1 + iVar6;\n  }" if (parenthesized_expression "(puVar4[10] != 0)" ( (binary_expression "puVar4[10] != 0" (subscript_expression "puVar4[10]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    uVar2 = 0x6a;\n    if (puVar4[6] == 4) goto LAB_001fd378;\n    uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(puVar4[10],0x6a);\n    iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x653c,uVar2);\n    iVar1 = iVar1 + iVar6;\n  }" { (expression_statement "uVar2 = 0x6a;" (assignment_expression "uVar2 = 0x6a" identifier = number_literal) ;) (if_statement "if (puVar4[6] == 4) goto LAB_001fd378;" if (parenthesized_expression "(puVar4[6] == 4)" ( (binary_expression "puVar4[6] == 4" (subscript_expression "puVar4[6]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_001fd378;" goto statement_identifier ;)) (expression_statement "uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(puVar4[10],0x6a);" (assignment_expression "uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(puVar4[10],0x6a)" identifier = (call_expression "(**(code **)(pcVar8 + 0x2c8bb0))(puVar4[10],0x6a)" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8bb0))" ( (pointer_expression "**(code **)(pcVar8 + 0x2c8bb0)" * (pointer_expression "*(code **)(pcVar8 + 0x2c8bb0)" * (cast_expression "(code **)(pcVar8 + 0x2c8bb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x2c8bb0)" ( (binary_expression "pcVar8 + 0x2c8bb0" identifier + number_literal) ))))) )) (argument_list "(puVar4[10],0x6a)" ( (subscript_expression "puVar4[10]" identifier [ number_literal ]) , number_literal )))) ;) (expression_statement "iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x653c,uVar2);" (assignment_expression "iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x653c,uVar2)" identifier = (call_expression "(**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x653c,uVar2)" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8af0))" ( (pointer_expression "**(code **)(pcVar8 + 0x2c8af0)" * (pointer_expression "*(code **)(pcVar8 + 0x2c8af0)" * (cast_expression "(code **)(pcVar8 + 0x2c8af0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x2c8af0)" ( (binary_expression "pcVar8 + 0x2c8af0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar8 + 0x2c49d0) + 0x653c,uVar2)" ( (binary_expression "*(int *)(pcVar8 + 0x2c49d0) + 0x653c" (pointer_expression "*(int *)(pcVar8 + 0x2c49d0)" * (cast_expression "(int *)(pcVar8 + 0x2c49d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x2c49d0)" ( (binary_expression "pcVar8 + 0x2c49d0" identifier + number_literal) )))) + number_literal) , identifier )))) ;) (expression_statement "iVar1 = iVar1 + iVar6;" (assignment_expression "iVar1 = iVar1 + iVar6" identifier = (binary_expression "iVar1 + iVar6" identifier + identifier)) ;) })) (expression_statement "iVar6 = *(int *)(pcVar8 + 0x2c489c);" (assignment_expression "iVar6 = *(int *)(pcVar8 + 0x2c489c)" identifier = (pointer_expression "*(int *)(pcVar8 + 0x2c489c)" * (cast_expression "(int *)(pcVar8 + 0x2c489c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x2c489c)" ( (binary_expression "pcVar8 + 0x2c489c" identifier + number_literal) ))))) ;) (if_statement "if (puVar4[1] != 0) {\n    if ((*(char *)*puVar4 != *(char *)(puVar4 + 7)) || (((char *)*puVar4)[1] != '\0')) {\n      iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x644c);\n      iVar1 = iVar1 + iVar6;\n      goto LAB_001fd168;\n    }\n    iVar6 = *(int *)(pcVar8 + 0x2c489c);\n  }" if (parenthesized_expression "(puVar4[1] != 0)" ( (binary_expression "puVar4[1] != 0" (subscript_expression "puVar4[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    if ((*(char *)*puVar4 != *(char *)(puVar4 + 7)) || (((char *)*puVar4)[1] != '\0')) {\n      iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x644c);\n      iVar1 = iVar1 + iVar6;\n      goto LAB_001fd168;\n    }\n    iVar6 = *(int *)(pcVar8 + 0x2c489c);\n  }" { (if_statement "if ((*(char *)*puVar4 != *(char *)(puVar4 + 7)) || (((char *)*puVar4)[1] != '\0')) {\n      iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x644c);\n      iVar1 = iVar1 + iVar6;\n      goto LAB_001fd168;\n    }" if (parenthesized_expression "((*(char *)*puVar4 != *(char *)(puVar4 + 7)) || (((char *)*puVar4)[1] != '\0'))" ( (binary_expression "(*(char *)*puVar4 != *(char *)(puVar4 + 7)) || (((char *)*puVar4)[1] != '\0')" (parenthesized_expression "(*(char *)*puVar4 != *(char *)(puVar4 + 7))" ( (binary_expression "*(char *)*puVar4 != *(char *)(puVar4 + 7)" (pointer_expression "*(char *)*puVar4" * (cast_expression "(char *)*puVar4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) != (pointer_expression "*(char *)(puVar4 + 7)" * (cast_expression "(char *)(puVar4 + 7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 7)" ( (binary_expression "puVar4 + 7" identifier + number_literal) ))))) )) || (parenthesized_expression "(((char *)*puVar4)[1] != '\0')" ( (binary_expression "((char *)*puVar4)[1] != '\0'" (subscript_expression "((char *)*puVar4)[1]" (parenthesized_expression "((char *)*puVar4)" ( (cast_expression "(char *)*puVar4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier)) )) [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x644c);\n      iVar1 = iVar1 + iVar6;\n      goto LAB_001fd168;\n    }" { (expression_statement "iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x644c);" (assignment_expression "iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x644c)" identifier = (call_expression "(**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x644c)" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8af0))" ( (pointer_expression "**(code **)(pcVar8 + 0x2c8af0)" * (pointer_expression "*(code **)(pcVar8 + 0x2c8af0)" * (cast_expression "(code **)(pcVar8 + 0x2c8af0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x2c8af0)" ( (binary_expression "pcVar8 + 0x2c8af0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar8 + 0x2c49d0) + 0x644c)" ( (binary_expression "*(int *)(pcVar8 + 0x2c49d0) + 0x644c" (pointer_expression "*(int *)(pcVar8 + 0x2c49d0)" * (cast_expression "(int *)(pcVar8 + 0x2c49d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x2c49d0)" ( (binary_expression "pcVar8 + 0x2c49d0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar1 = iVar1 + iVar6;" (assignment_expression "iVar1 = iVar1 + iVar6" identifier = (binary_expression "iVar1 + iVar6" identifier + identifier)) ;) (goto_statement "goto LAB_001fd168;" goto statement_identifier ;) })) (expression_statement "iVar6 = *(int *)(pcVar8 + 0x2c489c);" (assignment_expression "iVar6 = *(int *)(pcVar8 + 0x2c489c)" identifier = (pointer_expression "*(int *)(pcVar8 + 0x2c489c)" * (cast_expression "(int *)(pcVar8 + 0x2c489c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x2c489c)" ( (binary_expression "pcVar8 + 0x2c489c" identifier + number_literal) ))))) ;) })) (if_statement "if (0x1d < iVar1) {\n    iVar1 = 0;\n    (**(code **)(pcVar8 + 0x2c8c10))(10);\n  }" if (parenthesized_expression "(0x1d < iVar1)" ( (binary_expression "0x1d < iVar1" number_literal < identifier) )) (compound_statement "{\n    iVar1 = 0;\n    (**(code **)(pcVar8 + 0x2c8c10))(10);\n  }" { (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) (expression_statement "(**(code **)(pcVar8 + 0x2c8c10))(10);" (call_expression "(**(code **)(pcVar8 + 0x2c8c10))(10)" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8c10))" ( (pointer_expression "**(code **)(pcVar8 + 0x2c8c10)" * (pointer_expression "*(code **)(pcVar8 + 0x2c8c10)" * (cast_expression "(code **)(pcVar8 + 0x2c8c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x2c8c10)" ( (binary_expression "pcVar8 + 0x2c8c10" identifier + number_literal) ))))) )) (argument_list "(10)" ( number_literal ))) ;) })) (labeled_statement "LAB_001fd0dc:\n  puVar5 = *(undefined4 **)(pcVar8 + 0x2c8a68);" statement_identifier : (expression_statement "puVar5 = *(undefined4 **)(pcVar8 + 0x2c8a68);" (assignment_expression "puVar5 = *(undefined4 **)(pcVar8 + 0x2c8a68)" identifier = (pointer_expression "*(undefined4 **)(pcVar8 + 0x2c8a68)" * (cast_expression "(undefined4 **)(pcVar8 + 0x2c8a68)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x2c8a68)" ( (binary_expression "pcVar8 + 0x2c8a68" identifier + number_literal) ))))) ;)) (do_statement "do {\n    iVar1 = iVar1 + 1;\n    (**(code **)(pcVar8 + 0x2c8a4c))(0x20,*puVar5);\n  } while (iVar1 != 0x1e);" do (compound_statement "{\n    iVar1 = iVar1 + 1;\n    (**(code **)(pcVar8 + 0x2c8a4c))(0x20,*puVar5);\n  }" { (expression_statement "iVar1 = iVar1 + 1;" (assignment_expression "iVar1 = iVar1 + 1" identifier = (binary_expression "iVar1 + 1" identifier + number_literal)) ;) (expression_statement "(**(code **)(pcVar8 + 0x2c8a4c))(0x20,*puVar5);" (call_expression "(**(code **)(pcVar8 + 0x2c8a4c))(0x20,*puVar5)" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8a4c))" ( (pointer_expression "**(code **)(pcVar8 + 0x2c8a4c)" * (pointer_expression "*(code **)(pcVar8 + 0x2c8a4c)" * (cast_expression "(code **)(pcVar8 + 0x2c8a4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x2c8a4c)" ( (binary_expression "pcVar8 + 0x2c8a4c" identifier + number_literal) ))))) )) (argument_list "(0x20,*puVar5)" ( number_literal , (pointer_expression "*puVar5" * identifier) ))) ;) }) while (parenthesized_expression "(iVar1 != 0x1e)" ( (binary_expression "iVar1 != 0x1e" identifier != number_literal) )) ;) (expression_statement "uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(puVar4[9]);" (assignment_expression "uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(puVar4[9])" identifier = (call_expression "(**(code **)(pcVar8 + 0x2c8bb0))(puVar4[9])" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8bb0))" ( (pointer_expression "**(code **)(pcVar8 + 0x2c8bb0)" * (pointer_expression "*(code **)(pcVar8 + 0x2c8bb0)" * (cast_expression "(code **)(pcVar8 + 0x2c8bb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x2c8bb0)" ( (binary_expression "pcVar8 + 0x2c8bb0" identifier + number_literal) ))))) )) (argument_list "(puVar4[9])" ( (subscript_expression "puVar4[9]" identifier [ number_literal ]) )))) ;) (expression_statement "(**(code **)(pcVar8 + 0x2c8af0))(iVar6 + 0xec4,uVar2);" (call_expression "(**(code **)(pcVar8 + 0x2c8af0))(iVar6 + 0xec4,uVar2)" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8af0))" ( (pointer_expression "**(code **)(pcVar8 + 0x2c8af0)" * (pointer_expression "*(code **)(pcVar8 + 0x2c8af0)" * (cast_expression "(code **)(pcVar8 + 0x2c8af0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x2c8af0)" ( (binary_expression "pcVar8 + 0x2c8af0" identifier + number_literal) ))))) )) (argument_list "(iVar6 + 0xec4,uVar2)" ( (binary_expression "iVar6 + 0xec4" identifier + number_literal) , identifier ))) ;) (if_statement "if (*(char *)(puVar4 + 0xd) == '\0') {\n                    \n                    \n    (**(code **)(pcVar8 + 0x2c8c10))(10);\n    return;\n  }" if (parenthesized_expression "(*(char *)(puVar4 + 0xd) == '\0')" ( (binary_expression "*(char *)(puVar4 + 0xd) == '\0'" (pointer_expression "*(char *)(puVar4 + 0xd)" * (cast_expression "(char *)(puVar4 + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 0xd)" ( (binary_expression "puVar4 + 0xd" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    \n                    \n    (**(code **)(pcVar8 + 0x2c8c10))(10);\n    return;\n  }" { (expression_statement "(**(code **)(pcVar8 + 0x2c8c10))(10);" (call_expression "(**(code **)(pcVar8 + 0x2c8c10))(10)" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8c10))" ( (pointer_expression "**(code **)(pcVar8 + 0x2c8c10)" * (pointer_expression "*(code **)(pcVar8 + 0x2c8c10)" * (cast_expression "(code **)(pcVar8 + 0x2c8c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x2c8c10)" ( (binary_expression "pcVar8 + 0x2c8c10" identifier + number_literal) ))))) )) (argument_list "(10)" ( number_literal ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(*(int *)(pcVar8 + 0x2c49d0) + 0x6460);" (assignment_expression "uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(*(int *)(pcVar8 + 0x2c49d0) + 0x6460)" identifier = (call_expression "(**(code **)(pcVar8 + 0x2c8bb0))(*(int *)(pcVar8 + 0x2c49d0) + 0x6460)" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8bb0))" ( (pointer_expression "**(code **)(pcVar8 + 0x2c8bb0)" * (pointer_expression "*(code **)(pcVar8 + 0x2c8bb0)" * (cast_expression "(code **)(pcVar8 + 0x2c8bb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x2c8bb0)" ( (binary_expression "pcVar8 + 0x2c8bb0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar8 + 0x2c49d0) + 0x6460)" ( (binary_expression "*(int *)(pcVar8 + 0x2c49d0) + 0x6460" (pointer_expression "*(int *)(pcVar8 + 0x2c49d0)" * (cast_expression "(int *)(pcVar8 + 0x2c49d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x2c49d0)" ( (binary_expression "pcVar8 + 0x2c49d0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c489c) + -0x1e94,uVar2);" (call_expression "(**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c489c) + -0x1e94,uVar2)" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8af0))" ( (pointer_expression "**(code **)(pcVar8 + 0x2c8af0)" * (pointer_expression "*(code **)(pcVar8 + 0x2c8af0)" * (cast_expression "(code **)(pcVar8 + 0x2c8af0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x2c8af0)" ( (binary_expression "pcVar8 + 0x2c8af0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar8 + 0x2c489c) + -0x1e94,uVar2)" ( (binary_expression "*(int *)(pcVar8 + 0x2c489c) + -0x1e94" (pointer_expression "*(int *)(pcVar8 + 0x2c489c)" * (cast_expression "(int *)(pcVar8 + 0x2c489c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x2c489c)" ( (binary_expression "pcVar8 + 0x2c489c" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(pcVar8 + 0x2c8c10))(10);" (call_expression "(**(code **)(pcVar8 + 0x2c8c10))(10)" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8c10))" ( (pointer_expression "**(code **)(pcVar8 + 0x2c8c10)" * (pointer_expression "*(code **)(pcVar8 + 0x2c8c10)" * (cast_expression "(code **)(pcVar8 + 0x2c8c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x2c8c10)" ( (binary_expression "pcVar8 + 0x2c8c10" identifier + number_literal) ))))) )) (argument_list "(10)" ( number_literal ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (ms_call_modifier __thiscall) (ERROR IDENT : : IDENT : :) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) LIT)) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) LIT)) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) LIT)) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (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 = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) )) [ LIT ]) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (parenthesized_expression ( (binary_expression (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) + (binary_expression (subscript_expression IDENT [ LIT ]) * LIT)) ))))) + LIT) ))) )) (argument_list ( ))) ;) (return_statement return ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression * IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (labeled_statement statement_identifier : (ERROR :) (labeled_statement statement_identifier : (ERROR :) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;))) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression * IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression & IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (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 = IDENT) ;) (do_statement do (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression * IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression * IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression & IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (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 = IDENT) ;) (do_statement do (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression * IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) })) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) || (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) )) [ LIT ]) != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT ))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , (pointer_expression * IDENT) ))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT ))) ;) (return_statement return ;) })))
(function_definition "void __thiscall\ngold::General_options::parse_dynamic_list\n          (General_options *this,char *param_1,char *param_2,Command_line *param_3)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 *puVar4;\n  One_option *this_00;\n  undefined4 *puVar5;\n  int iVar6;\n  undefined *puVar7;\n  code *pcVar8;\n  code *pcVar9;\n  undefined4 *puStack_168;\n  undefined4 *puStack_164;\n  undefined4 uStack_160;\n  int iStack_154;\n  char *pcStack_150;\n  \n  iVar1 = (*(code *)PTR_read_dynamic_list_004c2568)(param_2,param_3,this + 0x5950);\n  if (iVar1 != 0) {\n    this[0x5a1c] = (General_options)0x1;\n    return;\n  }\n  uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s__s_004c1a50 + 0x6370);\n  puVar7 = PTR_gold_fatal_004c2020;\n  (*(code *)PTR_gold_fatal_004c2020)();\n  uVar3 = (**(code **)(puVar7 + 0x2c8d98))(*(int *)(puVar7 + 0x2c4bb8) + 0x639c);\n  pcVar8 = *(code **)(puVar7 + 0x2c5188);\n  (*pcVar8)(uVar3,uVar2,param_2);\n  uVar2 = (**(code **)(pcVar8 + 0x2c8d48))(*(int *)(pcVar8 + 0x2c4b68) + 0x63d0);\n  pcVar8 = *(code **)(pcVar8 + 0x2c5138);\n  (*pcVar8)(uVar2,uVar3);\n  uVar2 = (**(code **)(pcVar8 + 0x2c8d04))(*(int *)(pcVar8 + 0x2c4b24) + 0x63f4);\n  pcVar8 = *(code **)(pcVar8 + 0x2c50f4);\n  (*pcVar8)(uVar2);\n  if (param_3[0x5b90] != (Command_line)0x0) {\n    param_3[0x5b90] = (Command_line)0x0;\n    return;\n  }\n  iVar1 = *(int *)(pcVar8 + 0x2c55f8) + -0x30d4;\n  FUN_001fcf2c();\n  puVar4 = (undefined4 *)(**(code **)(iVar1 + 0x2c8c90))(*(int *)(iVar1 + 0x2c4ab0) + 0x6414);\n  pcVar8 = *(code **)(iVar1 + 0x2c5080);\n  (*pcVar8)();\n  if (param_3[0x5b91] != (Command_line)0x0) {\n    param_3[0x5b91] = (Command_line)0x0;\n    return;\n  }\n  iVar1 = *(int *)(pcVar8 + 0x2c5584) + -0x3060;\n  FUN_001fcfa0();\n  if (puVar4 < (undefined4 *)0x40000000) {\n    uVar2 = (**(code **)(iVar1 + 0x2c4394))((int)puVar4 << 2);\n    (**(code **)(iVar1 + 0x2c8c54))(uVar2,0,(int)puVar4 << 2);\n    return;\n  }\n  pcVar8 = *(code **)(iVar1 + 0x2c4aac);\n  (*pcVar8)();\n  (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c489c) + 0xe80);\n  if (*(char *)(puVar4 + 7) == '\0') {\n    iVar6 = *(int *)(pcVar8 + 0x2c489c);\n    if (puVar4[1] == 0) {\n      iVar1 = 2;\n      goto LAB_001fd0dc;\n    }\n    if (*(char *)*puVar4 == '\0') {\n      iVar1 = 2;\n      if (((char *)*puVar4)[1] == '\0') {\n        iVar6 = *(int *)(pcVar8 + 0x2c489c);\n        goto LAB_001fd0dc;\n      }\n    }\n    else {\n      iVar1 = 2;\n    }\nLAB_001fd168:\n    if ((uint)puVar4[6] < 5) {\n                    \n                    \n      (*(pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4) + 0x2cc1c0))();\n      return;\n    }\n    uVar2 = 0x81;\nLAB_001fd378:\n    pcVar9 = *(code **)(pcVar8 + 0x2c49b0);\n    (*pcVar9)(*(int *)(pcVar8 + 0x2c49d0) + 0x6434,uVar2,*(int *)(pcVar8 + 0x2c489c) + -0x5148);\n    puVar5 = *(undefined4 **)(pcVar9 + 0x2c45fc);\n    iStack_154 = iVar1;\n    pcStack_150 = param_2;\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6468);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);\n    iVar1 = *(int *)(pcVar9 + 0x2c51dc);\n    puVar4 = *(undefined4 **)(iVar1 + -0x42ec);\n    if (puVar4 != *(undefined4 **)(iVar1 + -0x42e8)) {\n      do {\n        this_00 = (One_option *)*puVar4;\n        puVar4 = puVar4 + 1;\n        options::One_option::print(this_00);\n      } while (*(undefined4 **)(iVar1 + -0x42e8) != puVar4);\n    }\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6490);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);\n    puStack_168 = (undefined4 *)0x0;\n    puStack_164 = (undefined4 *)0x0;\n    uStack_160 = 0;\n    (**(code **)(pcVar9 + 0x2c51c0))(&puStack_168);\n    if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar9 + 0x2c46c0);\n      puVar4 = puStack_168;\n      do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);\n    }\n    (**(code **)(pcVar9 + 0x2c8900))(10);\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64a8);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);\n    if (puStack_168 != puStack_164) {\n      puStack_164 = puStack_168;\n    }\n    (**(code **)(pcVar9 + 0x2c51c4))(&puStack_168);\n    if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar9 + 0x2c46c0);\n      puVar4 = puStack_168;\n      do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);\n    }\n    (**(code **)(pcVar9 + 0x2c8900))(10);\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64c4);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*(int *)(pcVar9 + 0x2c46c0) + 0x64d8);\n    if (puStack_168 != (undefined4 *)0x0) {\n      (**(code **)(pcVar9 + 0x2c3f6c))();\n    }\n    return;\n  }\n  iVar1 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x6430);\n  iVar1 = iVar1 + 2;\n  if (puVar4[10] != 0) {\n    uVar2 = 0x6a;\n    if (puVar4[6] == 4) goto LAB_001fd378;\n    uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(puVar4[10],0x6a);\n    iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x653c,uVar2);\n    iVar1 = iVar1 + iVar6;\n  }\n  iVar6 = *(int *)(pcVar8 + 0x2c489c);\n  if (puVar4[1] != 0) {\n    if ((*(char *)*puVar4 != *(char *)(puVar4 + 7)) || (((char *)*puVar4)[1] != '\0')) {\n      iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x644c);\n      iVar1 = iVar1 + iVar6;\n      goto LAB_001fd168;\n    }\n    iVar6 = *(int *)(pcVar8 + 0x2c489c);\n  }\n  if (0x1d < iVar1) {\n    iVar1 = 0;\n    (**(code **)(pcVar8 + 0x2c8c10))(10);\n  }\nLAB_001fd0dc:\n  puVar5 = *(undefined4 **)(pcVar8 + 0x2c8a68);\n  do {\n    iVar1 = iVar1 + 1;\n    (**(code **)(pcVar8 + 0x2c8a4c))(0x20,*puVar5);\n  } while (iVar1 != 0x1e);\n  uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(puVar4[9]);\n  (**(code **)(pcVar8 + 0x2c8af0))(iVar6 + 0xec4,uVar2);\n  if (*(char *)(puVar4 + 0xd) == '\0') {\n                    \n                    \n    (**(code **)(pcVar8 + 0x2c8c10))(10);\n    return;\n  }\n  uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(*(int *)(pcVar8 + 0x2c49d0) + 0x6460);\n  (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c489c) + -0x1e94,uVar2);\n                    \n                    \n  (**(code **)(pcVar8 + 0x2c8c10))(10);\n  return;\n}" (primitive_type "void") (ms_call_modifier "__thiscall" (__thiscall "__thiscall")) (ERROR "gold::General_options::" (identifier "gold") (: ":") (: ":") (identifier "General_options") (: ":") (: ":")) (function_declarator "parse_dynamic_list\n          (General_options *this,char *param_1,char *param_2,Command_line *param_3)" (identifier "parse_dynamic_list") (parameter_list "(General_options *this,char *param_1,char *param_2,Command_line *param_3)" (( "(") (parameter_declaration "General_options *this" (type_identifier "General_options") (pointer_declarator "*this" (* "*") (identifier "this"))) (, ",") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "Command_line *param_3" (type_identifier "Command_line") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 *puVar4;\n  One_option *this_00;\n  undefined4 *puVar5;\n  int iVar6;\n  undefined *puVar7;\n  code *pcVar8;\n  code *pcVar9;\n  undefined4 *puStack_168;\n  undefined4 *puStack_164;\n  undefined4 uStack_160;\n  int iStack_154;\n  char *pcStack_150;\n  \n  iVar1 = (*(code *)PTR_read_dynamic_list_004c2568)(param_2,param_3,this + 0x5950);\n  if (iVar1 != 0) {\n    this[0x5a1c] = (General_options)0x1;\n    return;\n  }\n  uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s__s_004c1a50 + 0x6370);\n  puVar7 = PTR_gold_fatal_004c2020;\n  (*(code *)PTR_gold_fatal_004c2020)();\n  uVar3 = (**(code **)(puVar7 + 0x2c8d98))(*(int *)(puVar7 + 0x2c4bb8) + 0x639c);\n  pcVar8 = *(code **)(puVar7 + 0x2c5188);\n  (*pcVar8)(uVar3,uVar2,param_2);\n  uVar2 = (**(code **)(pcVar8 + 0x2c8d48))(*(int *)(pcVar8 + 0x2c4b68) + 0x63d0);\n  pcVar8 = *(code **)(pcVar8 + 0x2c5138);\n  (*pcVar8)(uVar2,uVar3);\n  uVar2 = (**(code **)(pcVar8 + 0x2c8d04))(*(int *)(pcVar8 + 0x2c4b24) + 0x63f4);\n  pcVar8 = *(code **)(pcVar8 + 0x2c50f4);\n  (*pcVar8)(uVar2);\n  if (param_3[0x5b90] != (Command_line)0x0) {\n    param_3[0x5b90] = (Command_line)0x0;\n    return;\n  }\n  iVar1 = *(int *)(pcVar8 + 0x2c55f8) + -0x30d4;\n  FUN_001fcf2c();\n  puVar4 = (undefined4 *)(**(code **)(iVar1 + 0x2c8c90))(*(int *)(iVar1 + 0x2c4ab0) + 0x6414);\n  pcVar8 = *(code **)(iVar1 + 0x2c5080);\n  (*pcVar8)();\n  if (param_3[0x5b91] != (Command_line)0x0) {\n    param_3[0x5b91] = (Command_line)0x0;\n    return;\n  }\n  iVar1 = *(int *)(pcVar8 + 0x2c5584) + -0x3060;\n  FUN_001fcfa0();\n  if (puVar4 < (undefined4 *)0x40000000) {\n    uVar2 = (**(code **)(iVar1 + 0x2c4394))((int)puVar4 << 2);\n    (**(code **)(iVar1 + 0x2c8c54))(uVar2,0,(int)puVar4 << 2);\n    return;\n  }\n  pcVar8 = *(code **)(iVar1 + 0x2c4aac);\n  (*pcVar8)();\n  (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c489c) + 0xe80);\n  if (*(char *)(puVar4 + 7) == '\0') {\n    iVar6 = *(int *)(pcVar8 + 0x2c489c);\n    if (puVar4[1] == 0) {\n      iVar1 = 2;\n      goto LAB_001fd0dc;\n    }\n    if (*(char *)*puVar4 == '\0') {\n      iVar1 = 2;\n      if (((char *)*puVar4)[1] == '\0') {\n        iVar6 = *(int *)(pcVar8 + 0x2c489c);\n        goto LAB_001fd0dc;\n      }\n    }\n    else {\n      iVar1 = 2;\n    }\nLAB_001fd168:\n    if ((uint)puVar4[6] < 5) {\n                    \n                    \n      (*(pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4) + 0x2cc1c0))();\n      return;\n    }\n    uVar2 = 0x81;\nLAB_001fd378:\n    pcVar9 = *(code **)(pcVar8 + 0x2c49b0);\n    (*pcVar9)(*(int *)(pcVar8 + 0x2c49d0) + 0x6434,uVar2,*(int *)(pcVar8 + 0x2c489c) + -0x5148);\n    puVar5 = *(undefined4 **)(pcVar9 + 0x2c45fc);\n    iStack_154 = iVar1;\n    pcStack_150 = param_2;\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6468);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);\n    iVar1 = *(int *)(pcVar9 + 0x2c51dc);\n    puVar4 = *(undefined4 **)(iVar1 + -0x42ec);\n    if (puVar4 != *(undefined4 **)(iVar1 + -0x42e8)) {\n      do {\n        this_00 = (One_option *)*puVar4;\n        puVar4 = puVar4 + 1;\n        options::One_option::print(this_00);\n      } while (*(undefined4 **)(iVar1 + -0x42e8) != puVar4);\n    }\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6490);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);\n    puStack_168 = (undefined4 *)0x0;\n    puStack_164 = (undefined4 *)0x0;\n    uStack_160 = 0;\n    (**(code **)(pcVar9 + 0x2c51c0))(&puStack_168);\n    if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar9 + 0x2c46c0);\n      puVar4 = puStack_168;\n      do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);\n    }\n    (**(code **)(pcVar9 + 0x2c8900))(10);\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64a8);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);\n    if (puStack_168 != puStack_164) {\n      puStack_164 = puStack_168;\n    }\n    (**(code **)(pcVar9 + 0x2c51c4))(&puStack_168);\n    if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar9 + 0x2c46c0);\n      puVar4 = puStack_168;\n      do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);\n    }\n    (**(code **)(pcVar9 + 0x2c8900))(10);\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64c4);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*(int *)(pcVar9 + 0x2c46c0) + 0x64d8);\n    if (puStack_168 != (undefined4 *)0x0) {\n      (**(code **)(pcVar9 + 0x2c3f6c))();\n    }\n    return;\n  }\n  iVar1 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x6430);\n  iVar1 = iVar1 + 2;\n  if (puVar4[10] != 0) {\n    uVar2 = 0x6a;\n    if (puVar4[6] == 4) goto LAB_001fd378;\n    uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(puVar4[10],0x6a);\n    iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x653c,uVar2);\n    iVar1 = iVar1 + iVar6;\n  }\n  iVar6 = *(int *)(pcVar8 + 0x2c489c);\n  if (puVar4[1] != 0) {\n    if ((*(char *)*puVar4 != *(char *)(puVar4 + 7)) || (((char *)*puVar4)[1] != '\0')) {\n      iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x644c);\n      iVar1 = iVar1 + iVar6;\n      goto LAB_001fd168;\n    }\n    iVar6 = *(int *)(pcVar8 + 0x2c489c);\n  }\n  if (0x1d < iVar1) {\n    iVar1 = 0;\n    (**(code **)(pcVar8 + 0x2c8c10))(10);\n  }\nLAB_001fd0dc:\n  puVar5 = *(undefined4 **)(pcVar8 + 0x2c8a68);\n  do {\n    iVar1 = iVar1 + 1;\n    (**(code **)(pcVar8 + 0x2c8a4c))(0x20,*puVar5);\n  } while (iVar1 != 0x1e);\n  uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(puVar4[9]);\n  (**(code **)(pcVar8 + 0x2c8af0))(iVar6 + 0xec4,uVar2);\n  if (*(char *)(puVar4 + 0xd) == '\0') {\n                    \n                    \n    (**(code **)(pcVar8 + 0x2c8c10))(10);\n    return;\n  }\n  uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(*(int *)(pcVar8 + 0x2c49d0) + 0x6460);\n  (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c489c) + -0x1e94,uVar2);\n                    \n                    \n  (**(code **)(pcVar8 + 0x2c8c10))(10);\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "undefined4 *puVar4;" (type_identifier "undefined4") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "One_option *this_00;" (type_identifier "One_option") (pointer_declarator "*this_00" (* "*") (identifier "this_00")) (; ";")) (declaration "undefined4 *puVar5;" (type_identifier "undefined4") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "undefined *puVar7;" (type_identifier "undefined") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "code *pcVar8;" (type_identifier "code") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "code *pcVar9;" (type_identifier "code") (pointer_declarator "*pcVar9" (* "*") (identifier "pcVar9")) (; ";")) (declaration "undefined4 *puStack_168;" (type_identifier "undefined4") (pointer_declarator "*puStack_168" (* "*") (identifier "puStack_168")) (; ";")) (declaration "undefined4 *puStack_164;" (type_identifier "undefined4") (pointer_declarator "*puStack_164" (* "*") (identifier "puStack_164")) (; ";")) (declaration "undefined4 uStack_160;" (type_identifier "undefined4") (identifier "uStack_160") (; ";")) (declaration "int iStack_154;" (primitive_type "int") (identifier "iStack_154") (; ";")) (declaration "char *pcStack_150;" (primitive_type "char") (pointer_declarator "*pcStack_150" (* "*") (identifier "pcStack_150")) (; ";")) (expression_statement "iVar1 = (*(code *)PTR_read_dynamic_list_004c2568)(param_2,param_3,this + 0x5950);" (assignment_expression "iVar1 = (*(code *)PTR_read_dynamic_list_004c2568)(param_2,param_3,this + 0x5950)" (identifier "iVar1") (= "=") (call_expression "(*(code *)PTR_read_dynamic_list_004c2568)(param_2,param_3,this + 0x5950)" (parenthesized_expression "(*(code *)PTR_read_dynamic_list_004c2568)" (( "(") (pointer_expression "*(code *)PTR_read_dynamic_list_004c2568" (* "*") (cast_expression "(code *)PTR_read_dynamic_list_004c2568" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_read_dynamic_list_004c2568"))) () ")")) (argument_list "(param_2,param_3,this + 0x5950)" (( "(") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (binary_expression "this + 0x5950" (identifier "this") (+ "+") (number_literal "0x5950")) () ")")))) (; ";")) (if_statement "if (iVar1 != 0) {\n    this[0x5a1c] = (General_options)0x1;\n    return;\n  }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    this[0x5a1c] = (General_options)0x1;\n    return;\n  }" ({ "{") (expression_statement "this[0x5a1c] = (General_options)0x1;" (assignment_expression "this[0x5a1c] = (General_options)0x1" (subscript_expression "this[0x5a1c]" (identifier "this") ([ "[") (number_literal "0x5a1c") (] "]")) (= "=") (cast_expression "(General_options)0x1" (( "(") (type_descriptor "General_options" (type_identifier "General_options")) () ")") (number_literal "0x1"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s__s_004c1a50 + 0x6370);" (assignment_expression "uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s__s_004c1a50 + 0x6370)" (identifier "uVar2") (= "=") (call_expression "(*(code *)PTR_gettext_004c5c30)(PTR_s__s_004c1a50 + 0x6370)" (parenthesized_expression "(*(code *)PTR_gettext_004c5c30)" (( "(") (pointer_expression "*(code *)PTR_gettext_004c5c30" (* "*") (cast_expression "(code *)PTR_gettext_004c5c30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gettext_004c5c30"))) () ")")) (argument_list "(PTR_s__s_004c1a50 + 0x6370)" (( "(") (binary_expression "PTR_s__s_004c1a50 + 0x6370" (identifier "PTR_s__s_004c1a50") (+ "+") (number_literal "0x6370")) () ")")))) (; ";")) (expression_statement "puVar7 = PTR_gold_fatal_004c2020;" (assignment_expression "puVar7 = PTR_gold_fatal_004c2020" (identifier "puVar7") (= "=") (identifier "PTR_gold_fatal_004c2020")) (; ";")) (expression_statement "(*(code *)PTR_gold_fatal_004c2020)();" (call_expression "(*(code *)PTR_gold_fatal_004c2020)()" (parenthesized_expression "(*(code *)PTR_gold_fatal_004c2020)" (( "(") (pointer_expression "*(code *)PTR_gold_fatal_004c2020" (* "*") (cast_expression "(code *)PTR_gold_fatal_004c2020" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gold_fatal_004c2020"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar3 = (**(code **)(puVar7 + 0x2c8d98))(*(int *)(puVar7 + 0x2c4bb8) + 0x639c);" (assignment_expression "uVar3 = (**(code **)(puVar7 + 0x2c8d98))(*(int *)(puVar7 + 0x2c4bb8) + 0x639c)" (identifier "uVar3") (= "=") (call_expression "(**(code **)(puVar7 + 0x2c8d98))(*(int *)(puVar7 + 0x2c4bb8) + 0x639c)" (parenthesized_expression "(**(code **)(puVar7 + 0x2c8d98))" (( "(") (pointer_expression "**(code **)(puVar7 + 0x2c8d98)" (* "*") (pointer_expression "*(code **)(puVar7 + 0x2c8d98)" (* "*") (cast_expression "(code **)(puVar7 + 0x2c8d98)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar7 + 0x2c8d98)" (( "(") (binary_expression "puVar7 + 0x2c8d98" (identifier "puVar7") (+ "+") (number_literal "0x2c8d98")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar7 + 0x2c4bb8) + 0x639c)" (( "(") (binary_expression "*(int *)(puVar7 + 0x2c4bb8) + 0x639c" (pointer_expression "*(int *)(puVar7 + 0x2c4bb8)" (* "*") (cast_expression "(int *)(puVar7 + 0x2c4bb8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x2c4bb8)" (( "(") (binary_expression "puVar7 + 0x2c4bb8" (identifier "puVar7") (+ "+") (number_literal "0x2c4bb8")) () ")")))) (+ "+") (number_literal "0x639c")) () ")")))) (; ";")) (expression_statement "pcVar8 = *(code **)(puVar7 + 0x2c5188);" (assignment_expression "pcVar8 = *(code **)(puVar7 + 0x2c5188)" (identifier "pcVar8") (= "=") (pointer_expression "*(code **)(puVar7 + 0x2c5188)" (* "*") (cast_expression "(code **)(puVar7 + 0x2c5188)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar7 + 0x2c5188)" (( "(") (binary_expression "puVar7 + 0x2c5188" (identifier "puVar7") (+ "+") (number_literal "0x2c5188")) () ")"))))) (; ";")) (expression_statement "(*pcVar8)(uVar3,uVar2,param_2);" (call_expression "(*pcVar8)(uVar3,uVar2,param_2)" (parenthesized_expression "(*pcVar8)" (( "(") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")) () ")")) (argument_list "(uVar3,uVar2,param_2)" (( "(") (identifier "uVar3") (, ",") (identifier "uVar2") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "uVar2 = (**(code **)(pcVar8 + 0x2c8d48))(*(int *)(pcVar8 + 0x2c4b68) + 0x63d0);" (assignment_expression "uVar2 = (**(code **)(pcVar8 + 0x2c8d48))(*(int *)(pcVar8 + 0x2c4b68) + 0x63d0)" (identifier "uVar2") (= "=") (call_expression "(**(code **)(pcVar8 + 0x2c8d48))(*(int *)(pcVar8 + 0x2c4b68) + 0x63d0)" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8d48))" (( "(") (pointer_expression "**(code **)(pcVar8 + 0x2c8d48)" (* "*") (pointer_expression "*(code **)(pcVar8 + 0x2c8d48)" (* "*") (cast_expression "(code **)(pcVar8 + 0x2c8d48)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar8 + 0x2c8d48)" (( "(") (binary_expression "pcVar8 + 0x2c8d48" (identifier "pcVar8") (+ "+") (number_literal "0x2c8d48")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar8 + 0x2c4b68) + 0x63d0)" (( "(") (binary_expression "*(int *)(pcVar8 + 0x2c4b68) + 0x63d0" (pointer_expression "*(int *)(pcVar8 + 0x2c4b68)" (* "*") (cast_expression "(int *)(pcVar8 + 0x2c4b68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar8 + 0x2c4b68)" (( "(") (binary_expression "pcVar8 + 0x2c4b68" (identifier "pcVar8") (+ "+") (number_literal "0x2c4b68")) () ")")))) (+ "+") (number_literal "0x63d0")) () ")")))) (; ";")) (expression_statement "pcVar8 = *(code **)(pcVar8 + 0x2c5138);" (assignment_expression "pcVar8 = *(code **)(pcVar8 + 0x2c5138)" (identifier "pcVar8") (= "=") (pointer_expression "*(code **)(pcVar8 + 0x2c5138)" (* "*") (cast_expression "(code **)(pcVar8 + 0x2c5138)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar8 + 0x2c5138)" (( "(") (binary_expression "pcVar8 + 0x2c5138" (identifier "pcVar8") (+ "+") (number_literal "0x2c5138")) () ")"))))) (; ";")) (expression_statement "(*pcVar8)(uVar2,uVar3);" (call_expression "(*pcVar8)(uVar2,uVar3)" (parenthesized_expression "(*pcVar8)" (( "(") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")) () ")")) (argument_list "(uVar2,uVar3)" (( "(") (identifier "uVar2") (, ",") (identifier "uVar3") () ")"))) (; ";")) (expression_statement "uVar2 = (**(code **)(pcVar8 + 0x2c8d04))(*(int *)(pcVar8 + 0x2c4b24) + 0x63f4);" (assignment_expression "uVar2 = (**(code **)(pcVar8 + 0x2c8d04))(*(int *)(pcVar8 + 0x2c4b24) + 0x63f4)" (identifier "uVar2") (= "=") (call_expression "(**(code **)(pcVar8 + 0x2c8d04))(*(int *)(pcVar8 + 0x2c4b24) + 0x63f4)" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8d04))" (( "(") (pointer_expression "**(code **)(pcVar8 + 0x2c8d04)" (* "*") (pointer_expression "*(code **)(pcVar8 + 0x2c8d04)" (* "*") (cast_expression "(code **)(pcVar8 + 0x2c8d04)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar8 + 0x2c8d04)" (( "(") (binary_expression "pcVar8 + 0x2c8d04" (identifier "pcVar8") (+ "+") (number_literal "0x2c8d04")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar8 + 0x2c4b24) + 0x63f4)" (( "(") (binary_expression "*(int *)(pcVar8 + 0x2c4b24) + 0x63f4" (pointer_expression "*(int *)(pcVar8 + 0x2c4b24)" (* "*") (cast_expression "(int *)(pcVar8 + 0x2c4b24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar8 + 0x2c4b24)" (( "(") (binary_expression "pcVar8 + 0x2c4b24" (identifier "pcVar8") (+ "+") (number_literal "0x2c4b24")) () ")")))) (+ "+") (number_literal "0x63f4")) () ")")))) (; ";")) (expression_statement "pcVar8 = *(code **)(pcVar8 + 0x2c50f4);" (assignment_expression "pcVar8 = *(code **)(pcVar8 + 0x2c50f4)" (identifier "pcVar8") (= "=") (pointer_expression "*(code **)(pcVar8 + 0x2c50f4)" (* "*") (cast_expression "(code **)(pcVar8 + 0x2c50f4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar8 + 0x2c50f4)" (( "(") (binary_expression "pcVar8 + 0x2c50f4" (identifier "pcVar8") (+ "+") (number_literal "0x2c50f4")) () ")"))))) (; ";")) (expression_statement "(*pcVar8)(uVar2);" (call_expression "(*pcVar8)(uVar2)" (parenthesized_expression "(*pcVar8)" (( "(") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")) () ")")) (argument_list "(uVar2)" (( "(") (identifier "uVar2") () ")"))) (; ";")) (if_statement "if (param_3[0x5b90] != (Command_line)0x0) {\n    param_3[0x5b90] = (Command_line)0x0;\n    return;\n  }" (if "if") (parenthesized_expression "(param_3[0x5b90] != (Command_line)0x0)" (( "(") (binary_expression "param_3[0x5b90] != (Command_line)0x0" (subscript_expression "param_3[0x5b90]" (identifier "param_3") ([ "[") (number_literal "0x5b90") (] "]")) (!= "!=") (cast_expression "(Command_line)0x0" (( "(") (type_descriptor "Command_line" (type_identifier "Command_line")) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    param_3[0x5b90] = (Command_line)0x0;\n    return;\n  }" ({ "{") (expression_statement "param_3[0x5b90] = (Command_line)0x0;" (assignment_expression "param_3[0x5b90] = (Command_line)0x0" (subscript_expression "param_3[0x5b90]" (identifier "param_3") ([ "[") (number_literal "0x5b90") (] "]")) (= "=") (cast_expression "(Command_line)0x0" (( "(") (type_descriptor "Command_line" (type_identifier "Command_line")) () ")") (number_literal "0x0"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar1 = *(int *)(pcVar8 + 0x2c55f8) + -0x30d4;" (assignment_expression "iVar1 = *(int *)(pcVar8 + 0x2c55f8) + -0x30d4" (identifier "iVar1") (= "=") (binary_expression "*(int *)(pcVar8 + 0x2c55f8) + -0x30d4" (pointer_expression "*(int *)(pcVar8 + 0x2c55f8)" (* "*") (cast_expression "(int *)(pcVar8 + 0x2c55f8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar8 + 0x2c55f8)" (( "(") (binary_expression "pcVar8 + 0x2c55f8" (identifier "pcVar8") (+ "+") (number_literal "0x2c55f8")) () ")")))) (+ "+") (number_literal "-0x30d4"))) (; ";")) (expression_statement "FUN_001fcf2c();" (call_expression "FUN_001fcf2c()" (identifier "FUN_001fcf2c") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar4 = (undefined4 *)(**(code **)(iVar1 + 0x2c8c90))(*(int *)(iVar1 + 0x2c4ab0) + 0x6414);" (assignment_expression "puVar4 = (undefined4 *)(**(code **)(iVar1 + 0x2c8c90))(*(int *)(iVar1 + 0x2c4ab0) + 0x6414)" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)(**(code **)(iVar1 + 0x2c8c90))(*(int *)(iVar1 + 0x2c4ab0) + 0x6414)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(iVar1 + 0x2c8c90))(*(int *)(iVar1 + 0x2c4ab0) + 0x6414)" (parenthesized_expression "(**(code **)(iVar1 + 0x2c8c90))" (( "(") (pointer_expression "**(code **)(iVar1 + 0x2c8c90)" (* "*") (pointer_expression "*(code **)(iVar1 + 0x2c8c90)" (* "*") (cast_expression "(code **)(iVar1 + 0x2c8c90)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x2c8c90)" (( "(") (binary_expression "iVar1 + 0x2c8c90" (identifier "iVar1") (+ "+") (number_literal "0x2c8c90")) () ")"))))) () ")")) (argument_list "(*(int *)(iVar1 + 0x2c4ab0) + 0x6414)" (( "(") (binary_expression "*(int *)(iVar1 + 0x2c4ab0) + 0x6414" (pointer_expression "*(int *)(iVar1 + 0x2c4ab0)" (* "*") (cast_expression "(int *)(iVar1 + 0x2c4ab0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x2c4ab0)" (( "(") (binary_expression "iVar1 + 0x2c4ab0" (identifier "iVar1") (+ "+") (number_literal "0x2c4ab0")) () ")")))) (+ "+") (number_literal "0x6414")) () ")"))))) (; ";")) (expression_statement "pcVar8 = *(code **)(iVar1 + 0x2c5080);" (assignment_expression "pcVar8 = *(code **)(iVar1 + 0x2c5080)" (identifier "pcVar8") (= "=") (pointer_expression "*(code **)(iVar1 + 0x2c5080)" (* "*") (cast_expression "(code **)(iVar1 + 0x2c5080)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x2c5080)" (( "(") (binary_expression "iVar1 + 0x2c5080" (identifier "iVar1") (+ "+") (number_literal "0x2c5080")) () ")"))))) (; ";")) (expression_statement "(*pcVar8)();" (call_expression "(*pcVar8)()" (parenthesized_expression "(*pcVar8)" (( "(") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (param_3[0x5b91] != (Command_line)0x0) {\n    param_3[0x5b91] = (Command_line)0x0;\n    return;\n  }" (if "if") (parenthesized_expression "(param_3[0x5b91] != (Command_line)0x0)" (( "(") (binary_expression "param_3[0x5b91] != (Command_line)0x0" (subscript_expression "param_3[0x5b91]" (identifier "param_3") ([ "[") (number_literal "0x5b91") (] "]")) (!= "!=") (cast_expression "(Command_line)0x0" (( "(") (type_descriptor "Command_line" (type_identifier "Command_line")) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    param_3[0x5b91] = (Command_line)0x0;\n    return;\n  }" ({ "{") (expression_statement "param_3[0x5b91] = (Command_line)0x0;" (assignment_expression "param_3[0x5b91] = (Command_line)0x0" (subscript_expression "param_3[0x5b91]" (identifier "param_3") ([ "[") (number_literal "0x5b91") (] "]")) (= "=") (cast_expression "(Command_line)0x0" (( "(") (type_descriptor "Command_line" (type_identifier "Command_line")) () ")") (number_literal "0x0"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar1 = *(int *)(pcVar8 + 0x2c5584) + -0x3060;" (assignment_expression "iVar1 = *(int *)(pcVar8 + 0x2c5584) + -0x3060" (identifier "iVar1") (= "=") (binary_expression "*(int *)(pcVar8 + 0x2c5584) + -0x3060" (pointer_expression "*(int *)(pcVar8 + 0x2c5584)" (* "*") (cast_expression "(int *)(pcVar8 + 0x2c5584)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar8 + 0x2c5584)" (( "(") (binary_expression "pcVar8 + 0x2c5584" (identifier "pcVar8") (+ "+") (number_literal "0x2c5584")) () ")")))) (+ "+") (number_literal "-0x3060"))) (; ";")) (expression_statement "FUN_001fcfa0();" (call_expression "FUN_001fcfa0()" (identifier "FUN_001fcfa0") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (puVar4 < (undefined4 *)0x40000000) {\n    uVar2 = (**(code **)(iVar1 + 0x2c4394))((int)puVar4 << 2);\n    (**(code **)(iVar1 + 0x2c8c54))(uVar2,0,(int)puVar4 << 2);\n    return;\n  }" (if "if") (parenthesized_expression "(puVar4 < (undefined4 *)0x40000000)" (( "(") (binary_expression "puVar4 < (undefined4 *)0x40000000" (identifier "puVar4") (< "<") (cast_expression "(undefined4 *)0x40000000" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x40000000"))) () ")")) (compound_statement "{\n    uVar2 = (**(code **)(iVar1 + 0x2c4394))((int)puVar4 << 2);\n    (**(code **)(iVar1 + 0x2c8c54))(uVar2,0,(int)puVar4 << 2);\n    return;\n  }" ({ "{") (expression_statement "uVar2 = (**(code **)(iVar1 + 0x2c4394))((int)puVar4 << 2);" (assignment_expression "uVar2 = (**(code **)(iVar1 + 0x2c4394))((int)puVar4 << 2)" (identifier "uVar2") (= "=") (call_expression "(**(code **)(iVar1 + 0x2c4394))((int)puVar4 << 2)" (parenthesized_expression "(**(code **)(iVar1 + 0x2c4394))" (( "(") (pointer_expression "**(code **)(iVar1 + 0x2c4394)" (* "*") (pointer_expression "*(code **)(iVar1 + 0x2c4394)" (* "*") (cast_expression "(code **)(iVar1 + 0x2c4394)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x2c4394)" (( "(") (binary_expression "iVar1 + 0x2c4394" (identifier "iVar1") (+ "+") (number_literal "0x2c4394")) () ")"))))) () ")")) (argument_list "((int)puVar4 << 2)" (( "(") (binary_expression "(int)puVar4 << 2" (cast_expression "(int)puVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar4")) (<< "<<") (number_literal "2")) () ")")))) (; ";")) (expression_statement "(**(code **)(iVar1 + 0x2c8c54))(uVar2,0,(int)puVar4 << 2);" (call_expression "(**(code **)(iVar1 + 0x2c8c54))(uVar2,0,(int)puVar4 << 2)" (parenthesized_expression "(**(code **)(iVar1 + 0x2c8c54))" (( "(") (pointer_expression "**(code **)(iVar1 + 0x2c8c54)" (* "*") (pointer_expression "*(code **)(iVar1 + 0x2c8c54)" (* "*") (cast_expression "(code **)(iVar1 + 0x2c8c54)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x2c8c54)" (( "(") (binary_expression "iVar1 + 0x2c8c54" (identifier "iVar1") (+ "+") (number_literal "0x2c8c54")) () ")"))))) () ")")) (argument_list "(uVar2,0,(int)puVar4 << 2)" (( "(") (identifier "uVar2") (, ",") (number_literal "0") (, ",") (binary_expression "(int)puVar4 << 2" (cast_expression "(int)puVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar4")) (<< "<<") (number_literal "2")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "pcVar8 = *(code **)(iVar1 + 0x2c4aac);" (assignment_expression "pcVar8 = *(code **)(iVar1 + 0x2c4aac)" (identifier "pcVar8") (= "=") (pointer_expression "*(code **)(iVar1 + 0x2c4aac)" (* "*") (cast_expression "(code **)(iVar1 + 0x2c4aac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x2c4aac)" (( "(") (binary_expression "iVar1 + 0x2c4aac" (identifier "iVar1") (+ "+") (number_literal "0x2c4aac")) () ")"))))) (; ";")) (expression_statement "(*pcVar8)();" (call_expression "(*pcVar8)()" (parenthesized_expression "(*pcVar8)" (( "(") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c489c) + 0xe80);" (call_expression "(**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c489c) + 0xe80)" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8af0))" (( "(") (pointer_expression "**(code **)(pcVar8 + 0x2c8af0)" (* "*") (pointer_expression "*(code **)(pcVar8 + 0x2c8af0)" (* "*") (cast_expression "(code **)(pcVar8 + 0x2c8af0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar8 + 0x2c8af0)" (( "(") (binary_expression "pcVar8 + 0x2c8af0" (identifier "pcVar8") (+ "+") (number_literal "0x2c8af0")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar8 + 0x2c489c) + 0xe80)" (( "(") (binary_expression "*(int *)(pcVar8 + 0x2c489c) + 0xe80" (pointer_expression "*(int *)(pcVar8 + 0x2c489c)" (* "*") (cast_expression "(int *)(pcVar8 + 0x2c489c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar8 + 0x2c489c)" (( "(") (binary_expression "pcVar8 + 0x2c489c" (identifier "pcVar8") (+ "+") (number_literal "0x2c489c")) () ")")))) (+ "+") (number_literal "0xe80")) () ")"))) (; ";")) (if_statement "if (*(char *)(puVar4 + 7) == '\0') {\n    iVar6 = *(int *)(pcVar8 + 0x2c489c);\n    if (puVar4[1] == 0) {\n      iVar1 = 2;\n      goto LAB_001fd0dc;\n    }\n    if (*(char *)*puVar4 == '\0') {\n      iVar1 = 2;\n      if (((char *)*puVar4)[1] == '\0') {\n        iVar6 = *(int *)(pcVar8 + 0x2c489c);\n        goto LAB_001fd0dc;\n      }\n    }\n    else {\n      iVar1 = 2;\n    }\nLAB_001fd168:\n    if ((uint)puVar4[6] < 5) {\n                    \n                    \n      (*(pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4) + 0x2cc1c0))();\n      return;\n    }\n    uVar2 = 0x81;\nLAB_001fd378:\n    pcVar9 = *(code **)(pcVar8 + 0x2c49b0);\n    (*pcVar9)(*(int *)(pcVar8 + 0x2c49d0) + 0x6434,uVar2,*(int *)(pcVar8 + 0x2c489c) + -0x5148);\n    puVar5 = *(undefined4 **)(pcVar9 + 0x2c45fc);\n    iStack_154 = iVar1;\n    pcStack_150 = param_2;\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6468);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);\n    iVar1 = *(int *)(pcVar9 + 0x2c51dc);\n    puVar4 = *(undefined4 **)(iVar1 + -0x42ec);\n    if (puVar4 != *(undefined4 **)(iVar1 + -0x42e8)) {\n      do {\n        this_00 = (One_option *)*puVar4;\n        puVar4 = puVar4 + 1;\n        options::One_option::print(this_00);\n      } while (*(undefined4 **)(iVar1 + -0x42e8) != puVar4);\n    }\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6490);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);\n    puStack_168 = (undefined4 *)0x0;\n    puStack_164 = (undefined4 *)0x0;\n    uStack_160 = 0;\n    (**(code **)(pcVar9 + 0x2c51c0))(&puStack_168);\n    if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar9 + 0x2c46c0);\n      puVar4 = puStack_168;\n      do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);\n    }\n    (**(code **)(pcVar9 + 0x2c8900))(10);\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64a8);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);\n    if (puStack_168 != puStack_164) {\n      puStack_164 = puStack_168;\n    }\n    (**(code **)(pcVar9 + 0x2c51c4))(&puStack_168);\n    if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar9 + 0x2c46c0);\n      puVar4 = puStack_168;\n      do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);\n    }\n    (**(code **)(pcVar9 + 0x2c8900))(10);\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64c4);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*(int *)(pcVar9 + 0x2c46c0) + 0x64d8);\n    if (puStack_168 != (undefined4 *)0x0) {\n      (**(code **)(pcVar9 + 0x2c3f6c))();\n    }\n    return;\n  }" (if "if") (parenthesized_expression "(*(char *)(puVar4 + 7) == '\0')" (( "(") (binary_expression "*(char *)(puVar4 + 7) == '\0'" (pointer_expression "*(char *)(puVar4 + 7)" (* "*") (cast_expression "(char *)(puVar4 + 7)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 7)" (( "(") (binary_expression "puVar4 + 7" (identifier "puVar4") (+ "+") (number_literal "7")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    iVar6 = *(int *)(pcVar8 + 0x2c489c);\n    if (puVar4[1] == 0) {\n      iVar1 = 2;\n      goto LAB_001fd0dc;\n    }\n    if (*(char *)*puVar4 == '\0') {\n      iVar1 = 2;\n      if (((char *)*puVar4)[1] == '\0') {\n        iVar6 = *(int *)(pcVar8 + 0x2c489c);\n        goto LAB_001fd0dc;\n      }\n    }\n    else {\n      iVar1 = 2;\n    }\nLAB_001fd168:\n    if ((uint)puVar4[6] < 5) {\n                    \n                    \n      (*(pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4) + 0x2cc1c0))();\n      return;\n    }\n    uVar2 = 0x81;\nLAB_001fd378:\n    pcVar9 = *(code **)(pcVar8 + 0x2c49b0);\n    (*pcVar9)(*(int *)(pcVar8 + 0x2c49d0) + 0x6434,uVar2,*(int *)(pcVar8 + 0x2c489c) + -0x5148);\n    puVar5 = *(undefined4 **)(pcVar9 + 0x2c45fc);\n    iStack_154 = iVar1;\n    pcStack_150 = param_2;\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6468);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);\n    iVar1 = *(int *)(pcVar9 + 0x2c51dc);\n    puVar4 = *(undefined4 **)(iVar1 + -0x42ec);\n    if (puVar4 != *(undefined4 **)(iVar1 + -0x42e8)) {\n      do {\n        this_00 = (One_option *)*puVar4;\n        puVar4 = puVar4 + 1;\n        options::One_option::print(this_00);\n      } while (*(undefined4 **)(iVar1 + -0x42e8) != puVar4);\n    }\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6490);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);\n    puStack_168 = (undefined4 *)0x0;\n    puStack_164 = (undefined4 *)0x0;\n    uStack_160 = 0;\n    (**(code **)(pcVar9 + 0x2c51c0))(&puStack_168);\n    if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar9 + 0x2c46c0);\n      puVar4 = puStack_168;\n      do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);\n    }\n    (**(code **)(pcVar9 + 0x2c8900))(10);\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64a8);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);\n    if (puStack_168 != puStack_164) {\n      puStack_164 = puStack_168;\n    }\n    (**(code **)(pcVar9 + 0x2c51c4))(&puStack_168);\n    if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar9 + 0x2c46c0);\n      puVar4 = puStack_168;\n      do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);\n    }\n    (**(code **)(pcVar9 + 0x2c8900))(10);\n    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64c4);\n    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*(int *)(pcVar9 + 0x2c46c0) + 0x64d8);\n    if (puStack_168 != (undefined4 *)0x0) {\n      (**(code **)(pcVar9 + 0x2c3f6c))();\n    }\n    return;\n  }" ({ "{") (expression_statement "iVar6 = *(int *)(pcVar8 + 0x2c489c);" (assignment_expression "iVar6 = *(int *)(pcVar8 + 0x2c489c)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(pcVar8 + 0x2c489c)" (* "*") (cast_expression "(int *)(pcVar8 + 0x2c489c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar8 + 0x2c489c)" (( "(") (binary_expression "pcVar8 + 0x2c489c" (identifier "pcVar8") (+ "+") (number_literal "0x2c489c")) () ")"))))) (; ";")) (if_statement "if (puVar4[1] == 0) {\n      iVar1 = 2;\n      goto LAB_001fd0dc;\n    }" (if "if") (parenthesized_expression "(puVar4[1] == 0)" (( "(") (binary_expression "puVar4[1] == 0" (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar1 = 2;\n      goto LAB_001fd0dc;\n    }" ({ "{") (expression_statement "iVar1 = 2;" (assignment_expression "iVar1 = 2" (identifier "iVar1") (= "=") (number_literal "2")) (; ";")) (goto_statement "goto LAB_001fd0dc;" (goto "goto") (statement_identifier "LAB_001fd0dc") (; ";")) (} "}"))) (if_statement "if (*(char *)*puVar4 == '\0') {\n      iVar1 = 2;\n      if (((char *)*puVar4)[1] == '\0') {\n        iVar6 = *(int *)(pcVar8 + 0x2c489c);\n        goto LAB_001fd0dc;\n      }\n    }\n    else {\n      iVar1 = 2;\n    }" (if "if") (parenthesized_expression "(*(char *)*puVar4 == '\0')" (( "(") (binary_expression "*(char *)*puVar4 == '\0'" (pointer_expression "*(char *)*puVar4" (* "*") (cast_expression "(char *)*puVar4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar4" (* "*") (identifier "puVar4")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      iVar1 = 2;\n      if (((char *)*puVar4)[1] == '\0') {\n        iVar6 = *(int *)(pcVar8 + 0x2c489c);\n        goto LAB_001fd0dc;\n      }\n    }" ({ "{") (expression_statement "iVar1 = 2;" (assignment_expression "iVar1 = 2" (identifier "iVar1") (= "=") (number_literal "2")) (; ";")) (if_statement "if (((char *)*puVar4)[1] == '\0') {\n        iVar6 = *(int *)(pcVar8 + 0x2c489c);\n        goto LAB_001fd0dc;\n      }" (if "if") (parenthesized_expression "(((char *)*puVar4)[1] == '\0')" (( "(") (binary_expression "((char *)*puVar4)[1] == '\0'" (subscript_expression "((char *)*puVar4)[1]" (parenthesized_expression "((char *)*puVar4)" (( "(") (cast_expression "(char *)*puVar4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) () ")")) ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        iVar6 = *(int *)(pcVar8 + 0x2c489c);\n        goto LAB_001fd0dc;\n      }" ({ "{") (expression_statement "iVar6 = *(int *)(pcVar8 + 0x2c489c);" (assignment_expression "iVar6 = *(int *)(pcVar8 + 0x2c489c)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(pcVar8 + 0x2c489c)" (* "*") (cast_expression "(int *)(pcVar8 + 0x2c489c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar8 + 0x2c489c)" (( "(") (binary_expression "pcVar8 + 0x2c489c" (identifier "pcVar8") (+ "+") (number_literal "0x2c489c")) () ")"))))) (; ";")) (goto_statement "goto LAB_001fd0dc;" (goto "goto") (statement_identifier "LAB_001fd0dc") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      iVar1 = 2;\n    }" (else "else") (compound_statement "{\n      iVar1 = 2;\n    }" ({ "{") (expression_statement "iVar1 = 2;" (assignment_expression "iVar1 = 2" (identifier "iVar1") (= "=") (number_literal "2")) (; ";")) (} "}")))) (labeled_statement "LAB_001fd168:\n    if ((uint)puVar4[6] < 5) {\n                    \n                    \n      (*(pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4) + 0x2cc1c0))();\n      return;\n    }" (statement_identifier "LAB_001fd168") (: ":") (if_statement "if ((uint)puVar4[6] < 5) {\n                    \n                    \n      (*(pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4) + 0x2cc1c0))();\n      return;\n    }" (if "if") (parenthesized_expression "((uint)puVar4[6] < 5)" (( "(") (binary_expression "(uint)puVar4[6] < 5" (cast_expression "(uint)puVar4[6]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "puVar4[6]" (identifier "puVar4") ([ "[") (number_literal "6") (] "]"))) (< "<") (number_literal "5")) () ")")) (compound_statement "{\n                    \n                    \n      (*(pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4) + 0x2cc1c0))();\n      return;\n    }" ({ "{") (expression_statement "(*(pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4) + 0x2cc1c0))();" (call_expression "(*(pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4) + 0x2cc1c0))()" (parenthesized_expression "(*(pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4) + 0x2cc1c0))" (( "(") (pointer_expression "*(pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4) + 0x2cc1c0)" (* "*") (parenthesized_expression "(pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4) + 0x2cc1c0)" (( "(") (binary_expression "pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4) + 0x2cc1c0" (binary_expression "pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4)" (identifier "pcVar8") (+ "+") (pointer_expression "*(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4)" (* "*") (cast_expression "(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4)" (( "(") (binary_expression "*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4" (binary_expression "*(int *)(pcVar8 + 0x2c489c) + -0x51b0" (pointer_expression "*(int *)(pcVar8 + 0x2c489c)" (* "*") (cast_expression "(int *)(pcVar8 + 0x2c489c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar8 + 0x2c489c)" (( "(") (binary_expression "pcVar8 + 0x2c489c" (identifier "pcVar8") (+ "+") (number_literal "0x2c489c")) () ")")))) (+ "+") (number_literal "-0x51b0")) (+ "+") (binary_expression "puVar4[6] * 4" (subscript_expression "puVar4[6]" (identifier "puVar4") ([ "[") (number_literal "6") (] "]")) (* "*") (number_literal "4"))) () ")"))))) (+ "+") (number_literal "0x2cc1c0")) () ")"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))) (expression_statement "uVar2 = 0x81;" (assignment_expression "uVar2 = 0x81" (identifier "uVar2") (= "=") (number_literal "0x81")) (; ";")) (labeled_statement "LAB_001fd378:\n    pcVar9 = *(code **)(pcVar8 + 0x2c49b0);" (statement_identifier "LAB_001fd378") (: ":") (expression_statement "pcVar9 = *(code **)(pcVar8 + 0x2c49b0);" (assignment_expression "pcVar9 = *(code **)(pcVar8 + 0x2c49b0)" (identifier "pcVar9") (= "=") (pointer_expression "*(code **)(pcVar8 + 0x2c49b0)" (* "*") (cast_expression "(code **)(pcVar8 + 0x2c49b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar8 + 0x2c49b0)" (( "(") (binary_expression "pcVar8 + 0x2c49b0" (identifier "pcVar8") (+ "+") (number_literal "0x2c49b0")) () ")"))))) (; ";"))) (expression_statement "(*pcVar9)(*(int *)(pcVar8 + 0x2c49d0) + 0x6434,uVar2,*(int *)(pcVar8 + 0x2c489c) + -0x5148);" (call_expression "(*pcVar9)(*(int *)(pcVar8 + 0x2c49d0) + 0x6434,uVar2,*(int *)(pcVar8 + 0x2c489c) + -0x5148)" (parenthesized_expression "(*pcVar9)" (( "(") (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) () ")")) (argument_list "(*(int *)(pcVar8 + 0x2c49d0) + 0x6434,uVar2,*(int *)(pcVar8 + 0x2c489c) + -0x5148)" (( "(") (binary_expression "*(int *)(pcVar8 + 0x2c49d0) + 0x6434" (pointer_expression "*(int *)(pcVar8 + 0x2c49d0)" (* "*") (cast_expression "(int *)(pcVar8 + 0x2c49d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar8 + 0x2c49d0)" (( "(") (binary_expression "pcVar8 + 0x2c49d0" (identifier "pcVar8") (+ "+") (number_literal "0x2c49d0")) () ")")))) (+ "+") (number_literal "0x6434")) (, ",") (identifier "uVar2") (, ",") (binary_expression "*(int *)(pcVar8 + 0x2c489c) + -0x5148" (pointer_expression "*(int *)(pcVar8 + 0x2c489c)" (* "*") (cast_expression "(int *)(pcVar8 + 0x2c489c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar8 + 0x2c489c)" (( "(") (binary_expression "pcVar8 + 0x2c489c" (identifier "pcVar8") (+ "+") (number_literal "0x2c489c")) () ")")))) (+ "+") (number_literal "-0x5148")) () ")"))) (; ";")) (expression_statement "puVar5 = *(undefined4 **)(pcVar9 + 0x2c45fc);" (assignment_expression "puVar5 = *(undefined4 **)(pcVar9 + 0x2c45fc)" (identifier "puVar5") (= "=") (pointer_expression "*(undefined4 **)(pcVar9 + 0x2c45fc)" (* "*") (cast_expression "(undefined4 **)(pcVar9 + 0x2c45fc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar9 + 0x2c45fc)" (( "(") (binary_expression "pcVar9 + 0x2c45fc" (identifier "pcVar9") (+ "+") (number_literal "0x2c45fc")) () ")"))))) (; ";")) (expression_statement "iStack_154 = iVar1;" (assignment_expression "iStack_154 = iVar1" (identifier "iStack_154") (= "=") (identifier "iVar1")) (; ";")) (expression_statement "pcStack_150 = param_2;" (assignment_expression "pcStack_150 = param_2" (identifier "pcStack_150") (= "=") (identifier "param_2")) (; ";")) (expression_statement "uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6468);" (assignment_expression "uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6468)" (identifier "uVar2") (= "=") (call_expression "(**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6468)" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c88a0))" (( "(") (pointer_expression "**(code **)(pcVar9 + 0x2c88a0)" (* "*") (pointer_expression "*(code **)(pcVar9 + 0x2c88a0)" (* "*") (cast_expression "(code **)(pcVar9 + 0x2c88a0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar9 + 0x2c88a0)" (( "(") (binary_expression "pcVar9 + 0x2c88a0" (identifier "pcVar9") (+ "+") (number_literal "0x2c88a0")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar9 + 0x2c46c0) + 0x6468)" (( "(") (binary_expression "*(int *)(pcVar9 + 0x2c46c0) + 0x6468" (pointer_expression "*(int *)(pcVar9 + 0x2c46c0)" (* "*") (cast_expression "(int *)(pcVar9 + 0x2c46c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 0x2c46c0)" (( "(") (binary_expression "pcVar9 + 0x2c46c0" (identifier "pcVar9") (+ "+") (number_literal "0x2c46c0")) () ")")))) (+ "+") (number_literal "0x6468")) () ")")))) (; ";")) (expression_statement "(**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);" (call_expression "(**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5)" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c87e0))" (( "(") (pointer_expression "**(code **)(pcVar9 + 0x2c87e0)" (* "*") (pointer_expression "*(code **)(pcVar9 + 0x2c87e0)" (* "*") (cast_expression "(code **)(pcVar9 + 0x2c87e0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar9 + 0x2c87e0)" (( "(") (binary_expression "pcVar9 + 0x2c87e0" (identifier "pcVar9") (+ "+") (number_literal "0x2c87e0")) () ")"))))) () ")")) (argument_list "(uVar2,*puVar5)" (( "(") (identifier "uVar2") (, ",") (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) () ")"))) (; ";")) (expression_statement "iVar1 = *(int *)(pcVar9 + 0x2c51dc);" (assignment_expression "iVar1 = *(int *)(pcVar9 + 0x2c51dc)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(pcVar9 + 0x2c51dc)" (* "*") (cast_expression "(int *)(pcVar9 + 0x2c51dc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 0x2c51dc)" (( "(") (binary_expression "pcVar9 + 0x2c51dc" (identifier "pcVar9") (+ "+") (number_literal "0x2c51dc")) () ")"))))) (; ";")) (expression_statement "puVar4 = *(undefined4 **)(iVar1 + -0x42ec);" (assignment_expression "puVar4 = *(undefined4 **)(iVar1 + -0x42ec)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined4 **)(iVar1 + -0x42ec)" (* "*") (cast_expression "(undefined4 **)(iVar1 + -0x42ec)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + -0x42ec)" (( "(") (binary_expression "iVar1 + -0x42ec" (identifier "iVar1") (+ "+") (number_literal "-0x42ec")) () ")"))))) (; ";")) (if_statement "if (puVar4 != *(undefined4 **)(iVar1 + -0x42e8)) {\n      do {\n        this_00 = (One_option *)*puVar4;\n        puVar4 = puVar4 + 1;\n        options::One_option::print(this_00);\n      } while (*(undefined4 **)(iVar1 + -0x42e8) != puVar4);\n    }" (if "if") (parenthesized_expression "(puVar4 != *(undefined4 **)(iVar1 + -0x42e8))" (( "(") (binary_expression "puVar4 != *(undefined4 **)(iVar1 + -0x42e8)" (identifier "puVar4") (!= "!=") (pointer_expression "*(undefined4 **)(iVar1 + -0x42e8)" (* "*") (cast_expression "(undefined4 **)(iVar1 + -0x42e8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + -0x42e8)" (( "(") (binary_expression "iVar1 + -0x42e8" (identifier "iVar1") (+ "+") (number_literal "-0x42e8")) () ")"))))) () ")")) (compound_statement "{\n      do {\n        this_00 = (One_option *)*puVar4;\n        puVar4 = puVar4 + 1;\n        options::One_option::print(this_00);\n      } while (*(undefined4 **)(iVar1 + -0x42e8) != puVar4);\n    }" ({ "{") (do_statement "do {\n        this_00 = (One_option *)*puVar4;\n        puVar4 = puVar4 + 1;\n        options::One_option::print(this_00);\n      } while (*(undefined4 **)(iVar1 + -0x42e8) != puVar4);" (do "do") (compound_statement "{\n        this_00 = (One_option *)*puVar4;\n        puVar4 = puVar4 + 1;\n        options::One_option::print(this_00);\n      }" ({ "{") (expression_statement "this_00 = (One_option *)*puVar4;" (assignment_expression "this_00 = (One_option *)*puVar4" (identifier "this_00") (= "=") (cast_expression "(One_option *)*puVar4" (( "(") (type_descriptor "One_option *" (type_identifier "One_option") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar4" (* "*") (identifier "puVar4")))) (; ";")) (expression_statement "puVar4 = puVar4 + 1;" (assignment_expression "puVar4 = puVar4 + 1" (identifier "puVar4") (= "=") (binary_expression "puVar4 + 1" (identifier "puVar4") (+ "+") (number_literal "1"))) (; ";")) (labeled_statement "options::One_option::print(this_00);" (statement_identifier "options") (: ":") (ERROR ":" (: ":")) (labeled_statement "One_option::print(this_00);" (statement_identifier "One_option") (: ":") (ERROR ":" (: ":")) (expression_statement "print(this_00);" (call_expression "print(this_00)" (identifier "print") (argument_list "(this_00)" (( "(") (identifier "this_00") () ")"))) (; ";")))) (} "}")) (while "while") (parenthesized_expression "(*(undefined4 **)(iVar1 + -0x42e8) != puVar4)" (( "(") (binary_expression "*(undefined4 **)(iVar1 + -0x42e8) != puVar4" (pointer_expression "*(undefined4 **)(iVar1 + -0x42e8)" (* "*") (cast_expression "(undefined4 **)(iVar1 + -0x42e8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + -0x42e8)" (( "(") (binary_expression "iVar1 + -0x42e8" (identifier "iVar1") (+ "+") (number_literal "-0x42e8")) () ")")))) (!= "!=") (identifier "puVar4")) () ")")) (; ";")) (} "}"))) (expression_statement "uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6490);" (assignment_expression "uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6490)" (identifier "uVar2") (= "=") (call_expression "(**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6490)" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c88a0))" (( "(") (pointer_expression "**(code **)(pcVar9 + 0x2c88a0)" (* "*") (pointer_expression "*(code **)(pcVar9 + 0x2c88a0)" (* "*") (cast_expression "(code **)(pcVar9 + 0x2c88a0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar9 + 0x2c88a0)" (( "(") (binary_expression "pcVar9 + 0x2c88a0" (identifier "pcVar9") (+ "+") (number_literal "0x2c88a0")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar9 + 0x2c46c0) + 0x6490)" (( "(") (binary_expression "*(int *)(pcVar9 + 0x2c46c0) + 0x6490" (pointer_expression "*(int *)(pcVar9 + 0x2c46c0)" (* "*") (cast_expression "(int *)(pcVar9 + 0x2c46c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 0x2c46c0)" (( "(") (binary_expression "pcVar9 + 0x2c46c0" (identifier "pcVar9") (+ "+") (number_literal "0x2c46c0")) () ")")))) (+ "+") (number_literal "0x6490")) () ")")))) (; ";")) (expression_statement "(**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);" (call_expression "(**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5)" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c87e0))" (( "(") (pointer_expression "**(code **)(pcVar9 + 0x2c87e0)" (* "*") (pointer_expression "*(code **)(pcVar9 + 0x2c87e0)" (* "*") (cast_expression "(code **)(pcVar9 + 0x2c87e0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar9 + 0x2c87e0)" (( "(") (binary_expression "pcVar9 + 0x2c87e0" (identifier "pcVar9") (+ "+") (number_literal "0x2c87e0")) () ")"))))) () ")")) (argument_list "(uVar2,*puVar5)" (( "(") (identifier "uVar2") (, ",") (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) () ")"))) (; ";")) (expression_statement "puStack_168 = (undefined4 *)0x0;" (assignment_expression "puStack_168 = (undefined4 *)0x0" (identifier "puStack_168") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puStack_164 = (undefined4 *)0x0;" (assignment_expression "puStack_164 = (undefined4 *)0x0" (identifier "puStack_164") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uStack_160 = 0;" (assignment_expression "uStack_160 = 0" (identifier "uStack_160") (= "=") (number_literal "0")) (; ";")) (expression_statement "(**(code **)(pcVar9 + 0x2c51c0))(&puStack_168);" (call_expression "(**(code **)(pcVar9 + 0x2c51c0))(&puStack_168)" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c51c0))" (( "(") (pointer_expression "**(code **)(pcVar9 + 0x2c51c0)" (* "*") (pointer_expression "*(code **)(pcVar9 + 0x2c51c0)" (* "*") (cast_expression "(code **)(pcVar9 + 0x2c51c0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar9 + 0x2c51c0)" (( "(") (binary_expression "pcVar9 + 0x2c51c0" (identifier "pcVar9") (+ "+") (number_literal "0x2c51c0")) () ")"))))) () ")")) (argument_list "(&puStack_168)" (( "(") (pointer_expression "&puStack_168" (& "&") (identifier "puStack_168")) () ")"))) (; ";")) (if_statement "if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar9 + 0x2c46c0);\n      puVar4 = puStack_168;\n      do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);\n    }" (if "if") (parenthesized_expression "(puStack_168 != puStack_164)" (( "(") (binary_expression "puStack_168 != puStack_164" (identifier "puStack_168") (!= "!=") (identifier "puStack_164")) () ")")) (compound_statement "{\n      iVar1 = *(int *)(pcVar9 + 0x2c46c0);\n      puVar4 = puStack_168;\n      do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);\n    }" ({ "{") (expression_statement "iVar1 = *(int *)(pcVar9 + 0x2c46c0);" (assignment_expression "iVar1 = *(int *)(pcVar9 + 0x2c46c0)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(pcVar9 + 0x2c46c0)" (* "*") (cast_expression "(int *)(pcVar9 + 0x2c46c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 0x2c46c0)" (( "(") (binary_expression "pcVar9 + 0x2c46c0" (identifier "pcVar9") (+ "+") (number_literal "0x2c46c0")) () ")"))))) (; ";")) (expression_statement "puVar4 = puStack_168;" (assignment_expression "puVar4 = puStack_168" (identifier "puVar4") (= "=") (identifier "puStack_168")) (; ";")) (do_statement "do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);" (do "do") (compound_statement "{\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      }" ({ "{") (expression_statement "(**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);" (call_expression "(**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4)" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c87e0))" (( "(") (pointer_expression "**(code **)(pcVar9 + 0x2c87e0)" (* "*") (pointer_expression "*(code **)(pcVar9 + 0x2c87e0)" (* "*") (cast_expression "(code **)(pcVar9 + 0x2c87e0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar9 + 0x2c87e0)" (( "(") (binary_expression "pcVar9 + 0x2c87e0" (identifier "pcVar9") (+ "+") (number_literal "0x2c87e0")) () ")"))))) () ")")) (argument_list "(iVar1 + 0x653c,*puVar4)" (( "(") (binary_expression "iVar1 + 0x653c" (identifier "iVar1") (+ "+") (number_literal "0x653c")) (, ",") (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) () ")"))) (; ";")) (expression_statement "puVar4 = puVar4 + 1;" (assignment_expression "puVar4 = puVar4 + 1" (identifier "puVar4") (= "=") (binary_expression "puVar4 + 1" (identifier "puVar4") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puStack_164 != puVar4)" (( "(") (binary_expression "puStack_164 != puVar4" (identifier "puStack_164") (!= "!=") (identifier "puVar4")) () ")")) (; ";")) (} "}"))) (expression_statement "(**(code **)(pcVar9 + 0x2c8900))(10);" (call_expression "(**(code **)(pcVar9 + 0x2c8900))(10)" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c8900))" (( "(") (pointer_expression "**(code **)(pcVar9 + 0x2c8900)" (* "*") (pointer_expression "*(code **)(pcVar9 + 0x2c8900)" (* "*") (cast_expression "(code **)(pcVar9 + 0x2c8900)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar9 + 0x2c8900)" (( "(") (binary_expression "pcVar9 + 0x2c8900" (identifier "pcVar9") (+ "+") (number_literal "0x2c8900")) () ")"))))) () ")")) (argument_list "(10)" (( "(") (number_literal "10") () ")"))) (; ";")) (expression_statement "uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64a8);" (assignment_expression "uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64a8)" (identifier "uVar2") (= "=") (call_expression "(**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64a8)" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c88a0))" (( "(") (pointer_expression "**(code **)(pcVar9 + 0x2c88a0)" (* "*") (pointer_expression "*(code **)(pcVar9 + 0x2c88a0)" (* "*") (cast_expression "(code **)(pcVar9 + 0x2c88a0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar9 + 0x2c88a0)" (( "(") (binary_expression "pcVar9 + 0x2c88a0" (identifier "pcVar9") (+ "+") (number_literal "0x2c88a0")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar9 + 0x2c46c0) + 0x64a8)" (( "(") (binary_expression "*(int *)(pcVar9 + 0x2c46c0) + 0x64a8" (pointer_expression "*(int *)(pcVar9 + 0x2c46c0)" (* "*") (cast_expression "(int *)(pcVar9 + 0x2c46c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 0x2c46c0)" (( "(") (binary_expression "pcVar9 + 0x2c46c0" (identifier "pcVar9") (+ "+") (number_literal "0x2c46c0")) () ")")))) (+ "+") (number_literal "0x64a8")) () ")")))) (; ";")) (expression_statement "(**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);" (call_expression "(**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5)" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c87e0))" (( "(") (pointer_expression "**(code **)(pcVar9 + 0x2c87e0)" (* "*") (pointer_expression "*(code **)(pcVar9 + 0x2c87e0)" (* "*") (cast_expression "(code **)(pcVar9 + 0x2c87e0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar9 + 0x2c87e0)" (( "(") (binary_expression "pcVar9 + 0x2c87e0" (identifier "pcVar9") (+ "+") (number_literal "0x2c87e0")) () ")"))))) () ")")) (argument_list "(uVar2,*puVar5)" (( "(") (identifier "uVar2") (, ",") (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) () ")"))) (; ";")) (if_statement "if (puStack_168 != puStack_164) {\n      puStack_164 = puStack_168;\n    }" (if "if") (parenthesized_expression "(puStack_168 != puStack_164)" (( "(") (binary_expression "puStack_168 != puStack_164" (identifier "puStack_168") (!= "!=") (identifier "puStack_164")) () ")")) (compound_statement "{\n      puStack_164 = puStack_168;\n    }" ({ "{") (expression_statement "puStack_164 = puStack_168;" (assignment_expression "puStack_164 = puStack_168" (identifier "puStack_164") (= "=") (identifier "puStack_168")) (; ";")) (} "}"))) (expression_statement "(**(code **)(pcVar9 + 0x2c51c4))(&puStack_168);" (call_expression "(**(code **)(pcVar9 + 0x2c51c4))(&puStack_168)" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c51c4))" (( "(") (pointer_expression "**(code **)(pcVar9 + 0x2c51c4)" (* "*") (pointer_expression "*(code **)(pcVar9 + 0x2c51c4)" (* "*") (cast_expression "(code **)(pcVar9 + 0x2c51c4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar9 + 0x2c51c4)" (( "(") (binary_expression "pcVar9 + 0x2c51c4" (identifier "pcVar9") (+ "+") (number_literal "0x2c51c4")) () ")"))))) () ")")) (argument_list "(&puStack_168)" (( "(") (pointer_expression "&puStack_168" (& "&") (identifier "puStack_168")) () ")"))) (; ";")) (if_statement "if (puStack_168 != puStack_164) {\n      iVar1 = *(int *)(pcVar9 + 0x2c46c0);\n      puVar4 = puStack_168;\n      do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);\n    }" (if "if") (parenthesized_expression "(puStack_168 != puStack_164)" (( "(") (binary_expression "puStack_168 != puStack_164" (identifier "puStack_168") (!= "!=") (identifier "puStack_164")) () ")")) (compound_statement "{\n      iVar1 = *(int *)(pcVar9 + 0x2c46c0);\n      puVar4 = puStack_168;\n      do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);\n    }" ({ "{") (expression_statement "iVar1 = *(int *)(pcVar9 + 0x2c46c0);" (assignment_expression "iVar1 = *(int *)(pcVar9 + 0x2c46c0)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(pcVar9 + 0x2c46c0)" (* "*") (cast_expression "(int *)(pcVar9 + 0x2c46c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 0x2c46c0)" (( "(") (binary_expression "pcVar9 + 0x2c46c0" (identifier "pcVar9") (+ "+") (number_literal "0x2c46c0")) () ")"))))) (; ";")) (expression_statement "puVar4 = puStack_168;" (assignment_expression "puVar4 = puStack_168" (identifier "puVar4") (= "=") (identifier "puStack_168")) (; ";")) (do_statement "do {\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      } while (puStack_164 != puVar4);" (do "do") (compound_statement "{\n        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);\n        puVar4 = puVar4 + 1;\n      }" ({ "{") (expression_statement "(**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);" (call_expression "(**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4)" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c87e0))" (( "(") (pointer_expression "**(code **)(pcVar9 + 0x2c87e0)" (* "*") (pointer_expression "*(code **)(pcVar9 + 0x2c87e0)" (* "*") (cast_expression "(code **)(pcVar9 + 0x2c87e0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar9 + 0x2c87e0)" (( "(") (binary_expression "pcVar9 + 0x2c87e0" (identifier "pcVar9") (+ "+") (number_literal "0x2c87e0")) () ")"))))) () ")")) (argument_list "(iVar1 + 0x653c,*puVar4)" (( "(") (binary_expression "iVar1 + 0x653c" (identifier "iVar1") (+ "+") (number_literal "0x653c")) (, ",") (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) () ")"))) (; ";")) (expression_statement "puVar4 = puVar4 + 1;" (assignment_expression "puVar4 = puVar4 + 1" (identifier "puVar4") (= "=") (binary_expression "puVar4 + 1" (identifier "puVar4") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puStack_164 != puVar4)" (( "(") (binary_expression "puStack_164 != puVar4" (identifier "puStack_164") (!= "!=") (identifier "puVar4")) () ")")) (; ";")) (} "}"))) (expression_statement "(**(code **)(pcVar9 + 0x2c8900))(10);" (call_expression "(**(code **)(pcVar9 + 0x2c8900))(10)" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c8900))" (( "(") (pointer_expression "**(code **)(pcVar9 + 0x2c8900)" (* "*") (pointer_expression "*(code **)(pcVar9 + 0x2c8900)" (* "*") (cast_expression "(code **)(pcVar9 + 0x2c8900)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar9 + 0x2c8900)" (( "(") (binary_expression "pcVar9 + 0x2c8900" (identifier "pcVar9") (+ "+") (number_literal "0x2c8900")) () ")"))))) () ")")) (argument_list "(10)" (( "(") (number_literal "10") () ")"))) (; ";")) (expression_statement "uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64c4);" (assignment_expression "uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64c4)" (identifier "uVar2") (= "=") (call_expression "(**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64c4)" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c88a0))" (( "(") (pointer_expression "**(code **)(pcVar9 + 0x2c88a0)" (* "*") (pointer_expression "*(code **)(pcVar9 + 0x2c88a0)" (* "*") (cast_expression "(code **)(pcVar9 + 0x2c88a0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar9 + 0x2c88a0)" (( "(") (binary_expression "pcVar9 + 0x2c88a0" (identifier "pcVar9") (+ "+") (number_literal "0x2c88a0")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar9 + 0x2c46c0) + 0x64c4)" (( "(") (binary_expression "*(int *)(pcVar9 + 0x2c46c0) + 0x64c4" (pointer_expression "*(int *)(pcVar9 + 0x2c46c0)" (* "*") (cast_expression "(int *)(pcVar9 + 0x2c46c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 0x2c46c0)" (( "(") (binary_expression "pcVar9 + 0x2c46c0" (identifier "pcVar9") (+ "+") (number_literal "0x2c46c0")) () ")")))) (+ "+") (number_literal "0x64c4")) () ")")))) (; ";")) (expression_statement "(**(code **)(pcVar9 + 0x2c87e0))(uVar2,*(int *)(pcVar9 + 0x2c46c0) + 0x64d8);" (call_expression "(**(code **)(pcVar9 + 0x2c87e0))(uVar2,*(int *)(pcVar9 + 0x2c46c0) + 0x64d8)" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c87e0))" (( "(") (pointer_expression "**(code **)(pcVar9 + 0x2c87e0)" (* "*") (pointer_expression "*(code **)(pcVar9 + 0x2c87e0)" (* "*") (cast_expression "(code **)(pcVar9 + 0x2c87e0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar9 + 0x2c87e0)" (( "(") (binary_expression "pcVar9 + 0x2c87e0" (identifier "pcVar9") (+ "+") (number_literal "0x2c87e0")) () ")"))))) () ")")) (argument_list "(uVar2,*(int *)(pcVar9 + 0x2c46c0) + 0x64d8)" (( "(") (identifier "uVar2") (, ",") (binary_expression "*(int *)(pcVar9 + 0x2c46c0) + 0x64d8" (pointer_expression "*(int *)(pcVar9 + 0x2c46c0)" (* "*") (cast_expression "(int *)(pcVar9 + 0x2c46c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 0x2c46c0)" (( "(") (binary_expression "pcVar9 + 0x2c46c0" (identifier "pcVar9") (+ "+") (number_literal "0x2c46c0")) () ")")))) (+ "+") (number_literal "0x64d8")) () ")"))) (; ";")) (if_statement "if (puStack_168 != (undefined4 *)0x0) {\n      (**(code **)(pcVar9 + 0x2c3f6c))();\n    }" (if "if") (parenthesized_expression "(puStack_168 != (undefined4 *)0x0)" (( "(") (binary_expression "puStack_168 != (undefined4 *)0x0" (identifier "puStack_168") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      (**(code **)(pcVar9 + 0x2c3f6c))();\n    }" ({ "{") (expression_statement "(**(code **)(pcVar9 + 0x2c3f6c))();" (call_expression "(**(code **)(pcVar9 + 0x2c3f6c))()" (parenthesized_expression "(**(code **)(pcVar9 + 0x2c3f6c))" (( "(") (pointer_expression "**(code **)(pcVar9 + 0x2c3f6c)" (* "*") (pointer_expression "*(code **)(pcVar9 + 0x2c3f6c)" (* "*") (cast_expression "(code **)(pcVar9 + 0x2c3f6c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar9 + 0x2c3f6c)" (( "(") (binary_expression "pcVar9 + 0x2c3f6c" (identifier "pcVar9") (+ "+") (number_literal "0x2c3f6c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar1 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x6430);" (assignment_expression "iVar1 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x6430)" (identifier "iVar1") (= "=") (call_expression "(**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x6430)" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8af0))" (( "(") (pointer_expression "**(code **)(pcVar8 + 0x2c8af0)" (* "*") (pointer_expression "*(code **)(pcVar8 + 0x2c8af0)" (* "*") (cast_expression "(code **)(pcVar8 + 0x2c8af0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar8 + 0x2c8af0)" (( "(") (binary_expression "pcVar8 + 0x2c8af0" (identifier "pcVar8") (+ "+") (number_literal "0x2c8af0")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar8 + 0x2c49d0) + 0x6430)" (( "(") (binary_expression "*(int *)(pcVar8 + 0x2c49d0) + 0x6430" (pointer_expression "*(int *)(pcVar8 + 0x2c49d0)" (* "*") (cast_expression "(int *)(pcVar8 + 0x2c49d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar8 + 0x2c49d0)" (( "(") (binary_expression "pcVar8 + 0x2c49d0" (identifier "pcVar8") (+ "+") (number_literal "0x2c49d0")) () ")")))) (+ "+") (number_literal "0x6430")) () ")")))) (; ";")) (expression_statement "iVar1 = iVar1 + 2;" (assignment_expression "iVar1 = iVar1 + 2" (identifier "iVar1") (= "=") (binary_expression "iVar1 + 2" (identifier "iVar1") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if (puVar4[10] != 0) {\n    uVar2 = 0x6a;\n    if (puVar4[6] == 4) goto LAB_001fd378;\n    uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(puVar4[10],0x6a);\n    iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x653c,uVar2);\n    iVar1 = iVar1 + iVar6;\n  }" (if "if") (parenthesized_expression "(puVar4[10] != 0)" (( "(") (binary_expression "puVar4[10] != 0" (subscript_expression "puVar4[10]" (identifier "puVar4") ([ "[") (number_literal "10") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar2 = 0x6a;\n    if (puVar4[6] == 4) goto LAB_001fd378;\n    uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(puVar4[10],0x6a);\n    iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x653c,uVar2);\n    iVar1 = iVar1 + iVar6;\n  }" ({ "{") (expression_statement "uVar2 = 0x6a;" (assignment_expression "uVar2 = 0x6a" (identifier "uVar2") (= "=") (number_literal "0x6a")) (; ";")) (if_statement "if (puVar4[6] == 4) goto LAB_001fd378;" (if "if") (parenthesized_expression "(puVar4[6] == 4)" (( "(") (binary_expression "puVar4[6] == 4" (subscript_expression "puVar4[6]" (identifier "puVar4") ([ "[") (number_literal "6") (] "]")) (== "==") (number_literal "4")) () ")")) (goto_statement "goto LAB_001fd378;" (goto "goto") (statement_identifier "LAB_001fd378") (; ";"))) (expression_statement "uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(puVar4[10],0x6a);" (assignment_expression "uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(puVar4[10],0x6a)" (identifier "uVar2") (= "=") (call_expression "(**(code **)(pcVar8 + 0x2c8bb0))(puVar4[10],0x6a)" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8bb0))" (( "(") (pointer_expression "**(code **)(pcVar8 + 0x2c8bb0)" (* "*") (pointer_expression "*(code **)(pcVar8 + 0x2c8bb0)" (* "*") (cast_expression "(code **)(pcVar8 + 0x2c8bb0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar8 + 0x2c8bb0)" (( "(") (binary_expression "pcVar8 + 0x2c8bb0" (identifier "pcVar8") (+ "+") (number_literal "0x2c8bb0")) () ")"))))) () ")")) (argument_list "(puVar4[10],0x6a)" (( "(") (subscript_expression "puVar4[10]" (identifier "puVar4") ([ "[") (number_literal "10") (] "]")) (, ",") (number_literal "0x6a") () ")")))) (; ";")) (expression_statement "iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x653c,uVar2);" (assignment_expression "iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x653c,uVar2)" (identifier "iVar6") (= "=") (call_expression "(**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x653c,uVar2)" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8af0))" (( "(") (pointer_expression "**(code **)(pcVar8 + 0x2c8af0)" (* "*") (pointer_expression "*(code **)(pcVar8 + 0x2c8af0)" (* "*") (cast_expression "(code **)(pcVar8 + 0x2c8af0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar8 + 0x2c8af0)" (( "(") (binary_expression "pcVar8 + 0x2c8af0" (identifier "pcVar8") (+ "+") (number_literal "0x2c8af0")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar8 + 0x2c49d0) + 0x653c,uVar2)" (( "(") (binary_expression "*(int *)(pcVar8 + 0x2c49d0) + 0x653c" (pointer_expression "*(int *)(pcVar8 + 0x2c49d0)" (* "*") (cast_expression "(int *)(pcVar8 + 0x2c49d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar8 + 0x2c49d0)" (( "(") (binary_expression "pcVar8 + 0x2c49d0" (identifier "pcVar8") (+ "+") (number_literal "0x2c49d0")) () ")")))) (+ "+") (number_literal "0x653c")) (, ",") (identifier "uVar2") () ")")))) (; ";")) (expression_statement "iVar1 = iVar1 + iVar6;" (assignment_expression "iVar1 = iVar1 + iVar6" (identifier "iVar1") (= "=") (binary_expression "iVar1 + iVar6" (identifier "iVar1") (+ "+") (identifier "iVar6"))) (; ";")) (} "}"))) (expression_statement "iVar6 = *(int *)(pcVar8 + 0x2c489c);" (assignment_expression "iVar6 = *(int *)(pcVar8 + 0x2c489c)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(pcVar8 + 0x2c489c)" (* "*") (cast_expression "(int *)(pcVar8 + 0x2c489c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar8 + 0x2c489c)" (( "(") (binary_expression "pcVar8 + 0x2c489c" (identifier "pcVar8") (+ "+") (number_literal "0x2c489c")) () ")"))))) (; ";")) (if_statement "if (puVar4[1] != 0) {\n    if ((*(char *)*puVar4 != *(char *)(puVar4 + 7)) || (((char *)*puVar4)[1] != '\0')) {\n      iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x644c);\n      iVar1 = iVar1 + iVar6;\n      goto LAB_001fd168;\n    }\n    iVar6 = *(int *)(pcVar8 + 0x2c489c);\n  }" (if "if") (parenthesized_expression "(puVar4[1] != 0)" (( "(") (binary_expression "puVar4[1] != 0" (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if ((*(char *)*puVar4 != *(char *)(puVar4 + 7)) || (((char *)*puVar4)[1] != '\0')) {\n      iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x644c);\n      iVar1 = iVar1 + iVar6;\n      goto LAB_001fd168;\n    }\n    iVar6 = *(int *)(pcVar8 + 0x2c489c);\n  }" ({ "{") (if_statement "if ((*(char *)*puVar4 != *(char *)(puVar4 + 7)) || (((char *)*puVar4)[1] != '\0')) {\n      iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x644c);\n      iVar1 = iVar1 + iVar6;\n      goto LAB_001fd168;\n    }" (if "if") (parenthesized_expression "((*(char *)*puVar4 != *(char *)(puVar4 + 7)) || (((char *)*puVar4)[1] != '\0'))" (( "(") (binary_expression "(*(char *)*puVar4 != *(char *)(puVar4 + 7)) || (((char *)*puVar4)[1] != '\0')" (parenthesized_expression "(*(char *)*puVar4 != *(char *)(puVar4 + 7))" (( "(") (binary_expression "*(char *)*puVar4 != *(char *)(puVar4 + 7)" (pointer_expression "*(char *)*puVar4" (* "*") (cast_expression "(char *)*puVar4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar4" (* "*") (identifier "puVar4")))) (!= "!=") (pointer_expression "*(char *)(puVar4 + 7)" (* "*") (cast_expression "(char *)(puVar4 + 7)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 7)" (( "(") (binary_expression "puVar4 + 7" (identifier "puVar4") (+ "+") (number_literal "7")) () ")"))))) () ")")) (|| "||") (parenthesized_expression "(((char *)*puVar4)[1] != '\0')" (( "(") (binary_expression "((char *)*puVar4)[1] != '\0'" (subscript_expression "((char *)*puVar4)[1]" (parenthesized_expression "((char *)*puVar4)" (( "(") (cast_expression "(char *)*puVar4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) () ")")) ([ "[") (number_literal "1") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n      iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x644c);\n      iVar1 = iVar1 + iVar6;\n      goto LAB_001fd168;\n    }" ({ "{") (expression_statement "iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x644c);" (assignment_expression "iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x644c)" (identifier "iVar6") (= "=") (call_expression "(**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x644c)" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8af0))" (( "(") (pointer_expression "**(code **)(pcVar8 + 0x2c8af0)" (* "*") (pointer_expression "*(code **)(pcVar8 + 0x2c8af0)" (* "*") (cast_expression "(code **)(pcVar8 + 0x2c8af0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar8 + 0x2c8af0)" (( "(") (binary_expression "pcVar8 + 0x2c8af0" (identifier "pcVar8") (+ "+") (number_literal "0x2c8af0")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar8 + 0x2c49d0) + 0x644c)" (( "(") (binary_expression "*(int *)(pcVar8 + 0x2c49d0) + 0x644c" (pointer_expression "*(int *)(pcVar8 + 0x2c49d0)" (* "*") (cast_expression "(int *)(pcVar8 + 0x2c49d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar8 + 0x2c49d0)" (( "(") (binary_expression "pcVar8 + 0x2c49d0" (identifier "pcVar8") (+ "+") (number_literal "0x2c49d0")) () ")")))) (+ "+") (number_literal "0x644c")) () ")")))) (; ";")) (expression_statement "iVar1 = iVar1 + iVar6;" (assignment_expression "iVar1 = iVar1 + iVar6" (identifier "iVar1") (= "=") (binary_expression "iVar1 + iVar6" (identifier "iVar1") (+ "+") (identifier "iVar6"))) (; ";")) (goto_statement "goto LAB_001fd168;" (goto "goto") (statement_identifier "LAB_001fd168") (; ";")) (} "}"))) (expression_statement "iVar6 = *(int *)(pcVar8 + 0x2c489c);" (assignment_expression "iVar6 = *(int *)(pcVar8 + 0x2c489c)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(pcVar8 + 0x2c489c)" (* "*") (cast_expression "(int *)(pcVar8 + 0x2c489c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar8 + 0x2c489c)" (( "(") (binary_expression "pcVar8 + 0x2c489c" (identifier "pcVar8") (+ "+") (number_literal "0x2c489c")) () ")"))))) (; ";")) (} "}"))) (if_statement "if (0x1d < iVar1) {\n    iVar1 = 0;\n    (**(code **)(pcVar8 + 0x2c8c10))(10);\n  }" (if "if") (parenthesized_expression "(0x1d < iVar1)" (( "(") (binary_expression "0x1d < iVar1" (number_literal "0x1d") (< "<") (identifier "iVar1")) () ")")) (compound_statement "{\n    iVar1 = 0;\n    (**(code **)(pcVar8 + 0x2c8c10))(10);\n  }" ({ "{") (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" (identifier "iVar1") (= "=") (number_literal "0")) (; ";")) (expression_statement "(**(code **)(pcVar8 + 0x2c8c10))(10);" (call_expression "(**(code **)(pcVar8 + 0x2c8c10))(10)" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8c10))" (( "(") (pointer_expression "**(code **)(pcVar8 + 0x2c8c10)" (* "*") (pointer_expression "*(code **)(pcVar8 + 0x2c8c10)" (* "*") (cast_expression "(code **)(pcVar8 + 0x2c8c10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar8 + 0x2c8c10)" (( "(") (binary_expression "pcVar8 + 0x2c8c10" (identifier "pcVar8") (+ "+") (number_literal "0x2c8c10")) () ")"))))) () ")")) (argument_list "(10)" (( "(") (number_literal "10") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_001fd0dc:\n  puVar5 = *(undefined4 **)(pcVar8 + 0x2c8a68);" (statement_identifier "LAB_001fd0dc") (: ":") (expression_statement "puVar5 = *(undefined4 **)(pcVar8 + 0x2c8a68);" (assignment_expression "puVar5 = *(undefined4 **)(pcVar8 + 0x2c8a68)" (identifier "puVar5") (= "=") (pointer_expression "*(undefined4 **)(pcVar8 + 0x2c8a68)" (* "*") (cast_expression "(undefined4 **)(pcVar8 + 0x2c8a68)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar8 + 0x2c8a68)" (( "(") (binary_expression "pcVar8 + 0x2c8a68" (identifier "pcVar8") (+ "+") (number_literal "0x2c8a68")) () ")"))))) (; ";"))) (do_statement "do {\n    iVar1 = iVar1 + 1;\n    (**(code **)(pcVar8 + 0x2c8a4c))(0x20,*puVar5);\n  } while (iVar1 != 0x1e);" (do "do") (compound_statement "{\n    iVar1 = iVar1 + 1;\n    (**(code **)(pcVar8 + 0x2c8a4c))(0x20,*puVar5);\n  }" ({ "{") (expression_statement "iVar1 = iVar1 + 1;" (assignment_expression "iVar1 = iVar1 + 1" (identifier "iVar1") (= "=") (binary_expression "iVar1 + 1" (identifier "iVar1") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "(**(code **)(pcVar8 + 0x2c8a4c))(0x20,*puVar5);" (call_expression "(**(code **)(pcVar8 + 0x2c8a4c))(0x20,*puVar5)" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8a4c))" (( "(") (pointer_expression "**(code **)(pcVar8 + 0x2c8a4c)" (* "*") (pointer_expression "*(code **)(pcVar8 + 0x2c8a4c)" (* "*") (cast_expression "(code **)(pcVar8 + 0x2c8a4c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar8 + 0x2c8a4c)" (( "(") (binary_expression "pcVar8 + 0x2c8a4c" (identifier "pcVar8") (+ "+") (number_literal "0x2c8a4c")) () ")"))))) () ")")) (argument_list "(0x20,*puVar5)" (( "(") (number_literal "0x20") (, ",") (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar1 != 0x1e)" (( "(") (binary_expression "iVar1 != 0x1e" (identifier "iVar1") (!= "!=") (number_literal "0x1e")) () ")")) (; ";")) (expression_statement "uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(puVar4[9]);" (assignment_expression "uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(puVar4[9])" (identifier "uVar2") (= "=") (call_expression "(**(code **)(pcVar8 + 0x2c8bb0))(puVar4[9])" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8bb0))" (( "(") (pointer_expression "**(code **)(pcVar8 + 0x2c8bb0)" (* "*") (pointer_expression "*(code **)(pcVar8 + 0x2c8bb0)" (* "*") (cast_expression "(code **)(pcVar8 + 0x2c8bb0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar8 + 0x2c8bb0)" (( "(") (binary_expression "pcVar8 + 0x2c8bb0" (identifier "pcVar8") (+ "+") (number_literal "0x2c8bb0")) () ")"))))) () ")")) (argument_list "(puVar4[9])" (( "(") (subscript_expression "puVar4[9]" (identifier "puVar4") ([ "[") (number_literal "9") (] "]")) () ")")))) (; ";")) (expression_statement "(**(code **)(pcVar8 + 0x2c8af0))(iVar6 + 0xec4,uVar2);" (call_expression "(**(code **)(pcVar8 + 0x2c8af0))(iVar6 + 0xec4,uVar2)" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8af0))" (( "(") (pointer_expression "**(code **)(pcVar8 + 0x2c8af0)" (* "*") (pointer_expression "*(code **)(pcVar8 + 0x2c8af0)" (* "*") (cast_expression "(code **)(pcVar8 + 0x2c8af0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar8 + 0x2c8af0)" (( "(") (binary_expression "pcVar8 + 0x2c8af0" (identifier "pcVar8") (+ "+") (number_literal "0x2c8af0")) () ")"))))) () ")")) (argument_list "(iVar6 + 0xec4,uVar2)" (( "(") (binary_expression "iVar6 + 0xec4" (identifier "iVar6") (+ "+") (number_literal "0xec4")) (, ",") (identifier "uVar2") () ")"))) (; ";")) (if_statement "if (*(char *)(puVar4 + 0xd) == '\0') {\n                    \n                    \n    (**(code **)(pcVar8 + 0x2c8c10))(10);\n    return;\n  }" (if "if") (parenthesized_expression "(*(char *)(puVar4 + 0xd) == '\0')" (( "(") (binary_expression "*(char *)(puVar4 + 0xd) == '\0'" (pointer_expression "*(char *)(puVar4 + 0xd)" (* "*") (cast_expression "(char *)(puVar4 + 0xd)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 0xd)" (( "(") (binary_expression "puVar4 + 0xd" (identifier "puVar4") (+ "+") (number_literal "0xd")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                    \n                    \n    (**(code **)(pcVar8 + 0x2c8c10))(10);\n    return;\n  }" ({ "{") (expression_statement "(**(code **)(pcVar8 + 0x2c8c10))(10);" (call_expression "(**(code **)(pcVar8 + 0x2c8c10))(10)" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8c10))" (( "(") (pointer_expression "**(code **)(pcVar8 + 0x2c8c10)" (* "*") (pointer_expression "*(code **)(pcVar8 + 0x2c8c10)" (* "*") (cast_expression "(code **)(pcVar8 + 0x2c8c10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar8 + 0x2c8c10)" (( "(") (binary_expression "pcVar8 + 0x2c8c10" (identifier "pcVar8") (+ "+") (number_literal "0x2c8c10")) () ")"))))) () ")")) (argument_list "(10)" (( "(") (number_literal "10") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(*(int *)(pcVar8 + 0x2c49d0) + 0x6460);" (assignment_expression "uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(*(int *)(pcVar8 + 0x2c49d0) + 0x6460)" (identifier "uVar2") (= "=") (call_expression "(**(code **)(pcVar8 + 0x2c8bb0))(*(int *)(pcVar8 + 0x2c49d0) + 0x6460)" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8bb0))" (( "(") (pointer_expression "**(code **)(pcVar8 + 0x2c8bb0)" (* "*") (pointer_expression "*(code **)(pcVar8 + 0x2c8bb0)" (* "*") (cast_expression "(code **)(pcVar8 + 0x2c8bb0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar8 + 0x2c8bb0)" (( "(") (binary_expression "pcVar8 + 0x2c8bb0" (identifier "pcVar8") (+ "+") (number_literal "0x2c8bb0")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar8 + 0x2c49d0) + 0x6460)" (( "(") (binary_expression "*(int *)(pcVar8 + 0x2c49d0) + 0x6460" (pointer_expression "*(int *)(pcVar8 + 0x2c49d0)" (* "*") (cast_expression "(int *)(pcVar8 + 0x2c49d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar8 + 0x2c49d0)" (( "(") (binary_expression "pcVar8 + 0x2c49d0" (identifier "pcVar8") (+ "+") (number_literal "0x2c49d0")) () ")")))) (+ "+") (number_literal "0x6460")) () ")")))) (; ";")) (expression_statement "(**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c489c) + -0x1e94,uVar2);" (call_expression "(**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c489c) + -0x1e94,uVar2)" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8af0))" (( "(") (pointer_expression "**(code **)(pcVar8 + 0x2c8af0)" (* "*") (pointer_expression "*(code **)(pcVar8 + 0x2c8af0)" (* "*") (cast_expression "(code **)(pcVar8 + 0x2c8af0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar8 + 0x2c8af0)" (( "(") (binary_expression "pcVar8 + 0x2c8af0" (identifier "pcVar8") (+ "+") (number_literal "0x2c8af0")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar8 + 0x2c489c) + -0x1e94,uVar2)" (( "(") (binary_expression "*(int *)(pcVar8 + 0x2c489c) + -0x1e94" (pointer_expression "*(int *)(pcVar8 + 0x2c489c)" (* "*") (cast_expression "(int *)(pcVar8 + 0x2c489c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar8 + 0x2c489c)" (( "(") (binary_expression "pcVar8 + 0x2c489c" (identifier "pcVar8") (+ "+") (number_literal "0x2c489c")) () ")")))) (+ "+") (number_literal "-0x1e94")) (, ",") (identifier "uVar2") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar8 + 0x2c8c10))(10);" (call_expression "(**(code **)(pcVar8 + 0x2c8c10))(10)" (parenthesized_expression "(**(code **)(pcVar8 + 0x2c8c10))" (( "(") (pointer_expression "**(code **)(pcVar8 + 0x2c8c10)" (* "*") (pointer_expression "*(code **)(pcVar8 + 0x2c8c10)" (* "*") (cast_expression "(code **)(pcVar8 + 0x2c8c10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar8 + 0x2c8c10)" (( "(") (binary_expression "pcVar8 + 0x2c8c10" (identifier "pcVar8") (+ "+") (number_literal "0x2c8c10")) () ")"))))) () ")")) (argument_list "(10)" (( "(") (number_literal "10") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* WARNING: Struct "Output_section_headers": ignoring overlapping field "layout_" */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Struct "Output_reduced_debug_abbrev_section": ignoring overlapping field "data_" */
/* WARNING: Struct "Output_reduced_debug_info_section": ignoring overlapping field "data_" */
/* DWARF original prototype: void parse_dynamic_list(General_options * this, char * param_1, char *
   arg, Command_line * cmdline) */

void __thiscall
gold::type_1::function_1
          (type_1 *this,char *param_1,char *arg,type_2 *cmdline)

{
  int var_1;
  type_3 uVar2;
  type_3 uVar3;
  type_4 *var_8;
  type_5 var_11;
  type_6 *this_00;
  type_3 *var_14;
  type_3 *puVar7;
  int var_19;
  type_7 *var_3;
  type_8 *var_4;
  type_8 *var_13;
  type_3 *var_16;
  type_3 *var_17;
  type_3 uStack_160;
  int iStack_154;
  char *pcStack_150;
  
  var_1 = (*(type_8 *)PTR_read_dynamic_list_004c2568)(arg,cmdline,&this->dynamic_list_);
  if (var_1 != 0) {
    this->have_dynamic_list_ = true;
    return;
  }
  uVar2 = (*(type_8 *)PTR_gettext_004c5c30)(var_2 + 0x6370);
  var_3 = PTR_gold_fatal_004c2020;
  (*(type_8 *)PTR_gold_fatal_004c2020)();
  uVar3 = (**(type_8 **)(var_3 + 0x2c8d98))(*(int *)(var_3 + 0x2c4bb8) + 0x639c);
  var_4 = *(type_8 **)(var_3 + 0x2c5188);
  (*var_4)(uVar3,uVar2,arg);
  uVar2 = (**(type_8 **)(var_4 + 0x2c8d48))(*(int *)(var_4 + 0x2c4b68) + 0x63d0);
  var_4 = *(type_8 **)(var_4 + 0x2c5138);
  (*var_4)(uVar2,uVar3);
  var_8 = (type_4 *)
           (**(type_8 **)(var_4 + 0x2c8d04))(*(int *)(var_4 + 0x2c4b24) + 0x63f4);
  var_4 = *(type_8 **)(var_4 + 0x2c50f4);
  (*var_4)();
  if ((cmdline->inputs_).in_group_ != false) {
    (cmdline->inputs_).in_group_ = false;
    return;
  }
  var_1 = *(int *)(var_4 + 0x2c55f8) + -0x30d4;
  Input_arguments::var_5(var_8);
  var_8 = (type_4 *)
           (**(type_8 **)(var_1 + 0x2c8c90))(*(int *)(var_6 + var_1) + 0x6414);
  var_4 = *(type_8 **)(var_1 + 0x2c5080);
  (*var_4)();
  if ((cmdline->inputs_).in_lib_ != false) {
    (cmdline->inputs_).in_lib_ = false;
    return;
  }
  var_1 = *(int *)(var_4 + 0x2c5584) + -0x3060;
  Input_arguments::var_7(var_8);
  if (var_8 < (type_4 *)0x40000000) {
    uVar2 = (**(type_8 **)(var_1 + 0x2c4394))((int)var_8 << 2);
    (**(type_8 **)(var_1 + 0x2c8c54))(uVar2,0,(int)var_8 << 2);
    return;
  }
  var_4 = *(type_8 **)(var_1 + 0x2c4aac);
  (*var_4)();
  (**(type_8 **)(var_4 + 0x2c8af0))(*(int *)(var_4 + 0x2c489c) + 0xe80);
  if (*(char *)&var_8[1].input_argument_list_.
                super__Vector_base<gold::var_9,_std::allocator<gold::var_9>var_10>.
                _M_impl._M_end_of_storage == '\0') {
    var_19 = *(int *)(var_4 + 0x2c489c);
    if ((var_8->input_argument_list_).
        super__Vector_base<gold::var_9,_std::allocator<gold::var_9>var_10>._M_impl.
        _M_finish == (type_5)0x0) {
      var_1 = 2;
      goto LAB_001fd0dc;
    }
    var_11 = (var_8->input_argument_list_).
             super__Vector_base<gold::var_9,_std::allocator<gold::var_9>var_10>._M_impl
             ._M_start;
    if (var_11->is_file_ == false) {
      var_1 = 2;
      if (var_11->field_0x1 == '\0') {
        var_19 = *(int *)(var_4 + 0x2c489c);
        goto LAB_001fd0dc;
      }
    }
    else {
      var_1 = 2;
    }
LAB_001fd168:
    var_11 = var_8[1].input_argument_list_.
             super__Vector_base<gold::var_9,_std::allocator<gold::var_9>var_10>._M_impl
             ._M_finish;
    if (var_11 < (type_5)&var_12) {
                    /* WARNING: Could not recover jumptable at 0x001fd18c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      (*(var_4 + *(int *)(*(int *)(var_4 + 0x2c489c) + -0x51b0 + (int)var_11 * 4) + 0x2cc1c0))()
      ;
      return;
    }
    uVar2 = 0x81;
LAB_001fd378:
    var_13 = *(type_8 **)(var_4 + 0x2c49b0);
    (*var_13)(*(int *)(var_4 + 0x2c49d0) + 0x6434,uVar2,*(int *)(var_4 + 0x2c489c) + -0x5148);
    puVar7 = *(type_3 **)(var_13 + 0x2c45fc);
    iStack_154 = var_1;
    pcStack_150 = arg;
    uVar2 = (**(type_8 **)(var_13 + 0x2c88a0))(*(int *)(var_13 + 0x2c46c0) + 0x6468);
    (**(type_8 **)(var_13 + 0x2c87e0))(uVar2,*puVar7);
    var_1 = *(int *)(var_13 + 0x2c51dc);
    var_14 = *(type_3 **)(var_1 + -0x42ec);
    if (var_14 != *(type_3 **)(var_1 + -0x42e8)) {
      do {
        this_00 = (type_6 *)*var_14;
        var_14 = var_14 + 1;
        gold::options::One_option::var_15(this_00);
      } while (*(type_3 **)(var_1 + -0x42e8) != var_14);
    }
    uVar2 = (**(type_8 **)(var_13 + 0x2c88a0))(*(int *)(var_13 + 0x2c46c0) + 0x6490);
    (**(type_8 **)(var_13 + 0x2c87e0))(uVar2,*puVar7);
    var_16 = (type_3 *)0x0;
    var_17 = (type_3 *)0x0;
    uStack_160 = 0;
    (**(type_8 **)(var_13 + 0x2c51c0))(&var_16);
    if (var_16 != var_17) {
      var_1 = *(int *)(var_13 + 0x2c46c0);
      var_14 = var_16;
      do {
        (**(type_8 **)(var_13 + 0x2c87e0))(var_1 + 0x653c,*var_14);
        var_14 = var_14 + 1;
      } while (var_17 != var_14);
    }
    (**(type_8 **)(var_13 + 0x2c8900))(10);
    uVar2 = (**(type_8 **)(var_13 + 0x2c88a0))(*(int *)(var_13 + 0x2c46c0) + 0x64a8);
    (**(type_8 **)(var_13 + 0x2c87e0))(uVar2,*puVar7);
    if (var_16 != var_17) {
      var_17 = var_16;
    }
    (**(type_8 **)(var_13 + 0x2c51c4))(&var_16);
    if (var_16 != var_17) {
      var_1 = *(int *)(var_13 + 0x2c46c0);
      var_14 = var_16;
      do {
        (**(type_8 **)(var_13 + 0x2c87e0))(var_1 + 0x653c,*var_14);
        var_14 = var_14 + 1;
      } while (var_17 != var_14);
    }
    (**(type_8 **)(var_13 + 0x2c8900))(10);
    uVar2 = (**(type_8 **)(var_13 + 0x2c88a0))(*(int *)(var_13 + 0x2c46c0) + 0x64c4);
    (**(type_8 **)(var_13 + 0x2c87e0))(uVar2,*(int *)(var_13 + 0x2c46c0) + 0x64d8);
    if (var_16 != (type_3 *)0x0) {
      (**(type_8 **)(var_13 + 0x2c3f6c))();
    }
    return;
  }
  var_1 = (**(type_8 **)(var_4 + 0x2c8af0))(*(int *)(var_4 + 0x2c49d0) + 0x6430);
  var_11 = var_8[2].input_argument_list_.
           super__Vector_base<gold::var_9,_std::allocator<gold::var_9>var_10>._M_impl.
           _M_start;
  var_1 = var_1 + 2;
  if (var_11 != (type_5)0x0) {
    uVar2 = 0x6a;
    if (var_8[1].input_argument_list_.
        super__Vector_base<gold::var_9,_std::allocator<gold::var_9>var_10>._M_impl.
        _M_finish == (type_5)&var_18) goto LAB_001fd378;
    uVar2 = (**(type_8 **)(var_4 + 0x2c8bb0))(var_11,0x6a);
    var_19 = (**(type_8 **)(var_4 + 0x2c8af0))(*(int *)(var_4 + 0x2c49d0) + 0x653c,uVar2);
    var_1 = var_1 + var_19;
  }
  var_19 = *(int *)(var_4 + 0x2c489c);
  if ((var_8->input_argument_list_).
      super__Vector_base<gold::var_9,_std::allocator<gold::var_9>var_10>._M_impl.
      _M_finish != (type_5)0x0) {
    var_11 = (var_8->input_argument_list_).
             super__Vector_base<gold::var_9,_std::allocator<gold::var_9>var_10>._M_impl
             ._M_start;
    if ((var_11->is_file_ !=
         (bool)*(char *)&var_8[1].input_argument_list_.
                         super__Vector_base<gold::var_9,_std::allocator<gold::var_9>var_10>
                         ._M_impl._M_end_of_storage) || (var_11->field_0x1 != '\0')) {
      var_19 = (**(type_8 **)(var_4 + 0x2c8af0))(*(int *)(var_4 + 0x2c49d0) + 0x644c);
      var_1 = var_1 + var_19;
      goto LAB_001fd168;
    }
    var_19 = *(int *)(var_4 + 0x2c489c);
  }
  if (0x1d < var_1) {
    var_1 = 0;
    (**(type_8 **)(var_4 + 0x2c8c10))(10);
  }
LAB_001fd0dc:
  var_14 = *(type_3 **)(var_4 + 0x2c8a68);
  do {
    var_1 = var_1 + 1;
    (**(type_8 **)(var_4 + 0x2c8a4c))(0x20,*var_14);
  } while (var_1 != 0x1e);
  uVar2 = (**(type_8 **)(var_4 + 0x2c8bb0))(var_8[1].file_count_);
  (**(type_8 **)(var_4 + 0x2c8af0))(var_19 + 0xec4,uVar2);
  if (var_8[2].in_group_ == false) {
                    /* WARNING: Could not recover jumptable at 0x001fd14c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (**(type_8 **)(var_4 + 0x2c8c10))(10);
    return;
  }
  uVar2 = (**(type_8 **)(var_4 + 0x2c8bb0))(*(int *)(var_4 + 0x2c49d0) + 0x6460);
  (**(type_8 **)(var_4 + 0x2c8af0))(*(int *)(var_4 + 0x2c489c) + -0x1e94,uVar2);
                    /* WARNING: Could not recover jumptable at 0x001fd268. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  (**(type_8 **)(var_4 + 0x2c8c10))(10);
  return;
}


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

/* gold::General_options::MASKED(char const*, char const*, gold::Command_line*) */

void __thiscall
gold::General_options::MASKED
          (General_options *this,char *param_1,char *param_2,Command_line *param_3)

{
  int iVar1;
  undefined4 uVar2;
  undefined4 uVar3;
  undefined4 *puVar4;
  One_option *this_00;
  undefined4 *puVar5;
  int iVar6;
  undefined *puVar7;
  code *pcVar8;
  code *pcVar9;
  undefined4 *puStack_168;
  undefined4 *puStack_164;
  undefined4 uStack_160;
  int iStack_154;
  char *pcStack_150;
  
  iVar1 = (*(code *)PTR_read_dynamic_list_004c2568)(param_2,param_3,this + 0x5950);
  if (iVar1 != 0) {
    this[0x5a1c] = (General_options)0x1;
    return;
  }
  uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s__s_004c1a50 + 0x6370);
  puVar7 = PTR_gold_fatal_004c2020;
  (*(code *)PTR_gold_fatal_004c2020)();
  uVar3 = (**(code **)(puVar7 + 0x2c8d98))(*(int *)(puVar7 + 0x2c4bb8) + 0x639c);
  pcVar8 = *(code **)(puVar7 + 0x2c5188);
  (*pcVar8)(uVar3,uVar2,param_2);
  uVar2 = (**(code **)(pcVar8 + 0x2c8d48))(*(int *)(pcVar8 + 0x2c4b68) + 0x63d0);
  pcVar8 = *(code **)(pcVar8 + 0x2c5138);
  (*pcVar8)(uVar2,uVar3);
  uVar2 = (**(code **)(pcVar8 + 0x2c8d04))(*(int *)(pcVar8 + 0x2c4b24) + 0x63f4);
  pcVar8 = *(code **)(pcVar8 + 0x2c50f4);
  (*pcVar8)(uVar2);
  if (param_3[0x5b90] != (Command_line)0x0) {
    param_3[0x5b90] = (Command_line)0x0;
    return;
  }
  iVar1 = *(int *)(pcVar8 + 0x2c55f8) + -0x30d4;
  FUN_001fcf2c();
  puVar4 = (undefined4 *)(**(code **)(iVar1 + 0x2c8c90))(*(int *)(iVar1 + 0x2c4ab0) + 0x6414);
  pcVar8 = *(code **)(iVar1 + 0x2c5080);
  (*pcVar8)();
  if (param_3[0x5b91] != (Command_line)0x0) {
    param_3[0x5b91] = (Command_line)0x0;
    return;
  }
  iVar1 = *(int *)(pcVar8 + 0x2c5584) + -0x3060;
  FUN_001fcfa0();
  if (puVar4 < (undefined4 *)0x40000000) {
    uVar2 = (**(code **)(iVar1 + 0x2c4394))((int)puVar4 << 2);
    (**(code **)(iVar1 + 0x2c8c54))(uVar2,0,(int)puVar4 << 2);
    return;
  }
  pcVar8 = *(code **)(iVar1 + 0x2c4aac);
  (*pcVar8)();
  (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c489c) + 0xe80);
  if (*(char *)(puVar4 + 7) == '\0') {
    iVar6 = *(int *)(pcVar8 + 0x2c489c);
    if (puVar4[1] == 0) {
      iVar1 = 2;
      goto LAB_001fd0dc;
    }
    if (*(char *)*puVar4 == '\0') {
      iVar1 = 2;
      if (((char *)*puVar4)[1] == '\0') {
        iVar6 = *(int *)(pcVar8 + 0x2c489c);
        goto LAB_001fd0dc;
      }
    }
    else {
      iVar1 = 2;
    }
LAB_001fd168:
    if ((uint)puVar4[6] < 5) {
                    /* WARNING: Could not recover jumptable at 0x001fd18c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      (*(pcVar8 + *(int *)(*(int *)(pcVar8 + 0x2c489c) + -0x51b0 + puVar4[6] * 4) + 0x2cc1c0))();
      return;
    }
    uVar2 = 0x81;
LAB_001fd378:
    pcVar9 = *(code **)(pcVar8 + 0x2c49b0);
    (*pcVar9)(*(int *)(pcVar8 + 0x2c49d0) + 0x6434,uVar2,*(int *)(pcVar8 + 0x2c489c) + -0x5148);
    puVar5 = *(undefined4 **)(pcVar9 + 0x2c45fc);
    iStack_154 = iVar1;
    pcStack_150 = param_2;
    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6468);
    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);
    iVar1 = *(int *)(pcVar9 + 0x2c51dc);
    puVar4 = *(undefined4 **)(iVar1 + -0x42ec);
    if (puVar4 != *(undefined4 **)(iVar1 + -0x42e8)) {
      do {
        this_00 = (One_option *)*puVar4;
        puVar4 = puVar4 + 1;
        options::One_option::print(this_00);
      } while (*(undefined4 **)(iVar1 + -0x42e8) != puVar4);
    }
    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x6490);
    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);
    puStack_168 = (undefined4 *)0x0;
    puStack_164 = (undefined4 *)0x0;
    uStack_160 = 0;
    (**(code **)(pcVar9 + 0x2c51c0))(&puStack_168);
    if (puStack_168 != puStack_164) {
      iVar1 = *(int *)(pcVar9 + 0x2c46c0);
      puVar4 = puStack_168;
      do {
        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);
        puVar4 = puVar4 + 1;
      } while (puStack_164 != puVar4);
    }
    (**(code **)(pcVar9 + 0x2c8900))(10);
    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64a8);
    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*puVar5);
    if (puStack_168 != puStack_164) {
      puStack_164 = puStack_168;
    }
    (**(code **)(pcVar9 + 0x2c51c4))(&puStack_168);
    if (puStack_168 != puStack_164) {
      iVar1 = *(int *)(pcVar9 + 0x2c46c0);
      puVar4 = puStack_168;
      do {
        (**(code **)(pcVar9 + 0x2c87e0))(iVar1 + 0x653c,*puVar4);
        puVar4 = puVar4 + 1;
      } while (puStack_164 != puVar4);
    }
    (**(code **)(pcVar9 + 0x2c8900))(10);
    uVar2 = (**(code **)(pcVar9 + 0x2c88a0))(*(int *)(pcVar9 + 0x2c46c0) + 0x64c4);
    (**(code **)(pcVar9 + 0x2c87e0))(uVar2,*(int *)(pcVar9 + 0x2c46c0) + 0x64d8);
    if (puStack_168 != (undefined4 *)0x0) {
      (**(code **)(pcVar9 + 0x2c3f6c))();
    }
    return;
  }
  iVar1 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x6430);
  iVar1 = iVar1 + 2;
  if (puVar4[10] != 0) {
    uVar2 = 0x6a;
    if (puVar4[6] == 4) goto LAB_001fd378;
    uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(puVar4[10],0x6a);
    iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x653c,uVar2);
    iVar1 = iVar1 + iVar6;
  }
  iVar6 = *(int *)(pcVar8 + 0x2c489c);
  if (puVar4[1] != 0) {
    if ((*(char *)*puVar4 != *(char *)(puVar4 + 7)) || (((char *)*puVar4)[1] != '\0')) {
      iVar6 = (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c49d0) + 0x644c);
      iVar1 = iVar1 + iVar6;
      goto LAB_001fd168;
    }
    iVar6 = *(int *)(pcVar8 + 0x2c489c);
  }
  if (0x1d < iVar1) {
    iVar1 = 0;
    (**(code **)(pcVar8 + 0x2c8c10))(10);
  }
LAB_001fd0dc:
  puVar5 = *(undefined4 **)(pcVar8 + 0x2c8a68);
  do {
    iVar1 = iVar1 + 1;
    (**(code **)(pcVar8 + 0x2c8a4c))(0x20,*puVar5);
  } while (iVar1 != 0x1e);
  uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(puVar4[9]);
  (**(code **)(pcVar8 + 0x2c8af0))(iVar6 + 0xec4,uVar2);
  if (*(char *)(puVar4 + 0xd) == '\0') {
                    /* WARNING: Could not recover jumptable at 0x001fd14c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (**(code **)(pcVar8 + 0x2c8c10))(10);
    return;
  }
  uVar2 = (**(code **)(pcVar8 + 0x2c8bb0))(*(int *)(pcVar8 + 0x2c49d0) + 0x6460);
  (**(code **)(pcVar8 + 0x2c8af0))(*(int *)(pcVar8 + 0x2c489c) + -0x1e94,uVar2);
                    /* WARNING: Could not recover jumptable at 0x001fd268. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  (**(code **)(pcVar8 + 0x2c8c10))(10);
  return;
}

