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

bool gold::read_input_script
               (Workqueue *workqueue,Symbol_table *symtab,Layout *layout,Dirsearch *dirsearch,
               int dirindex,Input_objects *input_objects,Mapfile *mapfile,Input_group *input_group,
               Input_argument *input_argument,Input_file *input_file,Task_token *next_blocker,
               bool *used_next_blocker)

{
  bool bVar1;
  bool bVar2;
  char cVar3;
  uint arg_serial;
  pointer pcVar4;
  Timespec mtime;
  Incremental_inputs *script;
  int iVar5;
  pointer pIVar6;
  Task *pTVar7;
  Task *t;
  char *format;
  pointer pIVar8;
  Task *local_e4;
  pointer local_dc;
  time_t local_d4;
  int local_d0;
  Language local_c0;
  string input_string;
  Lex lex;
  Parser_closure closure;
  
  *used_next_blocker = false;
  input_string._M_string_length = 0;
  input_string.field_2._M_local_buf[0] = '\0';
  input_string._M_dataplus._M_p = (pointer)&input_string.field_2;
                    /* try { // try from 0016d793 to 0016d86d has its CatchHandler @ 0016dced */
  Lex::read_file(input_file,&input_string);
  lex.mode_ = LINKER_SCRIPT;
  lex.first_token_ = 0x163;
  lex.input_string_ = input_string._M_dataplus._M_p;
  lex.current_ = input_string._M_dataplus._M_p;
  lex.linestart_ = input_string._M_dataplus._M_p;
  lex.input_length_ = input_string._M_string_length;
  script = layout->incremental_inputs_;
  lex.token_.classification_ = TOKEN_INVALID;
  lex.token_.value_ = (char *)0x0;
  lex.token_.value_length_ = 0;
  lex.token_.opcode_ = 0;
  lex.token_.lineno_ = 0;
  lex.token_.charpos_ = 0;
  lex.lineno_ = 1;
  if (script != (Incremental_inputs *)0x0) {
    File_read::get_mtime(&input_file->file_);
    if (input_argument->is_file_ == false) {
                    /* WARNING: Subroutine does not return */
      do_gold_unreachable("../../gold/options.h",0x828,"file");
    }
    arg_serial = (input_argument->file_).arg_serial_;
    script = (Incremental_inputs *)operator_new(0x20);
    (((string *)&script->inputs_)->_M_dataplus)._M_p =
         (pointer)&((string *)&script->inputs_)->field_2;
    pcVar4 = (input_file->file_).name_._M_dataplus._M_p;
                    /* try { // try from 0016d888 to 0016d88c has its CatchHandler @ 0016dcfb */
    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
    _M_construct<char*>((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)script,
                        pcVar4,pcVar4 + (input_file->file_).name_._M_string_length,0);
    *(undefined4 *)((int)&(script->command_line_).field_2 + 4) = 0;
    *(undefined4 *)((int)&(script->command_line_).field_2 + 8) = 0;
    mtime.nanoseconds = local_d0;
    mtime.seconds = local_d4;
                    /* try { // try from 0016d8be to 0016d8d6 has its CatchHandler @ 0016dced */
    Incremental_inputs::report_script
              (layout->incremental_inputs_,(Script_info *)script,arg_serial,mtime);
  }
  closure.skip_on_incompatible_target_ = Input_file::will_search_for(input_file);
  closure.script_options_ = layout->script_options_;
  closure.in_group_ = input_group != (Input_group *)0x0;
  closure.is_in_sysroot_ = input_file->is_in_sysroot_;
  bVar1 = input_argument->is_file_;
  if (bVar1 != false) {
    closure.version_script_info_ = &(closure.script_options_)->version_script_info_;
    closure.filename_ = (input_file->file_).name_._M_dataplus._M_p;
    closure.parsing_defsym_ = false;
    closure.posdep_options_.as_needed_ = (input_argument->file_).options_.as_needed_;
    closure.posdep_options_.Bdynamic_ = (input_argument->file_).options_.Bdynamic_;
    closure.posdep_options_._2_2_ = *(undefined2 *)&(input_argument->file_).options_.field_0x2;
    closure.found_incompatible_target_ = false;
    closure.posdep_options_.format_enum_ = (input_argument->file_).options_.format_enum_;
    closure.command_line_ = (Command_line *)0x0;
    closure.posdep_options_.whole_archive_ = (input_argument->file_).options_.whole_archive_;
    closure.posdep_options_._9_3_ = *(undefined3 *)&(input_argument->file_).options_.field_0x9;
    closure.posdep_options_.incremental_disposition_ =
         (input_argument->file_).options_.incremental_disposition_;
    closure.lineno_ = 0;
    closure.charpos_ = 0;
    closure.lex_ = &lex;
    closure.lex_mode_stack_.super__Vector_base<gold::Lex::Mode,_std::allocator<gold::Lex::Mode>_>.
    _M_impl._M_start = (pointer)0x0;
    closure.lex_mode_stack_.super__Vector_base<gold::Lex::Mode,_std::allocator<gold::Lex::Mode>_>.
    _M_impl._M_finish = (pointer)0x0;
    closure.lex_mode_stack_.super__Vector_base<gold::Lex::Mode,_std::allocator<gold::Lex::Mode>_>.
    _M_impl._M_end_of_storage = (pointer)0x0;
    closure.language_stack_.
    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>
    ._M_impl._M_start = (pointer)0x0;
    closure.language_stack_.
    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>
    ._M_impl._M_finish = (pointer)0x0;
    closure.language_stack_.
    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>
    ._M_impl._M_end_of_storage = (pointer)0x0;
    closure.inputs_ = (Input_arguments *)0x0;
    local_c0 = LANGUAGE_C;
    closure.script_info_ = (Script_info *)script;
                    /* try { // try from 0016d9b7 to 0016d9d3 has its CatchHandler @ 0016dd02 */
    std::
    vector<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>
    ::_M_realloc_insert<gold::Version_script_info::Language>
              (&closure.language_stack_,(iterator)0x0,&local_c0);
    local_c0 = lex.mode_;
    std::vector<gold::Lex::Mode,_std::allocator<gold::Lex::Mode>_>::emplace_back<gold::Lex::Mode>
              (&closure.lex_mode_stack_,&local_c0);
    bVar2 = (layout->script_options_->script_sections_).saw_sections_clause_;
                    /* try { // try from 0016d9f3 to 0016dca6 has its CatchHandler @ 0016dcf4 */
    iVar5 = yyparse(&closure);
    cVar3 = bVar1;
    if (iVar5 == 0) {
      if (((bVar2 == false) &&
          ((layout->script_options_->script_sections_).saw_sections_clause_ != false)) &&
         (layout->have_added_input_section_ != false)) {
        pcVar4 = (input_file->file_).name_._M_dataplus._M_p;
        format = (char *)gettext("%s: SECTIONS seen after other input files; try -T/--script");
        gold_error(format,pcVar4);
      }
      if (closure.inputs_ != (Input_arguments *)0x0) {
        local_e4 = (Task *)0x0;
        pIVar8 = ((closure.inputs_)->input_argument_list_).
                 super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.
                 _M_impl._M_finish;
        local_dc = ((closure.inputs_)->input_argument_list_).
                   super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.
                   _M_impl._M_start;
        if (pIVar8 != local_dc) {
          do {
            pIVar6 = local_dc + 1;
            pTVar7 = (Task *)next_blocker;
            if (pIVar6 != pIVar8) {
              pTVar7 = (Task *)operator_new(0x14);
              *(undefined1 *)&pTVar7->_vptr_Task = 1;
              (pTVar7->name_)._M_dataplus._M_p = (pointer)0x0;
              (pTVar7->name_)._M_string_length = 0;
              (pTVar7->name_).field_2._M_allocated_capacity = 0;
              pTVar7->list_next_ = (Task *)0x1;
            }
            t = (Task *)operator_new(0x50);
            t->list_next_ = (Task *)0x0;
            (t->name_)._M_dataplus._M_p = (pointer)&(t->name_).field_2;
            (t->name_)._M_string_length = 0;
            t->_vptr_Task = (_func_int_varargs **)&PTR__Read_symbols_00384d90;
            t[1].name_._M_string_length = (size_type)dirsearch;
            t[1]._vptr_Task = (_func_int_varargs **)input_objects;
            *(Mapfile **)((int)&t[1].name_.field_2 + 4) = mapfile;
            t[1].list_next_ = (Task *)symtab;
            t[2]._vptr_Task = (_func_int_varargs **)local_e4;
            t[1].name_._M_dataplus._M_p = (pointer)layout;
            (t->name_).field_2._M_local_buf[0] = '\0';
            t->should_run_soon_ = false;
            t[1].name_.field_2._M_allocated_capacity = 0;
            *(pointer *)((int)&t[1].name_.field_2 + 8) = local_dc;
            *(Input_group **)((int)&t[1].name_.field_2 + 0xc) = input_group;
            *(undefined4 *)&t[1].should_run_soon_ = 0;
            t[2].list_next_ = pTVar7;
            Workqueue::queue_soon(workqueue,t);
            if (closure.inputs_ == (Input_arguments *)0x0) {
              closure.inputs_ = (Input_arguments *)operator_new(0x14);
              ((closure.inputs_)->input_argument_list_).
              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.
              _M_impl._M_start = (pointer)0x0;
              ((closure.inputs_)->input_argument_list_).
              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.
              _M_impl._M_finish = (pointer)0x0;
              ((closure.inputs_)->input_argument_list_).
              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.
              _M_impl._M_end_of_storage = (pointer)0x0;
              (closure.inputs_)->in_group_ = false;
              (closure.inputs_)->in_lib_ = false;
              (closure.inputs_)->file_count_ = 0;
              pIVar8 = (pointer)0x0;
            }
            else {
              pIVar8 = ((closure.inputs_)->input_argument_list_).
                       super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>
                       ._M_impl._M_finish;
            }
            local_e4 = pTVar7;
            local_dc = pIVar6;
          } while (pIVar6 != pIVar8);
          *used_next_blocker = true;
        }
      }
    }
    else {
      cVar3 = closure.found_incompatible_target_;
      if (closure.found_incompatible_target_ != false) {
        Read_symbols::incompatible_warning(input_argument,input_file);
        Read_symbols::requeue
                  (workqueue,input_objects,symtab,layout,dirsearch,dirindex,mapfile,input_argument,
                   input_group,next_blocker);
        cVar3 = bVar1;
      }
    }
    if (closure.language_stack_.
        super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>
        ._M_impl._M_start != (pointer)0x0) {
      operator_delete(closure.language_stack_.
                      super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>
                      ._M_impl._M_start);
    }
    if (closure.lex_mode_stack_.
        super__Vector_base<gold::Lex::Mode,_std::allocator<gold::Lex::Mode>_>._M_impl._M_start !=
        (pointer)0x0) {
      operator_delete(closure.lex_mode_stack_.
                      super__Vector_base<gold::Lex::Mode,_std::allocator<gold::Lex::Mode>_>._M_impl.
                      _M_start);
    }
    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
         *)input_string._M_dataplus._M_p != &input_string.field_2) {
      operator_delete(input_string._M_dataplus._M_p);
    }
    return (bool)cVar3;
  }
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0016dcc9 to 0016dcec has its CatchHandler @ 0016dced */
  do_gold_unreachable("../../gold/options.h",0x828,"file");
}



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

char FUN_0016d740(undefined4 param_1,int param_2,int param_3,int param_4,undefined4 param_5,
                 int param_6,int param_7,int param_8,char *param_9,int param_10,undefined1 *param_11
                 ,undefined1 *param_12)

{
  char cVar1;
  undefined4 uVar2;
  int *piVar3;
  int iVar4;
  undefined1 *puVar5;
  undefined4 uVar6;
  undefined1 *puVar7;
  undefined1 auStack_100 [4];
  undefined1 auStack_fc [4];
  undefined4 *local_f8;
  char local_f1;
  undefined1 *local_f0;
  undefined **local_ec;
  int local_e8;
  undefined1 *local_e4;
  undefined4 local_e0;
  int local_dc;
  undefined **local_d8;
  undefined1 *local_d4;
  undefined4 local_d0;
  undefined4 local_c0;
  undefined1 *local_bc;
  undefined4 local_b8;
  undefined1 local_b4 [16];
  undefined1 *local_a4;
  undefined4 local_a0;
  undefined1 *local_9c;
  undefined4 local_98;
  undefined4 local_94;
  undefined4 local_90;
  undefined4 local_8c;
  undefined4 local_88;
  undefined4 local_84;
  undefined4 local_80;
  undefined4 local_7c;
  undefined4 local_78;
  undefined1 *local_74;
  undefined4 local_70;
  undefined4 local_6c;
  undefined4 local_68;
  undefined4 local_64;
  undefined4 local_60;
  undefined1 local_5c;
  undefined1 local_5b;
  byte local_5a;
  undefined1 local_59;
  char local_58;
  undefined4 local_54;
  int local_50;
  int local_4c;
  undefined1 **local_48;
  undefined4 local_44;
  undefined4 local_40;
  int local_3c [6];
  int *local_24;
  int *local_20;
  undefined4 uStack_14;
  
  local_f0 = local_b4;
  uStack_14 = 0x16d751;
  local_d8 = &__DT_PLTGOT;
  *param_12 = 0;
  local_b8 = 0;
  local_b4[0] = 0;
  local_bc = local_f0;
                    /* try { // try from 0016d793 to 0016d86d has its CatchHandler @ 0016dced */
  FUN_00168e00(param_10,&local_bc);
  puVar7 = auStack_fc;
  local_98 = 0;
  local_94 = 0x163;
  local_a4 = local_bc;
  local_9c = local_bc;
  local_74 = local_bc;
  local_a0 = local_b8;
  piVar3 = *(int **)(param_3 + 0x1d0);
  local_90 = 0;
  local_8c = 0;
  local_88 = 0;
  local_84 = 0;
  local_80 = 0;
  local_7c = 0;
  local_78 = 1;
  if (piVar3 != (int *)0x0) {
    FUN_00067c30(&local_d4,param_10 + 0x1c);
    local_e4 = local_d4;
    local_e0 = local_d0;
    if (*param_9 == '\0') {
                    /* WARNING: Subroutine does not return */
      FUN_00069d00((int)local_d8 + -0x106ebb,0x828,local_d8 + -0x3d7a0,local_d4);
    }
    local_dc = *(int *)(param_9 + 0x4c);
    piVar3 = (int *)FUN_001e5200(0x20);
    *piVar3 = (int)(piVar3 + 2);
                    /* try { // try from 0016d888 to 0016d88c has its CatchHandler @ 0016dcfb */
    FUN_000513a0(piVar3,*(int *)(param_10 + 0x1c),
                 *(int *)(param_10 + 0x20) + *(int *)(param_10 + 0x1c),0);
    piVar3[6] = 0;
    piVar3[7] = 0;
                    /* try { // try from 0016d8be to 0016d8d6 has its CatchHandler @ 0016dced */
    FUN_00072240(*(undefined4 *)(param_3 + 0x1d0),piVar3,local_dc,local_e4,local_e0);
    puVar7 = auStack_100;
  }
  *(int *)(puVar7 + -0x10) = param_10;
  *(undefined4 *)(puVar7 + -0x14) = 0x16d8d7;
  local_59 = FUN_00067bf0();
  local_dc = CONCAT31(local_dc._1_3_,local_59);
  local_50 = *(int *)(param_3 + 4);
  local_5b = param_8 != 0;
  local_5a = *(byte *)(param_10 + 0x8c);
  local_f1 = *param_9;
  if (local_f1 != '\0') {
    local_4c = local_50 + 0x68;
    local_70 = *(undefined4 *)(param_10 + 0x1c);
    local_5c = 0;
    local_6c = *(undefined4 *)(param_9 + 0x3c);
    local_58 = '\0';
    local_68 = *(undefined4 *)(param_9 + 0x40);
    local_54 = 0;
    local_64 = *(undefined4 *)(param_9 + 0x44);
    local_60 = *(undefined4 *)(param_9 + 0x48);
    local_44 = 0;
    local_40 = 0;
    local_48 = &local_a4;
    local_3c[0] = 0;
    local_3c[1] = 0;
    local_3c[2] = 0;
    local_3c[3] = 0;
    local_3c[4] = 0;
    local_3c[5] = 0;
    local_24 = (int *)0x0;
    local_c0 = 0;
    *(undefined4 **)(puVar7 + -8) = &local_c0;
    *(undefined4 *)(puVar7 + -0xc) = 0;
    *(int **)(puVar7 + -0x10) = local_3c + 3;
                    /* try { // try from 0016d9b7 to 0016d9d3 has its CatchHandler @ 0016dd02 */
    *(undefined4 *)(puVar7 + -0x14) = 0x16d9bc;
    local_20 = piVar3;
    FUN_0016f460();
    *(undefined4 **)(puVar7 + -0xc) = &local_c0;
    local_c0 = local_98;
    *(int **)(puVar7 + -0x10) = local_3c;
    *(undefined4 *)(puVar7 + -0x14) = 0x16d9d4;
    FUN_0016f700();
    cVar1 = *(char *)(*(int *)(param_3 + 4) + 0xac);
    local_f8 = &local_70;
    *(undefined4 **)(puVar7 + -0x10) = local_f8;
                    /* try { // try from 0016d9f3 to 0016dca6 has its CatchHandler @ 0016dcf4 */
    *(undefined4 *)(puVar7 + -0x14) = 0x16d9f8;
    iVar4 = FUN_00191d40();
    if (iVar4 == 0) {
      if (((cVar1 == '\0') && (*(char *)(*(int *)(param_3 + 4) + 0xac) != '\0')) &&
         (*(char *)(param_3 + 0x1c4) != '\0')) {
        uVar2 = *(undefined4 *)(param_10 + 0x1c);
        *(undefined ***)(puVar7 + -0x10) = local_d8 + -0x3d6c8;
        *(undefined4 *)(puVar7 + -0x14) = 0x16dc5d;
        uVar6 = gettext();
        *(undefined4 *)(puVar7 + -0xc) = uVar2;
        *(undefined4 *)(puVar7 + -0x10) = uVar6;
        *(undefined4 *)(puVar7 + -0x14) = 0x16dc66;
        FUN_000654b0();
      }
      cVar1 = local_f1;
      if (local_24 != (int *)0x0) {
        local_e4 = (undefined1 *)0x0;
        iVar4 = local_24[1];
        local_dc = *local_24;
        if (iVar4 != local_dc) {
          local_ec = local_d8 + -0x289c;
          do {
            local_e8 = local_dc + 0x5c;
            puVar5 = param_11;
            if (local_e8 != iVar4) {
              *(undefined4 *)(puVar7 + -0x10) = 0x14;
              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;
              puVar5 = (undefined1 *)FUN_001e5200();
              *puVar5 = 1;
              *(undefined4 *)(puVar5 + 8) = 0;
              *(undefined4 *)(puVar5 + 0xc) = 0;
              *(undefined4 *)(puVar5 + 0x10) = 0;
              *(undefined4 *)(puVar5 + 4) = 1;
            }
            *(undefined4 *)(puVar7 + -0x10) = 0x50;
            *(undefined4 *)(puVar7 + -0x14) = 0x16db2d;
            piVar3 = (int *)FUN_001e5200();
            piVar3[1] = 0;
            piVar3[2] = (int)(piVar3 + 4);
            piVar3[3] = 0;
            *piVar3 = (int)local_ec;
            piVar3[0xc] = param_4;
            piVar3[9] = param_6;
            piVar3[0xe] = param_7;
            piVar3[10] = param_2;
            piVar3[0x12] = (int)local_e4;
            piVar3[0xb] = param_3;
            *(undefined1 *)(piVar3 + 4) = 0;
            *(undefined1 *)(piVar3 + 8) = 0;
            piVar3[0xd] = 0;
            piVar3[0xf] = local_dc;
            piVar3[0x10] = param_8;
            piVar3[0x11] = 0;
            piVar3[0x13] = (int)puVar5;
            *(int **)(puVar7 + -0xc) = piVar3;
            *(undefined4 *)(puVar7 + -0x10) = param_1;
            *(undefined4 *)(puVar7 + -0x14) = 0x16dba5;
            FUN_001906c0();
            if (local_24 == (int *)0x0) {
              *(undefined4 *)(puVar7 + -0x10) = 0x14;
              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;
              local_24 = (int *)FUN_001e5200();
              *local_24 = 0;
              local_24[1] = 0;
              local_24[2] = 0;
              *(undefined2 *)(local_24 + 3) = 0;
              local_24[4] = 0;
              iVar4 = 0;
            }
            else {
              iVar4 = local_24[1];
            }
            local_dc = local_e8;
            local_e4 = puVar5;
          } while (local_e8 != iVar4);
          *param_12 = 1;
          cVar1 = local_f1;
        }
      }
    }
    else {
      cVar1 = local_58;
      if (local_58 != '\0') {
        *(int *)(puVar7 + -0xc) = param_10;
        *(char **)(puVar7 + -0x10) = param_9;
        *(undefined4 *)(puVar7 + -0x14) = 0x16dc84;
        FUN_00142200();
        *(undefined1 **)(puVar7 + -0xc) = param_11;
        *(int *)(puVar7 + -0x10) = param_8;
        *(char **)(puVar7 + -0x14) = param_9;
        *(int *)(puVar7 + -0x18) = param_7;
        *(undefined4 *)(puVar7 + -0x1c) = param_5;
        *(int *)(puVar7 + -0x20) = param_4;
        *(int *)(puVar7 + -0x24) = param_3;
        *(int *)(puVar7 + -0x28) = param_2;
        *(int *)(puVar7 + -0x2c) = param_6;
        *(undefined4 *)(puVar7 + -0x30) = param_1;
        *(undefined4 *)(puVar7 + -0x34) = 0x16dca7;
        FUN_00142290();
        cVar1 = local_f1;
      }
    }
    if (local_3c[3] != 0) {
      *(int *)(puVar7 + -0x10) = local_3c[3];
      *(undefined4 *)(puVar7 + -0x14) = 0x16da23;
      FUN_001e6db0();
    }
    if (local_3c[0] != 0) {
      *(int *)(puVar7 + -0x10) = local_3c[0];
      *(undefined4 *)(puVar7 + -0x14) = 0x16da3c;
      FUN_001e6db0();
    }
    if (local_bc != local_f0) {
      *(undefined1 **)(puVar7 + -0x10) = local_bc;
      *(undefined4 *)(puVar7 + -0x14) = 0x16da5c;
      FUN_001e6db0();
    }
    return cVar1;
  }
  *(uint *)(puVar7 + -4) = (uint)local_5a;
  *(undefined ***)(puVar7 + -8) = local_d8 + -0x3d7a0;
  *(undefined4 *)(puVar7 + -0xc) = 0x828;
  *(int *)(puVar7 + -0x10) = (int)local_d8 + -0x106ebb;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0016dcc9 to 0016dcec has its CatchHandler @ 0016dced */
  *(undefined4 *)(puVar7 + -0x14) = 0x16dcce;
  FUN_00069d00();
}


PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
LEA ECX,[EBP + 0xffffff50]
PUSH EBX
CALL 0x00035840
ADD EBX,0x2218af
SUB ESP,0xf4
MOV EAX,dword ptr [EBP + 0x34]
MOV EDI,dword ptr [EBP + 0x28]
MOV dword ptr [EBP + 0xffffff14],ECX
MOV dword ptr [EBP + 0xffffff48],ECX
MOV byte ptr [EAX],0x0
LEA EAX,[EBP + 0xffffff48]
PUSH EAX
PUSH dword ptr [EBP + 0x2c]
MOV dword ptr [EBP + 0xffffff2c],EBX
MOV dword ptr [EBP + 0xffffff4c],0x0
MOV byte ptr [EBP + 0xffffff50],0x0
CALL 0x00168e00
MOV EAX,dword ptr [EBP + 0xffffff48]
MOV EDX,dword ptr [EBP + 0xffffff4c]
ADD ESP,0x10
MOV dword ptr [EBP + 0xffffff6c],0x0
MOV dword ptr [EBP + 0xffffff70],0x163
MOV dword ptr [EBP + 0xffffff60],EAX
MOV dword ptr [EBP + 0xffffff68],EAX
MOV dword ptr [EBP + -0x70],EAX
MOV EAX,dword ptr [EBP + 0x10]
MOV dword ptr [EBP + 0xffffff64],EDX
MOV ESI,dword ptr [EAX + 0x1d0]
MOV dword ptr [EBP + 0xffffff74],0x0
MOV dword ptr [EBP + 0xffffff78],0x0
MOV dword ptr [EBP + 0xffffff7c],0x0
MOV dword ptr [EBP + -0x80],0x0
MOV dword ptr [EBP + -0x7c],0x0
MOV dword ptr [EBP + -0x78],0x0
MOV dword ptr [EBP + -0x74],0x1
TEST ESI,ESI
JZ 0x0016d8c6
MOV ESI,dword ptr [EBP + 0x2c]
SUB ESP,0x8
LEA EAX,[EBP + 0xffffff30]
LEA EDX,[ESI + 0x1c]
PUSH EDX
PUSH EAX
CALL 0x00067c30
MOV EAX,dword ptr [EBP + 0xffffff30]
MOV EDX,dword ptr [EBP + 0xffffff34]
ADD ESP,0xc
CMP byte ptr [EDI],0x0
MOV dword ptr [EBP + 0xffffff20],EAX
MOV dword ptr [EBP + 0xffffff24],EDX
JZ 0x0016dcce
SUB ESP,0xc
MOV EAX,dword ptr [EDI + 0x4c]
MOV EBX,dword ptr [EBP + 0xffffff2c]
PUSH 0x20
MOV dword ptr [EBP + 0xffffff28],EAX
CALL 0x001e5200
MOV EDX,dword ptr [EBP + 0x2c]
ADD ESP,0x10
MOV ESI,EAX
LEA EAX,[EAX + 0x8]
MOV dword ptr [ESI],EAX
MOV EAX,dword ptr [EDX + 0x1c]
PUSH 0x0
MOV EDX,dword ptr [EDX + 0x20]
ADD EDX,EAX
PUSH EDX
PUSH EAX
PUSH ESI
CALL 0x000513a0
POP EAX
MOV EAX,dword ptr [EBP + 0x10]
MOV dword ptr [ESI + 0x18],0x0
MOV dword ptr [ESI + 0x1c],0x0
MOV EBX,dword ptr [EBP + 0xffffff2c]
PUSH dword ptr [EBP + 0xffffff24]
PUSH dword ptr [EBP + 0xffffff20]
PUSH dword ptr [EBP + 0xffffff28]
PUSH ESI
PUSH dword ptr [EAX + 0x1d0]
CALL 0x00072240
ADD ESP,0x20
SUB ESP,0xc
PUSH dword ptr [EBP + 0x2c]
MOV EBX,dword ptr [EBP + 0xffffff2c]
CALL 0x00067bf0
MOV byte ptr [EBP + 0xffffff28],AL
MOV EAX,dword ptr [EBP + 0x10]
ADD ESP,0x10
MOV EBX,dword ptr [EBP + 0x24]
MOV EDX,dword ptr [EAX + 0x4]
MOV EAX,dword ptr [EBP + 0x2c]
TEST EBX,EBX
MOVZX ECX,byte ptr [EAX + 0x8c]
MOVZX EAX,byte ptr [EDI]
SETNZ BL
MOV byte ptr [EBP + 0xffffff13],AL
TEST AL,AL
JZ 0x0016dcaf
MOV EAX,dword ptr [EBP + 0x2c]
SUB ESP,0x4
MOV byte ptr [EBP + -0x57],BL
LEA EBX,[EBP + 0xffffff44]
MOV dword ptr [EBP + -0x4c],EDX
ADD EDX,0x68
MOV EAX,dword ptr [EAX + 0x1c]
MOV byte ptr [EBP + -0x58],0x0
MOV byte ptr [EBP + -0x56],CL
MOV dword ptr [EBP + -0x6c],EAX
MOV EAX,dword ptr [EDI + 0x3c]
MOV byte ptr [EBP + -0x54],0x0
MOV dword ptr [EBP + -0x68],EAX
MOV EAX,dword ptr [EDI + 0x40]
MOV dword ptr [EBP + -0x50],0x0
MOV dword ptr [EBP + -0x64],EAX
MOV EAX,dword ptr [EDI + 0x44]
MOV dword ptr [EBP + -0x48],EDX
MOV dword ptr [EBP + -0x60],EAX
MOV EAX,dword ptr [EDI + 0x48]
MOV dword ptr [EBP + -0x40],0x0
MOV dword ptr [EBP + -0x5c],EAX
MOVZX EAX,byte ptr [EBP + 0xffffff28]
MOV dword ptr [EBP + -0x3c],0x0
MOV byte ptr [EBP + -0x55],AL
LEA EAX,[EBP + 0xffffff60]
MOV dword ptr [EBP + -0x44],EAX
LEA EAX,[EBP + -0x2c]
MOV dword ptr [EBP + -0x38],0x0
MOV dword ptr [EBP + -0x34],0x0
MOV dword ptr [EBP + -0x30],0x0
MOV dword ptr [EBP + -0x2c],0x0
MOV dword ptr [EBP + -0x28],0x0
MOV dword ptr [EBP + -0x24],0x0
MOV dword ptr [EBP + -0x20],0x0
MOV dword ptr [EBP + -0x1c],ESI
MOV dword ptr [EBP + 0xffffff44],0x0
PUSH EBX
PUSH 0x0
PUSH EAX
CALL 0x0016f460
POP EAX
MOV EAX,dword ptr [EBP + 0xffffff6c]
POP EDX
PUSH EBX
MOV dword ptr [EBP + 0xffffff44],EAX
LEA EAX,[EBP + -0x38]
PUSH EAX
CALL 0x0016f700
MOV EAX,dword ptr [EBP + 0x10]
MOV EBX,dword ptr [EBP + 0xffffff2c]
MOV EAX,dword ptr [EAX + 0x4]
MOVZX ESI,byte ptr [EAX + 0xac]
LEA EAX,[EBP + -0x6c]
MOV dword ptr [EBP + 0xffffff0c],EAX
MOV dword ptr [ESP],EAX
CALL 0x00191d40
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0016da70
MOVZX ESI,byte ptr [EBP + -0x54]
MOV EAX,ESI
TEST AL,AL
JNZ 0x0016dc70
MOV EAX,dword ptr [EBP + -0x2c]
TEST EAX,EAX
JZ 0x0016da26
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff2c]
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
MOV EAX,dword ptr [EBP + -0x38]
TEST EAX,EAX
JZ 0x0016da3f
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff2c]
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
MOV EAX,dword ptr [EBP + 0xffffff48]
CMP EAX,dword ptr [EBP + 0xffffff14]
JZ 0x0016da5f
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff2c]
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
LEA ESP,[EBP + -0xc]
MOV EAX,ESI
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,ESI
TEST AL,AL
JNZ 0x0016da89
MOV EAX,dword ptr [EBP + 0x10]
MOV EAX,dword ptr [EAX + 0x4]
CMP byte ptr [EAX + 0xac],0x0
JNZ 0x0016dc30
MOV EAX,dword ptr [EBP + -0x20]
TEST EAX,EAX
JZ 0x0016dbd2
MOV dword ptr [EBP + 0xffffff20],0x0
MOV EDI,dword ptr [EAX + 0x4]
MOV EAX,dword ptr [EAX]
MOV dword ptr [EBP + 0xffffff28],EAX
CMP EDI,EAX
JZ 0x0016dbd2
MOV EAX,dword ptr [EBP + 0xffffff2c]
LEA EAX,[EAX + 0xffff5d88]
ADD EAX,0x8
MOV dword ptr [EBP + 0xffffff18],EAX
LEA ESI,[ESI]
LEA ESI,[ESI]
MOV EAX,dword ptr [EBP + 0xffffff28]
ADD EAX,0x5c
MOV dword ptr [EBP + 0xffffff1c],EAX
CMP EAX,EDI
JZ 0x0016dbe0
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff2c]
PUSH 0x14
CALL 0x001e5200
MOV byte ptr [EAX],0x1
MOV ESI,EAX
ADD ESP,0x10
MOV dword ptr [EAX + 0x8],0x0
MOV dword ptr [EAX + 0xc],0x0
MOV dword ptr [EAX + 0x10],0x0
MOV dword ptr [EAX + 0x4],0x1
SUB ESP,0xc
MOV EDI,dword ptr [EBP + 0xffffff2c]
PUSH 0x50
MOV EBX,EDI
CALL 0x001e5200
POP EDX
POP ECX
LEA EDX,[EAX + 0x10]
MOV dword ptr [EAX + 0x4],0x0
MOV ECX,dword ptr [EBP + 0xffffff18]
MOV EBX,dword ptr [EBP + 0x20]
MOV dword ptr [EAX + 0x8],EDX
MOV EDX,dword ptr [EBP + 0x14]
MOV dword ptr [EAX + 0xc],0x0
MOV dword ptr [EAX],ECX
MOV ECX,dword ptr [EBP + 0x1c]
MOV dword ptr [EAX + 0x30],EDX
MOV EDX,dword ptr [EBP + 0x24]
MOV dword ptr [EAX + 0x24],ECX
MOV ECX,dword ptr [EBP + 0xc]
MOV dword ptr [EAX + 0x38],EBX
MOV EBX,dword ptr [EBP + 0xffffff20]
MOV dword ptr [EAX + 0x28],ECX
MOV ECX,dword ptr [EBP + 0x10]
MOV dword ptr [EAX + 0x48],EBX
MOV EBX,EDI
MOV dword ptr [EAX + 0x2c],ECX
MOV ECX,dword ptr [EBP + 0xffffff28]
MOV byte ptr [EAX + 0x10],0x0
MOV byte ptr [EAX + 0x20],0x0
MOV dword ptr [EAX + 0x34],0x0
MOV dword ptr [EAX + 0x3c],ECX
MOV dword ptr [EAX + 0x40],EDX
MOV dword ptr [EAX + 0x44],0x0
MOV dword ptr [EAX + 0x4c],ESI
PUSH EAX
PUSH dword ptr [EBP + 0x8]
CALL 0x001906c0
MOV EDI,dword ptr [EBP + -0x20]
ADD ESP,0x10
TEST EDI,EDI
JZ 0x0016dbf0
MOV EDI,dword ptr [EDI + 0x4]
MOV EAX,dword ptr [EBP + 0xffffff1c]
MOV dword ptr [EBP + 0xffffff20],ESI
MOV dword ptr [EBP + 0xffffff28],EAX
CMP EAX,EDI
JNZ 0x0016dad0
MOV EAX,dword ptr [EBP + 0x34]
MOV byte ptr [EAX],0x1
MOVZX ESI,byte ptr [EBP + 0xffffff13]
JMP 0x0016da0d
MOV ESI,dword ptr [EBP + 0x30]
JMP 0x0016db1b
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff2c]
PUSH 0x14
CALL 0x001e5200
XOR EBX,EBX
ADD ESP,0x10
MOV dword ptr [EAX],0x0
MOV dword ptr [EAX + 0x4],0x0
MOV dword ptr [EAX + 0x8],0x0
MOV word ptr [EAX + 0xc],BX
MOV dword ptr [EAX + 0x10],0x0
MOV dword ptr [EBP + -0x20],EAX
JMP 0x0016dbb2
MOV EAX,dword ptr [EBP + 0x10]
CMP byte ptr [EAX + 0x1c4],0x0
JZ 0x0016da89
MOV EDI,dword ptr [EBP + 0xffffff2c]
MOV EAX,dword ptr [EBP + 0x2c]
SUB ESP,0xc
MOV ESI,dword ptr [EAX + 0x1c]
LEA EAX,[EDI + 0xfff0a4e0]
MOV EBX,EDI
PUSH EAX
CALL 0x000293b0
POP EDI
POP EDX
PUSH ESI
PUSH EAX
CALL 0x000654b0
ADD ESP,0x10
JMP 0x0016da89
SUB ESP,0x8
MOV ESI,dword ptr [EBP + 0xffffff2c]
PUSH dword ptr [EBP + 0x2c]
PUSH EDI
MOV EBX,ESI
CALL 0x00142200
POP ECX
POP ESI
PUSH dword ptr [EBP + 0x30]
PUSH dword ptr [EBP + 0x24]
PUSH EDI
PUSH dword ptr [EBP + 0x20]
PUSH dword ptr [EBP + 0x18]
PUSH dword ptr [EBP + 0x14]
PUSH dword ptr [EBP + 0x10]
PUSH dword ptr [EBP + 0xc]
PUSH dword ptr [EBP + 0x1c]
PUSH dword ptr [EBP + 0x8]
CALL 0x00142290
ADD ESP,0x30
JMP 0x0016dbd2
MOV EBX,dword ptr [EBP + 0xffffff2c]
PUSH ECX
LEA EAX,[EBX + 0xfff0a180]
PUSH EAX
LEA EAX,[EBX + 0xffef9145]
PUSH 0x828
PUSH EAX
CALL 0x00069d00
MOV EBX,dword ptr [EBP + 0xffffff2c]
PUSH EAX
LEA EAX,[EBX + 0xfff0a180]
PUSH EAX
LEA EAX,[EBX + 0xffef9145]
PUSH 0x828
PUSH EAX
CALL 0x00069d00
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nchar FUN_0016d740(undefined4 param_1,int param_2,int param_3,int param_4,undefined4 param_5,\n                 int param_6,int param_7,int param_8,char *param_9,int param_10,undefined1 *param_11\n                 ,undefined1 *param_12)\n\n{\n  char cVar1;\n  undefined4 uVar2;\n  int *piVar3;\n  int iVar4;\n  undefined1 *puVar5;\n  undefined4 uVar6;\n  undefined1 *puVar7;\n  undefined1 auStack_100 [4];\n  undefined1 auStack_fc [4];\n  undefined4 *local_f8;\n  char local_f1;\n  undefined1 *local_f0;\n  undefined **local_ec;\n  int local_e8;\n  undefined1 *local_e4;\n  undefined4 local_e0;\n  int local_dc;\n  undefined **local_d8;\n  undefined1 *local_d4;\n  undefined4 local_d0;\n  undefined4 local_c0;\n  undefined1 *local_bc;\n  undefined4 local_b8;\n  undefined1 local_b4 [16];\n  undefined1 *local_a4;\n  undefined4 local_a0;\n  undefined1 *local_9c;\n  undefined4 local_98;\n  undefined4 local_94;\n  undefined4 local_90;\n  undefined4 local_8c;\n  undefined4 local_88;\n  undefined4 local_84;\n  undefined4 local_80;\n  undefined4 local_7c;\n  undefined4 local_78;\n  undefined1 *local_74;\n  undefined4 local_70;\n  undefined4 local_6c;\n  undefined4 local_68;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined1 local_5c;\n  undefined1 local_5b;\n  byte local_5a;\n  undefined1 local_59;\n  char local_58;\n  undefined4 local_54;\n  int local_50;\n  int local_4c;\n  undefined1 **local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  int local_3c [6];\n  int *local_24;\n  int *local_20;\n  undefined4 uStack_14;\n  \n  local_f0 = local_b4;\n  uStack_14 = 0x16d751;\n  local_d8 = &__DT_PLTGOT;\n  *param_12 = 0;\n  local_b8 = 0;\n  local_b4[0] = 0;\n  local_bc = local_f0;\n                    /* try { // try from 0016d793 to 0016d86d has its CatchHandler @ 0016dced */\n  FUN_00168e00(param_10,&local_bc);\n  puVar7 = auStack_fc;\n  local_98 = 0;\n  local_94 = 0x163;\n  local_a4 = local_bc;\n  local_9c = local_bc;\n  local_74 = local_bc;\n  local_a0 = local_b8;\n  piVar3 = *(int **)(param_3 + 0x1d0);\n  local_90 = 0;\n  local_8c = 0;\n  local_88 = 0;\n  local_84 = 0;\n  local_80 = 0;\n  local_7c = 0;\n  local_78 = 1;\n  if (piVar3 != (int *)0x0) {\n    FUN_00067c30(&local_d4,param_10 + 0x1c);\n    local_e4 = local_d4;\n    local_e0 = local_d0;\n    if (*param_9 == '\0') {\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00((int)local_d8 + -0x106ebb,0x828,local_d8 + -0x3d7a0,local_d4);\n    }\n    local_dc = *(int *)(param_9 + 0x4c);\n    piVar3 = (int *)FUN_001e5200(0x20);\n    *piVar3 = (int)(piVar3 + 2);\n                    /* try { // try from 0016d888 to 0016d88c has its CatchHandler @ 0016dcfb */\n    FUN_000513a0(piVar3,*(int *)(param_10 + 0x1c),\n                 *(int *)(param_10 + 0x20) + *(int *)(param_10 + 0x1c),0);\n    piVar3[6] = 0;\n    piVar3[7] = 0;\n                    /* try { // try from 0016d8be to 0016d8d6 has its CatchHandler @ 0016dced */\n    FUN_00072240(*(undefined4 *)(param_3 + 0x1d0),piVar3,local_dc,local_e4,local_e0);\n    puVar7 = auStack_100;\n  }\n  *(int *)(puVar7 + -0x10) = param_10;\n  *(undefined4 *)(puVar7 + -0x14) = 0x16d8d7;\n  local_59 = FUN_00067bf0();\n  local_dc = CONCAT31(local_dc._1_3_,local_59);\n  local_50 = *(int *)(param_3 + 4);\n  local_5b = param_8 != 0;\n  local_5a = *(byte *)(param_10 + 0x8c);\n  local_f1 = *param_9;\n  if (local_f1 != '\0') {\n    local_4c = local_50 + 0x68;\n    local_70 = *(undefined4 *)(param_10 + 0x1c);\n    local_5c = 0;\n    local_6c = *(undefined4 *)(param_9 + 0x3c);\n    local_58 = '\0';\n    local_68 = *(undefined4 *)(param_9 + 0x40);\n    local_54 = 0;\n    local_64 = *(undefined4 *)(param_9 + 0x44);\n    local_60 = *(undefined4 *)(param_9 + 0x48);\n    local_44 = 0;\n    local_40 = 0;\n    local_48 = &local_a4;\n    local_3c[0] = 0;\n    local_3c[1] = 0;\n    local_3c[2] = 0;\n    local_3c[3] = 0;\n    local_3c[4] = 0;\n    local_3c[5] = 0;\n    local_24 = (int *)0x0;\n    local_c0 = 0;\n    *(undefined4 **)(puVar7 + -8) = &local_c0;\n    *(undefined4 *)(puVar7 + -0xc) = 0;\n    *(int **)(puVar7 + -0x10) = local_3c + 3;\n                    /* try { // try from 0016d9b7 to 0016d9d3 has its CatchHandler @ 0016dd02 */\n    *(undefined4 *)(puVar7 + -0x14) = 0x16d9bc;\n    local_20 = piVar3;\n    FUN_0016f460();\n    *(undefined4 **)(puVar7 + -0xc) = &local_c0;\n    local_c0 = local_98;\n    *(int **)(puVar7 + -0x10) = local_3c;\n    *(undefined4 *)(puVar7 + -0x14) = 0x16d9d4;\n    FUN_0016f700();\n    cVar1 = *(char *)(*(int *)(param_3 + 4) + 0xac);\n    local_f8 = &local_70;\n    *(undefined4 **)(puVar7 + -0x10) = local_f8;\n                    /* try { // try from 0016d9f3 to 0016dca6 has its CatchHandler @ 0016dcf4 */\n    *(undefined4 *)(puVar7 + -0x14) = 0x16d9f8;\n    iVar4 = FUN_00191d40();\n    if (iVar4 == 0) {\n      if (((cVar1 == '\0') && (*(char *)(*(int *)(param_3 + 4) + 0xac) != '\0')) &&\n         (*(char *)(param_3 + 0x1c4) != '\0')) {\n        uVar2 = *(undefined4 *)(param_10 + 0x1c);\n        *(undefined ***)(puVar7 + -0x10) = local_d8 + -0x3d6c8;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc5d;\n        uVar6 = gettext();\n        *(undefined4 *)(puVar7 + -0xc) = uVar2;\n        *(undefined4 *)(puVar7 + -0x10) = uVar6;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc66;\n        FUN_000654b0();\n      }\n      cVar1 = local_f1;\n      if (local_24 != (int *)0x0) {\n        local_e4 = (undefined1 *)0x0;\n        iVar4 = local_24[1];\n        local_dc = *local_24;\n        if (iVar4 != local_dc) {\n          local_ec = local_d8 + -0x289c;\n          do {\n            local_e8 = local_dc + 0x5c;\n            puVar5 = param_11;\n            if (local_e8 != iVar4) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;\n              puVar5 = (undefined1 *)FUN_001e5200();\n              *puVar5 = 1;\n              *(undefined4 *)(puVar5 + 8) = 0;\n              *(undefined4 *)(puVar5 + 0xc) = 0;\n              *(undefined4 *)(puVar5 + 0x10) = 0;\n              *(undefined4 *)(puVar5 + 4) = 1;\n            }\n            *(undefined4 *)(puVar7 + -0x10) = 0x50;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16db2d;\n            piVar3 = (int *)FUN_001e5200();\n            piVar3[1] = 0;\n            piVar3[2] = (int)(piVar3 + 4);\n            piVar3[3] = 0;\n            *piVar3 = (int)local_ec;\n            piVar3[0xc] = param_4;\n            piVar3[9] = param_6;\n            piVar3[0xe] = param_7;\n            piVar3[10] = param_2;\n            piVar3[0x12] = (int)local_e4;\n            piVar3[0xb] = param_3;\n            *(undefined1 *)(piVar3 + 4) = 0;\n            *(undefined1 *)(piVar3 + 8) = 0;\n            piVar3[0xd] = 0;\n            piVar3[0xf] = local_dc;\n            piVar3[0x10] = param_8;\n            piVar3[0x11] = 0;\n            piVar3[0x13] = (int)puVar5;\n            *(int **)(puVar7 + -0xc) = piVar3;\n            *(undefined4 *)(puVar7 + -0x10) = param_1;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16dba5;\n            FUN_001906c0();\n            if (local_24 == (int *)0x0) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;\n              local_24 = (int *)FUN_001e5200();\n              *local_24 = 0;\n              local_24[1] = 0;\n              local_24[2] = 0;\n              *(undefined2 *)(local_24 + 3) = 0;\n              local_24[4] = 0;\n              iVar4 = 0;\n            }\n            else {\n              iVar4 = local_24[1];\n            }\n            local_dc = local_e8;\n            local_e4 = puVar5;\n          } while (local_e8 != iVar4);\n          *param_12 = 1;\n          cVar1 = local_f1;\n        }\n      }\n    }\n    else {\n      cVar1 = local_58;\n      if (local_58 != '\0') {\n        *(int *)(puVar7 + -0xc) = param_10;\n        *(char **)(puVar7 + -0x10) = param_9;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc84;\n        FUN_00142200();\n        *(undefined1 **)(puVar7 + -0xc) = param_11;\n        *(int *)(puVar7 + -0x10) = param_8;\n        *(char **)(puVar7 + -0x14) = param_9;\n        *(int *)(puVar7 + -0x18) = param_7;\n        *(undefined4 *)(puVar7 + -0x1c) = param_5;\n        *(int *)(puVar7 + -0x20) = param_4;\n        *(int *)(puVar7 + -0x24) = param_3;\n        *(int *)(puVar7 + -0x28) = param_2;\n        *(int *)(puVar7 + -0x2c) = param_6;\n        *(undefined4 *)(puVar7 + -0x30) = param_1;\n        *(undefined4 *)(puVar7 + -0x34) = 0x16dca7;\n        FUN_00142290();\n        cVar1 = local_f1;\n      }\n    }\n    if (local_3c[3] != 0) {\n      *(int *)(puVar7 + -0x10) = local_3c[3];\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da23;\n      FUN_001e6db0();\n    }\n    if (local_3c[0] != 0) {\n      *(int *)(puVar7 + -0x10) = local_3c[0];\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da3c;\n      FUN_001e6db0();\n    }\n    if (local_bc != local_f0) {\n      *(undefined1 **)(puVar7 + -0x10) = local_bc;\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da5c;\n      FUN_001e6db0();\n    }\n    return cVar1;\n  }\n  *(uint *)(puVar7 + -4) = (uint)local_5a;\n  *(undefined ***)(puVar7 + -8) = local_d8 + -0x3d7a0;\n  *(undefined4 *)(puVar7 + -0xc) = 0x828;\n  *(int *)(puVar7 + -0x10) = (int)local_d8 + -0x106ebb;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016dcc9 to 0016dcec has its CatchHandler @ 0016dced */\n  *(undefined4 *)(puVar7 + -0x14) = 0x16dcce;\n  FUN_00069d00();\n}\n\n" comment (function_definition "char FUN_0016d740(undefined4 param_1,int param_2,int param_3,int param_4,undefined4 param_5,\n                 int param_6,int param_7,int param_8,char *param_9,int param_10,undefined1 *param_11\n                 ,undefined1 *param_12)\n\n{\n  char cVar1;\n  undefined4 uVar2;\n  int *piVar3;\n  int iVar4;\n  undefined1 *puVar5;\n  undefined4 uVar6;\n  undefined1 *puVar7;\n  undefined1 auStack_100 [4];\n  undefined1 auStack_fc [4];\n  undefined4 *local_f8;\n  char local_f1;\n  undefined1 *local_f0;\n  undefined **local_ec;\n  int local_e8;\n  undefined1 *local_e4;\n  undefined4 local_e0;\n  int local_dc;\n  undefined **local_d8;\n  undefined1 *local_d4;\n  undefined4 local_d0;\n  undefined4 local_c0;\n  undefined1 *local_bc;\n  undefined4 local_b8;\n  undefined1 local_b4 [16];\n  undefined1 *local_a4;\n  undefined4 local_a0;\n  undefined1 *local_9c;\n  undefined4 local_98;\n  undefined4 local_94;\n  undefined4 local_90;\n  undefined4 local_8c;\n  undefined4 local_88;\n  undefined4 local_84;\n  undefined4 local_80;\n  undefined4 local_7c;\n  undefined4 local_78;\n  undefined1 *local_74;\n  undefined4 local_70;\n  undefined4 local_6c;\n  undefined4 local_68;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined1 local_5c;\n  undefined1 local_5b;\n  byte local_5a;\n  undefined1 local_59;\n  char local_58;\n  undefined4 local_54;\n  int local_50;\n  int local_4c;\n  undefined1 **local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  int local_3c [6];\n  int *local_24;\n  int *local_20;\n  undefined4 uStack_14;\n  \n  local_f0 = local_b4;\n  uStack_14 = 0x16d751;\n  local_d8 = &__DT_PLTGOT;\n  *param_12 = 0;\n  local_b8 = 0;\n  local_b4[0] = 0;\n  local_bc = local_f0;\n                    /* try { // try from 0016d793 to 0016d86d has its CatchHandler @ 0016dced */\n  FUN_00168e00(param_10,&local_bc);\n  puVar7 = auStack_fc;\n  local_98 = 0;\n  local_94 = 0x163;\n  local_a4 = local_bc;\n  local_9c = local_bc;\n  local_74 = local_bc;\n  local_a0 = local_b8;\n  piVar3 = *(int **)(param_3 + 0x1d0);\n  local_90 = 0;\n  local_8c = 0;\n  local_88 = 0;\n  local_84 = 0;\n  local_80 = 0;\n  local_7c = 0;\n  local_78 = 1;\n  if (piVar3 != (int *)0x0) {\n    FUN_00067c30(&local_d4,param_10 + 0x1c);\n    local_e4 = local_d4;\n    local_e0 = local_d0;\n    if (*param_9 == '\0') {\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00((int)local_d8 + -0x106ebb,0x828,local_d8 + -0x3d7a0,local_d4);\n    }\n    local_dc = *(int *)(param_9 + 0x4c);\n    piVar3 = (int *)FUN_001e5200(0x20);\n    *piVar3 = (int)(piVar3 + 2);\n                    /* try { // try from 0016d888 to 0016d88c has its CatchHandler @ 0016dcfb */\n    FUN_000513a0(piVar3,*(int *)(param_10 + 0x1c),\n                 *(int *)(param_10 + 0x20) + *(int *)(param_10 + 0x1c),0);\n    piVar3[6] = 0;\n    piVar3[7] = 0;\n                    /* try { // try from 0016d8be to 0016d8d6 has its CatchHandler @ 0016dced */\n    FUN_00072240(*(undefined4 *)(param_3 + 0x1d0),piVar3,local_dc,local_e4,local_e0);\n    puVar7 = auStack_100;\n  }\n  *(int *)(puVar7 + -0x10) = param_10;\n  *(undefined4 *)(puVar7 + -0x14) = 0x16d8d7;\n  local_59 = FUN_00067bf0();\n  local_dc = CONCAT31(local_dc._1_3_,local_59);\n  local_50 = *(int *)(param_3 + 4);\n  local_5b = param_8 != 0;\n  local_5a = *(byte *)(param_10 + 0x8c);\n  local_f1 = *param_9;\n  if (local_f1 != '\0') {\n    local_4c = local_50 + 0x68;\n    local_70 = *(undefined4 *)(param_10 + 0x1c);\n    local_5c = 0;\n    local_6c = *(undefined4 *)(param_9 + 0x3c);\n    local_58 = '\0';\n    local_68 = *(undefined4 *)(param_9 + 0x40);\n    local_54 = 0;\n    local_64 = *(undefined4 *)(param_9 + 0x44);\n    local_60 = *(undefined4 *)(param_9 + 0x48);\n    local_44 = 0;\n    local_40 = 0;\n    local_48 = &local_a4;\n    local_3c[0] = 0;\n    local_3c[1] = 0;\n    local_3c[2] = 0;\n    local_3c[3] = 0;\n    local_3c[4] = 0;\n    local_3c[5] = 0;\n    local_24 = (int *)0x0;\n    local_c0 = 0;\n    *(undefined4 **)(puVar7 + -8) = &local_c0;\n    *(undefined4 *)(puVar7 + -0xc) = 0;\n    *(int **)(puVar7 + -0x10) = local_3c + 3;\n                    /* try { // try from 0016d9b7 to 0016d9d3 has its CatchHandler @ 0016dd02 */\n    *(undefined4 *)(puVar7 + -0x14) = 0x16d9bc;\n    local_20 = piVar3;\n    FUN_0016f460();\n    *(undefined4 **)(puVar7 + -0xc) = &local_c0;\n    local_c0 = local_98;\n    *(int **)(puVar7 + -0x10) = local_3c;\n    *(undefined4 *)(puVar7 + -0x14) = 0x16d9d4;\n    FUN_0016f700();\n    cVar1 = *(char *)(*(int *)(param_3 + 4) + 0xac);\n    local_f8 = &local_70;\n    *(undefined4 **)(puVar7 + -0x10) = local_f8;\n                    /* try { // try from 0016d9f3 to 0016dca6 has its CatchHandler @ 0016dcf4 */\n    *(undefined4 *)(puVar7 + -0x14) = 0x16d9f8;\n    iVar4 = FUN_00191d40();\n    if (iVar4 == 0) {\n      if (((cVar1 == '\0') && (*(char *)(*(int *)(param_3 + 4) + 0xac) != '\0')) &&\n         (*(char *)(param_3 + 0x1c4) != '\0')) {\n        uVar2 = *(undefined4 *)(param_10 + 0x1c);\n        *(undefined ***)(puVar7 + -0x10) = local_d8 + -0x3d6c8;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc5d;\n        uVar6 = gettext();\n        *(undefined4 *)(puVar7 + -0xc) = uVar2;\n        *(undefined4 *)(puVar7 + -0x10) = uVar6;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc66;\n        FUN_000654b0();\n      }\n      cVar1 = local_f1;\n      if (local_24 != (int *)0x0) {\n        local_e4 = (undefined1 *)0x0;\n        iVar4 = local_24[1];\n        local_dc = *local_24;\n        if (iVar4 != local_dc) {\n          local_ec = local_d8 + -0x289c;\n          do {\n            local_e8 = local_dc + 0x5c;\n            puVar5 = param_11;\n            if (local_e8 != iVar4) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;\n              puVar5 = (undefined1 *)FUN_001e5200();\n              *puVar5 = 1;\n              *(undefined4 *)(puVar5 + 8) = 0;\n              *(undefined4 *)(puVar5 + 0xc) = 0;\n              *(undefined4 *)(puVar5 + 0x10) = 0;\n              *(undefined4 *)(puVar5 + 4) = 1;\n            }\n            *(undefined4 *)(puVar7 + -0x10) = 0x50;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16db2d;\n            piVar3 = (int *)FUN_001e5200();\n            piVar3[1] = 0;\n            piVar3[2] = (int)(piVar3 + 4);\n            piVar3[3] = 0;\n            *piVar3 = (int)local_ec;\n            piVar3[0xc] = param_4;\n            piVar3[9] = param_6;\n            piVar3[0xe] = param_7;\n            piVar3[10] = param_2;\n            piVar3[0x12] = (int)local_e4;\n            piVar3[0xb] = param_3;\n            *(undefined1 *)(piVar3 + 4) = 0;\n            *(undefined1 *)(piVar3 + 8) = 0;\n            piVar3[0xd] = 0;\n            piVar3[0xf] = local_dc;\n            piVar3[0x10] = param_8;\n            piVar3[0x11] = 0;\n            piVar3[0x13] = (int)puVar5;\n            *(int **)(puVar7 + -0xc) = piVar3;\n            *(undefined4 *)(puVar7 + -0x10) = param_1;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16dba5;\n            FUN_001906c0();\n            if (local_24 == (int *)0x0) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;\n              local_24 = (int *)FUN_001e5200();\n              *local_24 = 0;\n              local_24[1] = 0;\n              local_24[2] = 0;\n              *(undefined2 *)(local_24 + 3) = 0;\n              local_24[4] = 0;\n              iVar4 = 0;\n            }\n            else {\n              iVar4 = local_24[1];\n            }\n            local_dc = local_e8;\n            local_e4 = puVar5;\n          } while (local_e8 != iVar4);\n          *param_12 = 1;\n          cVar1 = local_f1;\n        }\n      }\n    }\n    else {\n      cVar1 = local_58;\n      if (local_58 != '\0') {\n        *(int *)(puVar7 + -0xc) = param_10;\n        *(char **)(puVar7 + -0x10) = param_9;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc84;\n        FUN_00142200();\n        *(undefined1 **)(puVar7 + -0xc) = param_11;\n        *(int *)(puVar7 + -0x10) = param_8;\n        *(char **)(puVar7 + -0x14) = param_9;\n        *(int *)(puVar7 + -0x18) = param_7;\n        *(undefined4 *)(puVar7 + -0x1c) = param_5;\n        *(int *)(puVar7 + -0x20) = param_4;\n        *(int *)(puVar7 + -0x24) = param_3;\n        *(int *)(puVar7 + -0x28) = param_2;\n        *(int *)(puVar7 + -0x2c) = param_6;\n        *(undefined4 *)(puVar7 + -0x30) = param_1;\n        *(undefined4 *)(puVar7 + -0x34) = 0x16dca7;\n        FUN_00142290();\n        cVar1 = local_f1;\n      }\n    }\n    if (local_3c[3] != 0) {\n      *(int *)(puVar7 + -0x10) = local_3c[3];\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da23;\n      FUN_001e6db0();\n    }\n    if (local_3c[0] != 0) {\n      *(int *)(puVar7 + -0x10) = local_3c[0];\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da3c;\n      FUN_001e6db0();\n    }\n    if (local_bc != local_f0) {\n      *(undefined1 **)(puVar7 + -0x10) = local_bc;\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da5c;\n      FUN_001e6db0();\n    }\n    return cVar1;\n  }\n  *(uint *)(puVar7 + -4) = (uint)local_5a;\n  *(undefined ***)(puVar7 + -8) = local_d8 + -0x3d7a0;\n  *(undefined4 *)(puVar7 + -0xc) = 0x828;\n  *(int *)(puVar7 + -0x10) = (int)local_d8 + -0x106ebb;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016dcc9 to 0016dcec has its CatchHandler @ 0016dced */\n  *(undefined4 *)(puVar7 + -0x14) = 0x16dcce;\n  FUN_00069d00();\n}" primitive_type (function_declarator "FUN_0016d740(undefined4 param_1,int param_2,int param_3,int param_4,undefined4 param_5,\n                 int param_6,int param_7,int param_8,char *param_9,int param_10,undefined1 *param_11\n                 ,undefined1 *param_12)" identifier (parameter_list "(undefined4 param_1,int param_2,int param_3,int param_4,undefined4 param_5,\n                 int param_6,int param_7,int param_8,char *param_9,int param_10,undefined1 *param_11\n                 ,undefined1 *param_12)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "int param_7" primitive_type identifier) , (parameter_declaration "int param_8" primitive_type identifier) , (parameter_declaration "char *param_9" primitive_type (pointer_declarator "*param_9" * identifier)) , (parameter_declaration "int param_10" primitive_type identifier) , (parameter_declaration "undefined1 *param_11" type_identifier (pointer_declarator "*param_11" * identifier)) , (parameter_declaration "undefined1 *param_12" type_identifier (pointer_declarator "*param_12" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  undefined4 uVar2;\n  int *piVar3;\n  int iVar4;\n  undefined1 *puVar5;\n  undefined4 uVar6;\n  undefined1 *puVar7;\n  undefined1 auStack_100 [4];\n  undefined1 auStack_fc [4];\n  undefined4 *local_f8;\n  char local_f1;\n  undefined1 *local_f0;\n  undefined **local_ec;\n  int local_e8;\n  undefined1 *local_e4;\n  undefined4 local_e0;\n  int local_dc;\n  undefined **local_d8;\n  undefined1 *local_d4;\n  undefined4 local_d0;\n  undefined4 local_c0;\n  undefined1 *local_bc;\n  undefined4 local_b8;\n  undefined1 local_b4 [16];\n  undefined1 *local_a4;\n  undefined4 local_a0;\n  undefined1 *local_9c;\n  undefined4 local_98;\n  undefined4 local_94;\n  undefined4 local_90;\n  undefined4 local_8c;\n  undefined4 local_88;\n  undefined4 local_84;\n  undefined4 local_80;\n  undefined4 local_7c;\n  undefined4 local_78;\n  undefined1 *local_74;\n  undefined4 local_70;\n  undefined4 local_6c;\n  undefined4 local_68;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined1 local_5c;\n  undefined1 local_5b;\n  byte local_5a;\n  undefined1 local_59;\n  char local_58;\n  undefined4 local_54;\n  int local_50;\n  int local_4c;\n  undefined1 **local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  int local_3c [6];\n  int *local_24;\n  int *local_20;\n  undefined4 uStack_14;\n  \n  local_f0 = local_b4;\n  uStack_14 = 0x16d751;\n  local_d8 = &__DT_PLTGOT;\n  *param_12 = 0;\n  local_b8 = 0;\n  local_b4[0] = 0;\n  local_bc = local_f0;\n                    /* try { // try from 0016d793 to 0016d86d has its CatchHandler @ 0016dced */\n  FUN_00168e00(param_10,&local_bc);\n  puVar7 = auStack_fc;\n  local_98 = 0;\n  local_94 = 0x163;\n  local_a4 = local_bc;\n  local_9c = local_bc;\n  local_74 = local_bc;\n  local_a0 = local_b8;\n  piVar3 = *(int **)(param_3 + 0x1d0);\n  local_90 = 0;\n  local_8c = 0;\n  local_88 = 0;\n  local_84 = 0;\n  local_80 = 0;\n  local_7c = 0;\n  local_78 = 1;\n  if (piVar3 != (int *)0x0) {\n    FUN_00067c30(&local_d4,param_10 + 0x1c);\n    local_e4 = local_d4;\n    local_e0 = local_d0;\n    if (*param_9 == '\0') {\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00((int)local_d8 + -0x106ebb,0x828,local_d8 + -0x3d7a0,local_d4);\n    }\n    local_dc = *(int *)(param_9 + 0x4c);\n    piVar3 = (int *)FUN_001e5200(0x20);\n    *piVar3 = (int)(piVar3 + 2);\n                    /* try { // try from 0016d888 to 0016d88c has its CatchHandler @ 0016dcfb */\n    FUN_000513a0(piVar3,*(int *)(param_10 + 0x1c),\n                 *(int *)(param_10 + 0x20) + *(int *)(param_10 + 0x1c),0);\n    piVar3[6] = 0;\n    piVar3[7] = 0;\n                    /* try { // try from 0016d8be to 0016d8d6 has its CatchHandler @ 0016dced */\n    FUN_00072240(*(undefined4 *)(param_3 + 0x1d0),piVar3,local_dc,local_e4,local_e0);\n    puVar7 = auStack_100;\n  }\n  *(int *)(puVar7 + -0x10) = param_10;\n  *(undefined4 *)(puVar7 + -0x14) = 0x16d8d7;\n  local_59 = FUN_00067bf0();\n  local_dc = CONCAT31(local_dc._1_3_,local_59);\n  local_50 = *(int *)(param_3 + 4);\n  local_5b = param_8 != 0;\n  local_5a = *(byte *)(param_10 + 0x8c);\n  local_f1 = *param_9;\n  if (local_f1 != '\0') {\n    local_4c = local_50 + 0x68;\n    local_70 = *(undefined4 *)(param_10 + 0x1c);\n    local_5c = 0;\n    local_6c = *(undefined4 *)(param_9 + 0x3c);\n    local_58 = '\0';\n    local_68 = *(undefined4 *)(param_9 + 0x40);\n    local_54 = 0;\n    local_64 = *(undefined4 *)(param_9 + 0x44);\n    local_60 = *(undefined4 *)(param_9 + 0x48);\n    local_44 = 0;\n    local_40 = 0;\n    local_48 = &local_a4;\n    local_3c[0] = 0;\n    local_3c[1] = 0;\n    local_3c[2] = 0;\n    local_3c[3] = 0;\n    local_3c[4] = 0;\n    local_3c[5] = 0;\n    local_24 = (int *)0x0;\n    local_c0 = 0;\n    *(undefined4 **)(puVar7 + -8) = &local_c0;\n    *(undefined4 *)(puVar7 + -0xc) = 0;\n    *(int **)(puVar7 + -0x10) = local_3c + 3;\n                    /* try { // try from 0016d9b7 to 0016d9d3 has its CatchHandler @ 0016dd02 */\n    *(undefined4 *)(puVar7 + -0x14) = 0x16d9bc;\n    local_20 = piVar3;\n    FUN_0016f460();\n    *(undefined4 **)(puVar7 + -0xc) = &local_c0;\n    local_c0 = local_98;\n    *(int **)(puVar7 + -0x10) = local_3c;\n    *(undefined4 *)(puVar7 + -0x14) = 0x16d9d4;\n    FUN_0016f700();\n    cVar1 = *(char *)(*(int *)(param_3 + 4) + 0xac);\n    local_f8 = &local_70;\n    *(undefined4 **)(puVar7 + -0x10) = local_f8;\n                    /* try { // try from 0016d9f3 to 0016dca6 has its CatchHandler @ 0016dcf4 */\n    *(undefined4 *)(puVar7 + -0x14) = 0x16d9f8;\n    iVar4 = FUN_00191d40();\n    if (iVar4 == 0) {\n      if (((cVar1 == '\0') && (*(char *)(*(int *)(param_3 + 4) + 0xac) != '\0')) &&\n         (*(char *)(param_3 + 0x1c4) != '\0')) {\n        uVar2 = *(undefined4 *)(param_10 + 0x1c);\n        *(undefined ***)(puVar7 + -0x10) = local_d8 + -0x3d6c8;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc5d;\n        uVar6 = gettext();\n        *(undefined4 *)(puVar7 + -0xc) = uVar2;\n        *(undefined4 *)(puVar7 + -0x10) = uVar6;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc66;\n        FUN_000654b0();\n      }\n      cVar1 = local_f1;\n      if (local_24 != (int *)0x0) {\n        local_e4 = (undefined1 *)0x0;\n        iVar4 = local_24[1];\n        local_dc = *local_24;\n        if (iVar4 != local_dc) {\n          local_ec = local_d8 + -0x289c;\n          do {\n            local_e8 = local_dc + 0x5c;\n            puVar5 = param_11;\n            if (local_e8 != iVar4) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;\n              puVar5 = (undefined1 *)FUN_001e5200();\n              *puVar5 = 1;\n              *(undefined4 *)(puVar5 + 8) = 0;\n              *(undefined4 *)(puVar5 + 0xc) = 0;\n              *(undefined4 *)(puVar5 + 0x10) = 0;\n              *(undefined4 *)(puVar5 + 4) = 1;\n            }\n            *(undefined4 *)(puVar7 + -0x10) = 0x50;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16db2d;\n            piVar3 = (int *)FUN_001e5200();\n            piVar3[1] = 0;\n            piVar3[2] = (int)(piVar3 + 4);\n            piVar3[3] = 0;\n            *piVar3 = (int)local_ec;\n            piVar3[0xc] = param_4;\n            piVar3[9] = param_6;\n            piVar3[0xe] = param_7;\n            piVar3[10] = param_2;\n            piVar3[0x12] = (int)local_e4;\n            piVar3[0xb] = param_3;\n            *(undefined1 *)(piVar3 + 4) = 0;\n            *(undefined1 *)(piVar3 + 8) = 0;\n            piVar3[0xd] = 0;\n            piVar3[0xf] = local_dc;\n            piVar3[0x10] = param_8;\n            piVar3[0x11] = 0;\n            piVar3[0x13] = (int)puVar5;\n            *(int **)(puVar7 + -0xc) = piVar3;\n            *(undefined4 *)(puVar7 + -0x10) = param_1;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16dba5;\n            FUN_001906c0();\n            if (local_24 == (int *)0x0) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;\n              local_24 = (int *)FUN_001e5200();\n              *local_24 = 0;\n              local_24[1] = 0;\n              local_24[2] = 0;\n              *(undefined2 *)(local_24 + 3) = 0;\n              local_24[4] = 0;\n              iVar4 = 0;\n            }\n            else {\n              iVar4 = local_24[1];\n            }\n            local_dc = local_e8;\n            local_e4 = puVar5;\n          } while (local_e8 != iVar4);\n          *param_12 = 1;\n          cVar1 = local_f1;\n        }\n      }\n    }\n    else {\n      cVar1 = local_58;\n      if (local_58 != '\0') {\n        *(int *)(puVar7 + -0xc) = param_10;\n        *(char **)(puVar7 + -0x10) = param_9;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc84;\n        FUN_00142200();\n        *(undefined1 **)(puVar7 + -0xc) = param_11;\n        *(int *)(puVar7 + -0x10) = param_8;\n        *(char **)(puVar7 + -0x14) = param_9;\n        *(int *)(puVar7 + -0x18) = param_7;\n        *(undefined4 *)(puVar7 + -0x1c) = param_5;\n        *(int *)(puVar7 + -0x20) = param_4;\n        *(int *)(puVar7 + -0x24) = param_3;\n        *(int *)(puVar7 + -0x28) = param_2;\n        *(int *)(puVar7 + -0x2c) = param_6;\n        *(undefined4 *)(puVar7 + -0x30) = param_1;\n        *(undefined4 *)(puVar7 + -0x34) = 0x16dca7;\n        FUN_00142290();\n        cVar1 = local_f1;\n      }\n    }\n    if (local_3c[3] != 0) {\n      *(int *)(puVar7 + -0x10) = local_3c[3];\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da23;\n      FUN_001e6db0();\n    }\n    if (local_3c[0] != 0) {\n      *(int *)(puVar7 + -0x10) = local_3c[0];\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da3c;\n      FUN_001e6db0();\n    }\n    if (local_bc != local_f0) {\n      *(undefined1 **)(puVar7 + -0x10) = local_bc;\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da5c;\n      FUN_001e6db0();\n    }\n    return cVar1;\n  }\n  *(uint *)(puVar7 + -4) = (uint)local_5a;\n  *(undefined ***)(puVar7 + -8) = local_d8 + -0x3d7a0;\n  *(undefined4 *)(puVar7 + -0xc) = 0x828;\n  *(int *)(puVar7 + -0x10) = (int)local_d8 + -0x106ebb;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016dcc9 to 0016dcec has its CatchHandler @ 0016dced */\n  *(undefined4 *)(puVar7 + -0x14) = 0x16dcce;\n  FUN_00069d00();\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined1 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined1 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined1 auStack_100 [4];" type_identifier (array_declarator "auStack_100 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_fc [4];" type_identifier (array_declarator "auStack_fc [4]" identifier [ number_literal ]) ;) (declaration "undefined4 *local_f8;" type_identifier (pointer_declarator "*local_f8" * identifier) ;) (declaration "char local_f1;" primitive_type identifier ;) (declaration "undefined1 *local_f0;" type_identifier (pointer_declarator "*local_f0" * identifier) ;) (declaration "undefined **local_ec;" type_identifier (pointer_declarator "**local_ec" * (pointer_declarator "*local_ec" * identifier)) ;) (declaration "int local_e8;" primitive_type identifier ;) (declaration "undefined1 *local_e4;" type_identifier (pointer_declarator "*local_e4" * identifier) ;) (declaration "undefined4 local_e0;" type_identifier identifier ;) (declaration "int local_dc;" primitive_type identifier ;) (declaration "undefined **local_d8;" type_identifier (pointer_declarator "**local_d8" * (pointer_declarator "*local_d8" * identifier)) ;) (declaration "undefined1 *local_d4;" type_identifier (pointer_declarator "*local_d4" * identifier) ;) (declaration "undefined4 local_d0;" type_identifier identifier ;) (declaration "undefined4 local_c0;" type_identifier identifier ;) (declaration "undefined1 *local_bc;" type_identifier (pointer_declarator "*local_bc" * identifier) ;) (declaration "undefined4 local_b8;" type_identifier identifier ;) (declaration "undefined1 local_b4 [16];" type_identifier (array_declarator "local_b4 [16]" identifier [ number_literal ]) ;) (declaration "undefined1 *local_a4;" type_identifier (pointer_declarator "*local_a4" * identifier) ;) (declaration "undefined4 local_a0;" type_identifier identifier ;) (declaration "undefined1 *local_9c;" type_identifier (pointer_declarator "*local_9c" * identifier) ;) (declaration "undefined4 local_98;" type_identifier identifier ;) (declaration "undefined4 local_94;" type_identifier identifier ;) (declaration "undefined4 local_90;" type_identifier identifier ;) (declaration "undefined4 local_8c;" type_identifier identifier ;) (declaration "undefined4 local_88;" type_identifier identifier ;) (declaration "undefined4 local_84;" type_identifier identifier ;) (declaration "undefined4 local_80;" type_identifier identifier ;) (declaration "undefined4 local_7c;" type_identifier identifier ;) (declaration "undefined4 local_78;" type_identifier identifier ;) (declaration "undefined1 *local_74;" type_identifier (pointer_declarator "*local_74" * identifier) ;) (declaration "undefined4 local_70;" type_identifier identifier ;) (declaration "undefined4 local_6c;" type_identifier identifier ;) (declaration "undefined4 local_68;" type_identifier identifier ;) (declaration "undefined4 local_64;" type_identifier identifier ;) (declaration "undefined4 local_60;" type_identifier identifier ;) (declaration "undefined1 local_5c;" type_identifier identifier ;) (declaration "undefined1 local_5b;" type_identifier identifier ;) (declaration "byte local_5a;" type_identifier identifier ;) (declaration "undefined1 local_59;" type_identifier identifier ;) (declaration "char local_58;" primitive_type identifier ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "undefined1 **local_48;" type_identifier (pointer_declarator "**local_48" * (pointer_declarator "*local_48" * identifier)) ;) (declaration "undefined4 local_44;" type_identifier identifier ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (declaration "int local_3c [6];" primitive_type (array_declarator "local_3c [6]" identifier [ number_literal ]) ;) (declaration "int *local_24;" primitive_type (pointer_declarator "*local_24" * identifier) ;) (declaration "int *local_20;" primitive_type (pointer_declarator "*local_20" * identifier) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "local_f0 = local_b4;" (assignment_expression "local_f0 = local_b4" identifier = identifier) ;) (expression_statement "uStack_14 = 0x16d751;" (assignment_expression "uStack_14 = 0x16d751" identifier = number_literal) ;) (expression_statement "local_d8 = &__DT_PLTGOT;" (assignment_expression "local_d8 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "*param_12 = 0;" (assignment_expression "*param_12 = 0" (pointer_expression "*param_12" * identifier) = number_literal) ;) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (expression_statement "local_b4[0] = 0;" (assignment_expression "local_b4[0] = 0" (subscript_expression "local_b4[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_bc = local_f0;" (assignment_expression "local_bc = local_f0" identifier = identifier) ;) comment (expression_statement "FUN_00168e00(param_10,&local_bc);" (call_expression "FUN_00168e00(param_10,&local_bc)" identifier (argument_list "(param_10,&local_bc)" ( identifier , (pointer_expression "&local_bc" & identifier) ))) ;) (expression_statement "puVar7 = auStack_fc;" (assignment_expression "puVar7 = auStack_fc" identifier = identifier) ;) (expression_statement "local_98 = 0;" (assignment_expression "local_98 = 0" identifier = number_literal) ;) (expression_statement "local_94 = 0x163;" (assignment_expression "local_94 = 0x163" identifier = number_literal) ;) (expression_statement "local_a4 = local_bc;" (assignment_expression "local_a4 = local_bc" identifier = identifier) ;) (expression_statement "local_9c = local_bc;" (assignment_expression "local_9c = local_bc" identifier = identifier) ;) (expression_statement "local_74 = local_bc;" (assignment_expression "local_74 = local_bc" identifier = identifier) ;) (expression_statement "local_a0 = local_b8;" (assignment_expression "local_a0 = local_b8" identifier = identifier) ;) (expression_statement "piVar3 = *(int **)(param_3 + 0x1d0);" (assignment_expression "piVar3 = *(int **)(param_3 + 0x1d0)" identifier = (pointer_expression "*(int **)(param_3 + 0x1d0)" * (cast_expression "(int **)(param_3 + 0x1d0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x1d0)" ( (binary_expression "param_3 + 0x1d0" identifier + number_literal) ))))) ;) (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" identifier = number_literal) ;) (expression_statement "local_8c = 0;" (assignment_expression "local_8c = 0" identifier = number_literal) ;) (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" identifier = number_literal) ;) (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" identifier = number_literal) ;) (expression_statement "local_80 = 0;" (assignment_expression "local_80 = 0" identifier = number_literal) ;) (expression_statement "local_7c = 0;" (assignment_expression "local_7c = 0" identifier = number_literal) ;) (expression_statement "local_78 = 1;" (assignment_expression "local_78 = 1" identifier = number_literal) ;) (if_statement "if (piVar3 != (int *)0x0) {\n    FUN_00067c30(&local_d4,param_10 + 0x1c);\n    local_e4 = local_d4;\n    local_e0 = local_d0;\n    if (*param_9 == '\0') {\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00((int)local_d8 + -0x106ebb,0x828,local_d8 + -0x3d7a0,local_d4);\n    }\n    local_dc = *(int *)(param_9 + 0x4c);\n    piVar3 = (int *)FUN_001e5200(0x20);\n    *piVar3 = (int)(piVar3 + 2);\n                    /* try { // try from 0016d888 to 0016d88c has its CatchHandler @ 0016dcfb */\n    FUN_000513a0(piVar3,*(int *)(param_10 + 0x1c),\n                 *(int *)(param_10 + 0x20) + *(int *)(param_10 + 0x1c),0);\n    piVar3[6] = 0;\n    piVar3[7] = 0;\n                    /* try { // try from 0016d8be to 0016d8d6 has its CatchHandler @ 0016dced */\n    FUN_00072240(*(undefined4 *)(param_3 + 0x1d0),piVar3,local_dc,local_e4,local_e0);\n    puVar7 = auStack_100;\n  }" if (parenthesized_expression "(piVar3 != (int *)0x0)" ( (binary_expression "piVar3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    FUN_00067c30(&local_d4,param_10 + 0x1c);\n    local_e4 = local_d4;\n    local_e0 = local_d0;\n    if (*param_9 == '\0') {\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00((int)local_d8 + -0x106ebb,0x828,local_d8 + -0x3d7a0,local_d4);\n    }\n    local_dc = *(int *)(param_9 + 0x4c);\n    piVar3 = (int *)FUN_001e5200(0x20);\n    *piVar3 = (int)(piVar3 + 2);\n                    /* try { // try from 0016d888 to 0016d88c has its CatchHandler @ 0016dcfb */\n    FUN_000513a0(piVar3,*(int *)(param_10 + 0x1c),\n                 *(int *)(param_10 + 0x20) + *(int *)(param_10 + 0x1c),0);\n    piVar3[6] = 0;\n    piVar3[7] = 0;\n                    /* try { // try from 0016d8be to 0016d8d6 has its CatchHandler @ 0016dced */\n    FUN_00072240(*(undefined4 *)(param_3 + 0x1d0),piVar3,local_dc,local_e4,local_e0);\n    puVar7 = auStack_100;\n  }" { (expression_statement "FUN_00067c30(&local_d4,param_10 + 0x1c);" (call_expression "FUN_00067c30(&local_d4,param_10 + 0x1c)" identifier (argument_list "(&local_d4,param_10 + 0x1c)" ( (pointer_expression "&local_d4" & identifier) , (binary_expression "param_10 + 0x1c" identifier + number_literal) ))) ;) (expression_statement "local_e4 = local_d4;" (assignment_expression "local_e4 = local_d4" identifier = identifier) ;) (expression_statement "local_e0 = local_d0;" (assignment_expression "local_e0 = local_d0" identifier = identifier) ;) (if_statement "if (*param_9 == '\0') {\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00((int)local_d8 + -0x106ebb,0x828,local_d8 + -0x3d7a0,local_d4);\n    }" if (parenthesized_expression "(*param_9 == '\0')" ( (binary_expression "*param_9 == '\0'" (pointer_expression "*param_9" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00((int)local_d8 + -0x106ebb,0x828,local_d8 + -0x3d7a0,local_d4);\n    }" { comment (expression_statement "FUN_00069d00((int)local_d8 + -0x106ebb,0x828,local_d8 + -0x3d7a0,local_d4);" (call_expression "FUN_00069d00((int)local_d8 + -0x106ebb,0x828,local_d8 + -0x3d7a0,local_d4)" identifier (argument_list "((int)local_d8 + -0x106ebb,0x828,local_d8 + -0x3d7a0,local_d4)" ( (binary_expression "(int)local_d8 + -0x106ebb" (cast_expression "(int)local_d8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal , (binary_expression "local_d8 + -0x3d7a0" identifier + number_literal) , identifier ))) ;) })) (expression_statement "local_dc = *(int *)(param_9 + 0x4c);" (assignment_expression "local_dc = *(int *)(param_9 + 0x4c)" identifier = (pointer_expression "*(int *)(param_9 + 0x4c)" * (cast_expression "(int *)(param_9 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_9 + 0x4c)" ( (binary_expression "param_9 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "piVar3 = (int *)FUN_001e5200(0x20);" (assignment_expression "piVar3 = (int *)FUN_001e5200(0x20)" identifier = (cast_expression "(int *)FUN_001e5200(0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e5200(0x20)" identifier (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "*piVar3 = (int)(piVar3 + 2);" (assignment_expression "*piVar3 = (int)(piVar3 + 2)" (pointer_expression "*piVar3" * identifier) = (cast_expression "(int)(piVar3 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar3 + 2)" ( (binary_expression "piVar3 + 2" identifier + number_literal) )))) ;) comment (expression_statement "FUN_000513a0(piVar3,*(int *)(param_10 + 0x1c),\n                 *(int *)(param_10 + 0x20) + *(int *)(param_10 + 0x1c),0);" (call_expression "FUN_000513a0(piVar3,*(int *)(param_10 + 0x1c),\n                 *(int *)(param_10 + 0x20) + *(int *)(param_10 + 0x1c),0)" identifier (argument_list "(piVar3,*(int *)(param_10 + 0x1c),\n                 *(int *)(param_10 + 0x20) + *(int *)(param_10 + 0x1c),0)" ( identifier , (pointer_expression "*(int *)(param_10 + 0x1c)" * (cast_expression "(int *)(param_10 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_10 + 0x1c)" ( (binary_expression "param_10 + 0x1c" identifier + number_literal) )))) , (binary_expression "*(int *)(param_10 + 0x20) + *(int *)(param_10 + 0x1c)" (pointer_expression "*(int *)(param_10 + 0x20)" * (cast_expression "(int *)(param_10 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_10 + 0x20)" ( (binary_expression "param_10 + 0x20" identifier + number_literal) )))) + (pointer_expression "*(int *)(param_10 + 0x1c)" * (cast_expression "(int *)(param_10 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_10 + 0x1c)" ( (binary_expression "param_10 + 0x1c" identifier + number_literal) ))))) , number_literal ))) ;) (expression_statement "piVar3[6] = 0;" (assignment_expression "piVar3[6] = 0" (subscript_expression "piVar3[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar3[7] = 0;" (assignment_expression "piVar3[7] = 0" (subscript_expression "piVar3[7]" identifier [ number_literal ]) = number_literal) ;) comment (expression_statement "FUN_00072240(*(undefined4 *)(param_3 + 0x1d0),piVar3,local_dc,local_e4,local_e0);" (call_expression "FUN_00072240(*(undefined4 *)(param_3 + 0x1d0),piVar3,local_dc,local_e4,local_e0)" identifier (argument_list "(*(undefined4 *)(param_3 + 0x1d0),piVar3,local_dc,local_e4,local_e0)" ( (pointer_expression "*(undefined4 *)(param_3 + 0x1d0)" * (cast_expression "(undefined4 *)(param_3 + 0x1d0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x1d0)" ( (binary_expression "param_3 + 0x1d0" identifier + number_literal) )))) , identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar7 = auStack_100;" (assignment_expression "puVar7 = auStack_100" identifier = identifier) ;) })) (expression_statement "*(int *)(puVar7 + -0x10) = param_10;" (assignment_expression "*(int *)(puVar7 + -0x10) = param_10" (pointer_expression "*(int *)(puVar7 + -0x10)" * (cast_expression "(int *)(puVar7 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x10)" ( (binary_expression "puVar7 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16d8d7;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16d8d7" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" * (cast_expression "(undefined4 *)(puVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x14)" ( (binary_expression "puVar7 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_59 = FUN_00067bf0();" (assignment_expression "local_59 = FUN_00067bf0()" identifier = (call_expression "FUN_00067bf0()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_dc = CONCAT31(local_dc._1_3_,local_59);" (assignment_expression "local_dc = CONCAT31(local_dc._1_3_,local_59)" identifier = (call_expression "CONCAT31(local_dc._1_3_,local_59)" identifier (argument_list "(local_dc._1_3_,local_59)" ( (field_expression "local_dc._1_3_" identifier . field_identifier) , identifier )))) ;) (expression_statement "local_50 = *(int *)(param_3 + 4);" (assignment_expression "local_50 = *(int *)(param_3 + 4)" identifier = (pointer_expression "*(int *)(param_3 + 4)" * (cast_expression "(int *)(param_3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_5b = param_8 != 0;" (assignment_expression "local_5b = param_8 != 0" identifier = (binary_expression "param_8 != 0" identifier != number_literal)) ;) (expression_statement "local_5a = *(byte *)(param_10 + 0x8c);" (assignment_expression "local_5a = *(byte *)(param_10 + 0x8c)" identifier = (pointer_expression "*(byte *)(param_10 + 0x8c)" * (cast_expression "(byte *)(param_10 + 0x8c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_10 + 0x8c)" ( (binary_expression "param_10 + 0x8c" identifier + number_literal) ))))) ;) (expression_statement "local_f1 = *param_9;" (assignment_expression "local_f1 = *param_9" identifier = (pointer_expression "*param_9" * identifier)) ;) (if_statement "if (local_f1 != '\0') {\n    local_4c = local_50 + 0x68;\n    local_70 = *(undefined4 *)(param_10 + 0x1c);\n    local_5c = 0;\n    local_6c = *(undefined4 *)(param_9 + 0x3c);\n    local_58 = '\0';\n    local_68 = *(undefined4 *)(param_9 + 0x40);\n    local_54 = 0;\n    local_64 = *(undefined4 *)(param_9 + 0x44);\n    local_60 = *(undefined4 *)(param_9 + 0x48);\n    local_44 = 0;\n    local_40 = 0;\n    local_48 = &local_a4;\n    local_3c[0] = 0;\n    local_3c[1] = 0;\n    local_3c[2] = 0;\n    local_3c[3] = 0;\n    local_3c[4] = 0;\n    local_3c[5] = 0;\n    local_24 = (int *)0x0;\n    local_c0 = 0;\n    *(undefined4 **)(puVar7 + -8) = &local_c0;\n    *(undefined4 *)(puVar7 + -0xc) = 0;\n    *(int **)(puVar7 + -0x10) = local_3c + 3;\n                    /* try { // try from 0016d9b7 to 0016d9d3 has its CatchHandler @ 0016dd02 */\n    *(undefined4 *)(puVar7 + -0x14) = 0x16d9bc;\n    local_20 = piVar3;\n    FUN_0016f460();\n    *(undefined4 **)(puVar7 + -0xc) = &local_c0;\n    local_c0 = local_98;\n    *(int **)(puVar7 + -0x10) = local_3c;\n    *(undefined4 *)(puVar7 + -0x14) = 0x16d9d4;\n    FUN_0016f700();\n    cVar1 = *(char *)(*(int *)(param_3 + 4) + 0xac);\n    local_f8 = &local_70;\n    *(undefined4 **)(puVar7 + -0x10) = local_f8;\n                    /* try { // try from 0016d9f3 to 0016dca6 has its CatchHandler @ 0016dcf4 */\n    *(undefined4 *)(puVar7 + -0x14) = 0x16d9f8;\n    iVar4 = FUN_00191d40();\n    if (iVar4 == 0) {\n      if (((cVar1 == '\0') && (*(char *)(*(int *)(param_3 + 4) + 0xac) != '\0')) &&\n         (*(char *)(param_3 + 0x1c4) != '\0')) {\n        uVar2 = *(undefined4 *)(param_10 + 0x1c);\n        *(undefined ***)(puVar7 + -0x10) = local_d8 + -0x3d6c8;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc5d;\n        uVar6 = gettext();\n        *(undefined4 *)(puVar7 + -0xc) = uVar2;\n        *(undefined4 *)(puVar7 + -0x10) = uVar6;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc66;\n        FUN_000654b0();\n      }\n      cVar1 = local_f1;\n      if (local_24 != (int *)0x0) {\n        local_e4 = (undefined1 *)0x0;\n        iVar4 = local_24[1];\n        local_dc = *local_24;\n        if (iVar4 != local_dc) {\n          local_ec = local_d8 + -0x289c;\n          do {\n            local_e8 = local_dc + 0x5c;\n            puVar5 = param_11;\n            if (local_e8 != iVar4) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;\n              puVar5 = (undefined1 *)FUN_001e5200();\n              *puVar5 = 1;\n              *(undefined4 *)(puVar5 + 8) = 0;\n              *(undefined4 *)(puVar5 + 0xc) = 0;\n              *(undefined4 *)(puVar5 + 0x10) = 0;\n              *(undefined4 *)(puVar5 + 4) = 1;\n            }\n            *(undefined4 *)(puVar7 + -0x10) = 0x50;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16db2d;\n            piVar3 = (int *)FUN_001e5200();\n            piVar3[1] = 0;\n            piVar3[2] = (int)(piVar3 + 4);\n            piVar3[3] = 0;\n            *piVar3 = (int)local_ec;\n            piVar3[0xc] = param_4;\n            piVar3[9] = param_6;\n            piVar3[0xe] = param_7;\n            piVar3[10] = param_2;\n            piVar3[0x12] = (int)local_e4;\n            piVar3[0xb] = param_3;\n            *(undefined1 *)(piVar3 + 4) = 0;\n            *(undefined1 *)(piVar3 + 8) = 0;\n            piVar3[0xd] = 0;\n            piVar3[0xf] = local_dc;\n            piVar3[0x10] = param_8;\n            piVar3[0x11] = 0;\n            piVar3[0x13] = (int)puVar5;\n            *(int **)(puVar7 + -0xc) = piVar3;\n            *(undefined4 *)(puVar7 + -0x10) = param_1;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16dba5;\n            FUN_001906c0();\n            if (local_24 == (int *)0x0) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;\n              local_24 = (int *)FUN_001e5200();\n              *local_24 = 0;\n              local_24[1] = 0;\n              local_24[2] = 0;\n              *(undefined2 *)(local_24 + 3) = 0;\n              local_24[4] = 0;\n              iVar4 = 0;\n            }\n            else {\n              iVar4 = local_24[1];\n            }\n            local_dc = local_e8;\n            local_e4 = puVar5;\n          } while (local_e8 != iVar4);\n          *param_12 = 1;\n          cVar1 = local_f1;\n        }\n      }\n    }\n    else {\n      cVar1 = local_58;\n      if (local_58 != '\0') {\n        *(int *)(puVar7 + -0xc) = param_10;\n        *(char **)(puVar7 + -0x10) = param_9;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc84;\n        FUN_00142200();\n        *(undefined1 **)(puVar7 + -0xc) = param_11;\n        *(int *)(puVar7 + -0x10) = param_8;\n        *(char **)(puVar7 + -0x14) = param_9;\n        *(int *)(puVar7 + -0x18) = param_7;\n        *(undefined4 *)(puVar7 + -0x1c) = param_5;\n        *(int *)(puVar7 + -0x20) = param_4;\n        *(int *)(puVar7 + -0x24) = param_3;\n        *(int *)(puVar7 + -0x28) = param_2;\n        *(int *)(puVar7 + -0x2c) = param_6;\n        *(undefined4 *)(puVar7 + -0x30) = param_1;\n        *(undefined4 *)(puVar7 + -0x34) = 0x16dca7;\n        FUN_00142290();\n        cVar1 = local_f1;\n      }\n    }\n    if (local_3c[3] != 0) {\n      *(int *)(puVar7 + -0x10) = local_3c[3];\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da23;\n      FUN_001e6db0();\n    }\n    if (local_3c[0] != 0) {\n      *(int *)(puVar7 + -0x10) = local_3c[0];\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da3c;\n      FUN_001e6db0();\n    }\n    if (local_bc != local_f0) {\n      *(undefined1 **)(puVar7 + -0x10) = local_bc;\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da5c;\n      FUN_001e6db0();\n    }\n    return cVar1;\n  }" if (parenthesized_expression "(local_f1 != '\0')" ( (binary_expression "local_f1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    local_4c = local_50 + 0x68;\n    local_70 = *(undefined4 *)(param_10 + 0x1c);\n    local_5c = 0;\n    local_6c = *(undefined4 *)(param_9 + 0x3c);\n    local_58 = '\0';\n    local_68 = *(undefined4 *)(param_9 + 0x40);\n    local_54 = 0;\n    local_64 = *(undefined4 *)(param_9 + 0x44);\n    local_60 = *(undefined4 *)(param_9 + 0x48);\n    local_44 = 0;\n    local_40 = 0;\n    local_48 = &local_a4;\n    local_3c[0] = 0;\n    local_3c[1] = 0;\n    local_3c[2] = 0;\n    local_3c[3] = 0;\n    local_3c[4] = 0;\n    local_3c[5] = 0;\n    local_24 = (int *)0x0;\n    local_c0 = 0;\n    *(undefined4 **)(puVar7 + -8) = &local_c0;\n    *(undefined4 *)(puVar7 + -0xc) = 0;\n    *(int **)(puVar7 + -0x10) = local_3c + 3;\n                    /* try { // try from 0016d9b7 to 0016d9d3 has its CatchHandler @ 0016dd02 */\n    *(undefined4 *)(puVar7 + -0x14) = 0x16d9bc;\n    local_20 = piVar3;\n    FUN_0016f460();\n    *(undefined4 **)(puVar7 + -0xc) = &local_c0;\n    local_c0 = local_98;\n    *(int **)(puVar7 + -0x10) = local_3c;\n    *(undefined4 *)(puVar7 + -0x14) = 0x16d9d4;\n    FUN_0016f700();\n    cVar1 = *(char *)(*(int *)(param_3 + 4) + 0xac);\n    local_f8 = &local_70;\n    *(undefined4 **)(puVar7 + -0x10) = local_f8;\n                    /* try { // try from 0016d9f3 to 0016dca6 has its CatchHandler @ 0016dcf4 */\n    *(undefined4 *)(puVar7 + -0x14) = 0x16d9f8;\n    iVar4 = FUN_00191d40();\n    if (iVar4 == 0) {\n      if (((cVar1 == '\0') && (*(char *)(*(int *)(param_3 + 4) + 0xac) != '\0')) &&\n         (*(char *)(param_3 + 0x1c4) != '\0')) {\n        uVar2 = *(undefined4 *)(param_10 + 0x1c);\n        *(undefined ***)(puVar7 + -0x10) = local_d8 + -0x3d6c8;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc5d;\n        uVar6 = gettext();\n        *(undefined4 *)(puVar7 + -0xc) = uVar2;\n        *(undefined4 *)(puVar7 + -0x10) = uVar6;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc66;\n        FUN_000654b0();\n      }\n      cVar1 = local_f1;\n      if (local_24 != (int *)0x0) {\n        local_e4 = (undefined1 *)0x0;\n        iVar4 = local_24[1];\n        local_dc = *local_24;\n        if (iVar4 != local_dc) {\n          local_ec = local_d8 + -0x289c;\n          do {\n            local_e8 = local_dc + 0x5c;\n            puVar5 = param_11;\n            if (local_e8 != iVar4) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;\n              puVar5 = (undefined1 *)FUN_001e5200();\n              *puVar5 = 1;\n              *(undefined4 *)(puVar5 + 8) = 0;\n              *(undefined4 *)(puVar5 + 0xc) = 0;\n              *(undefined4 *)(puVar5 + 0x10) = 0;\n              *(undefined4 *)(puVar5 + 4) = 1;\n            }\n            *(undefined4 *)(puVar7 + -0x10) = 0x50;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16db2d;\n            piVar3 = (int *)FUN_001e5200();\n            piVar3[1] = 0;\n            piVar3[2] = (int)(piVar3 + 4);\n            piVar3[3] = 0;\n            *piVar3 = (int)local_ec;\n            piVar3[0xc] = param_4;\n            piVar3[9] = param_6;\n            piVar3[0xe] = param_7;\n            piVar3[10] = param_2;\n            piVar3[0x12] = (int)local_e4;\n            piVar3[0xb] = param_3;\n            *(undefined1 *)(piVar3 + 4) = 0;\n            *(undefined1 *)(piVar3 + 8) = 0;\n            piVar3[0xd] = 0;\n            piVar3[0xf] = local_dc;\n            piVar3[0x10] = param_8;\n            piVar3[0x11] = 0;\n            piVar3[0x13] = (int)puVar5;\n            *(int **)(puVar7 + -0xc) = piVar3;\n            *(undefined4 *)(puVar7 + -0x10) = param_1;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16dba5;\n            FUN_001906c0();\n            if (local_24 == (int *)0x0) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;\n              local_24 = (int *)FUN_001e5200();\n              *local_24 = 0;\n              local_24[1] = 0;\n              local_24[2] = 0;\n              *(undefined2 *)(local_24 + 3) = 0;\n              local_24[4] = 0;\n              iVar4 = 0;\n            }\n            else {\n              iVar4 = local_24[1];\n            }\n            local_dc = local_e8;\n            local_e4 = puVar5;\n          } while (local_e8 != iVar4);\n          *param_12 = 1;\n          cVar1 = local_f1;\n        }\n      }\n    }\n    else {\n      cVar1 = local_58;\n      if (local_58 != '\0') {\n        *(int *)(puVar7 + -0xc) = param_10;\n        *(char **)(puVar7 + -0x10) = param_9;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc84;\n        FUN_00142200();\n        *(undefined1 **)(puVar7 + -0xc) = param_11;\n        *(int *)(puVar7 + -0x10) = param_8;\n        *(char **)(puVar7 + -0x14) = param_9;\n        *(int *)(puVar7 + -0x18) = param_7;\n        *(undefined4 *)(puVar7 + -0x1c) = param_5;\n        *(int *)(puVar7 + -0x20) = param_4;\n        *(int *)(puVar7 + -0x24) = param_3;\n        *(int *)(puVar7 + -0x28) = param_2;\n        *(int *)(puVar7 + -0x2c) = param_6;\n        *(undefined4 *)(puVar7 + -0x30) = param_1;\n        *(undefined4 *)(puVar7 + -0x34) = 0x16dca7;\n        FUN_00142290();\n        cVar1 = local_f1;\n      }\n    }\n    if (local_3c[3] != 0) {\n      *(int *)(puVar7 + -0x10) = local_3c[3];\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da23;\n      FUN_001e6db0();\n    }\n    if (local_3c[0] != 0) {\n      *(int *)(puVar7 + -0x10) = local_3c[0];\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da3c;\n      FUN_001e6db0();\n    }\n    if (local_bc != local_f0) {\n      *(undefined1 **)(puVar7 + -0x10) = local_bc;\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da5c;\n      FUN_001e6db0();\n    }\n    return cVar1;\n  }" { (expression_statement "local_4c = local_50 + 0x68;" (assignment_expression "local_4c = local_50 + 0x68" identifier = (binary_expression "local_50 + 0x68" identifier + number_literal)) ;) (expression_statement "local_70 = *(undefined4 *)(param_10 + 0x1c);" (assignment_expression "local_70 = *(undefined4 *)(param_10 + 0x1c)" identifier = (pointer_expression "*(undefined4 *)(param_10 + 0x1c)" * (cast_expression "(undefined4 *)(param_10 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_10 + 0x1c)" ( (binary_expression "param_10 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (expression_statement "local_6c = *(undefined4 *)(param_9 + 0x3c);" (assignment_expression "local_6c = *(undefined4 *)(param_9 + 0x3c)" identifier = (pointer_expression "*(undefined4 *)(param_9 + 0x3c)" * (cast_expression "(undefined4 *)(param_9 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_9 + 0x3c)" ( (binary_expression "param_9 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "local_58 = '\0';" (assignment_expression "local_58 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_68 = *(undefined4 *)(param_9 + 0x40);" (assignment_expression "local_68 = *(undefined4 *)(param_9 + 0x40)" identifier = (pointer_expression "*(undefined4 *)(param_9 + 0x40)" * (cast_expression "(undefined4 *)(param_9 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_9 + 0x40)" ( (binary_expression "param_9 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "local_64 = *(undefined4 *)(param_9 + 0x44);" (assignment_expression "local_64 = *(undefined4 *)(param_9 + 0x44)" identifier = (pointer_expression "*(undefined4 *)(param_9 + 0x44)" * (cast_expression "(undefined4 *)(param_9 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_9 + 0x44)" ( (binary_expression "param_9 + 0x44" identifier + number_literal) ))))) ;) (expression_statement "local_60 = *(undefined4 *)(param_9 + 0x48);" (assignment_expression "local_60 = *(undefined4 *)(param_9 + 0x48)" identifier = (pointer_expression "*(undefined4 *)(param_9 + 0x48)" * (cast_expression "(undefined4 *)(param_9 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_9 + 0x48)" ( (binary_expression "param_9 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "local_48 = &local_a4;" (assignment_expression "local_48 = &local_a4" identifier = (pointer_expression "&local_a4" & identifier)) ;) (expression_statement "local_3c[0] = 0;" (assignment_expression "local_3c[0] = 0" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_3c[1] = 0;" (assignment_expression "local_3c[1] = 0" (subscript_expression "local_3c[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_3c[2] = 0;" (assignment_expression "local_3c[2] = 0" (subscript_expression "local_3c[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_3c[3] = 0;" (assignment_expression "local_3c[3] = 0" (subscript_expression "local_3c[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_3c[4] = 0;" (assignment_expression "local_3c[4] = 0" (subscript_expression "local_3c[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_3c[5] = 0;" (assignment_expression "local_3c[5] = 0" (subscript_expression "local_3c[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_24 = (int *)0x0;" (assignment_expression "local_24 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_c0 = 0;" (assignment_expression "local_c0 = 0" identifier = number_literal) ;) (expression_statement "*(undefined4 **)(puVar7 + -8) = &local_c0;" (assignment_expression "*(undefined4 **)(puVar7 + -8) = &local_c0" (pointer_expression "*(undefined4 **)(puVar7 + -8)" * (cast_expression "(undefined4 **)(puVar7 + -8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + -8)" ( (binary_expression "puVar7 + -8" identifier + number_literal) )))) = (pointer_expression "&local_c0" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar7 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar7 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar7 + -0xc)" * (cast_expression "(undefined4 *)(puVar7 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0xc)" ( (binary_expression "puVar7 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int **)(puVar7 + -0x10) = local_3c + 3;" (assignment_expression "*(int **)(puVar7 + -0x10) = local_3c + 3" (pointer_expression "*(int **)(puVar7 + -0x10)" * (cast_expression "(int **)(puVar7 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + -0x10)" ( (binary_expression "puVar7 + -0x10" identifier + number_literal) )))) = (binary_expression "local_3c + 3" identifier + number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16d9bc;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16d9bc" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" * (cast_expression "(undefined4 *)(puVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x14)" ( (binary_expression "puVar7 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_20 = piVar3;" (assignment_expression "local_20 = piVar3" identifier = identifier) ;) (expression_statement "FUN_0016f460();" (call_expression "FUN_0016f460()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 **)(puVar7 + -0xc) = &local_c0;" (assignment_expression "*(undefined4 **)(puVar7 + -0xc) = &local_c0" (pointer_expression "*(undefined4 **)(puVar7 + -0xc)" * (cast_expression "(undefined4 **)(puVar7 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + -0xc)" ( (binary_expression "puVar7 + -0xc" identifier + number_literal) )))) = (pointer_expression "&local_c0" & identifier)) ;) (expression_statement "local_c0 = local_98;" (assignment_expression "local_c0 = local_98" identifier = identifier) ;) (expression_statement "*(int **)(puVar7 + -0x10) = local_3c;" (assignment_expression "*(int **)(puVar7 + -0x10) = local_3c" (pointer_expression "*(int **)(puVar7 + -0x10)" * (cast_expression "(int **)(puVar7 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + -0x10)" ( (binary_expression "puVar7 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16d9d4;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16d9d4" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" * (cast_expression "(undefined4 *)(puVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x14)" ( (binary_expression "puVar7 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0016f700();" (call_expression "FUN_0016f700()" identifier (argument_list "()" ( ))) ;) (expression_statement "cVar1 = *(char *)(*(int *)(param_3 + 4) + 0xac);" (assignment_expression "cVar1 = *(char *)(*(int *)(param_3 + 4) + 0xac)" identifier = (pointer_expression "*(char *)(*(int *)(param_3 + 4) + 0xac)" * (cast_expression "(char *)(*(int *)(param_3 + 4) + 0xac)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_3 + 4) + 0xac)" ( (binary_expression "*(int *)(param_3 + 4) + 0xac" (pointer_expression "*(int *)(param_3 + 4)" * (cast_expression "(int *)(param_3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "local_f8 = &local_70;" (assignment_expression "local_f8 = &local_70" identifier = (pointer_expression "&local_70" & identifier)) ;) (expression_statement "*(undefined4 **)(puVar7 + -0x10) = local_f8;" (assignment_expression "*(undefined4 **)(puVar7 + -0x10) = local_f8" (pointer_expression "*(undefined4 **)(puVar7 + -0x10)" * (cast_expression "(undefined4 **)(puVar7 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + -0x10)" ( (binary_expression "puVar7 + -0x10" identifier + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16d9f8;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16d9f8" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" * (cast_expression "(undefined4 *)(puVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x14)" ( (binary_expression "puVar7 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar4 = FUN_00191d40();" (assignment_expression "iVar4 = FUN_00191d40()" identifier = (call_expression "FUN_00191d40()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar4 == 0) {\n      if (((cVar1 == '\0') && (*(char *)(*(int *)(param_3 + 4) + 0xac) != '\0')) &&\n         (*(char *)(param_3 + 0x1c4) != '\0')) {\n        uVar2 = *(undefined4 *)(param_10 + 0x1c);\n        *(undefined ***)(puVar7 + -0x10) = local_d8 + -0x3d6c8;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc5d;\n        uVar6 = gettext();\n        *(undefined4 *)(puVar7 + -0xc) = uVar2;\n        *(undefined4 *)(puVar7 + -0x10) = uVar6;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc66;\n        FUN_000654b0();\n      }\n      cVar1 = local_f1;\n      if (local_24 != (int *)0x0) {\n        local_e4 = (undefined1 *)0x0;\n        iVar4 = local_24[1];\n        local_dc = *local_24;\n        if (iVar4 != local_dc) {\n          local_ec = local_d8 + -0x289c;\n          do {\n            local_e8 = local_dc + 0x5c;\n            puVar5 = param_11;\n            if (local_e8 != iVar4) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;\n              puVar5 = (undefined1 *)FUN_001e5200();\n              *puVar5 = 1;\n              *(undefined4 *)(puVar5 + 8) = 0;\n              *(undefined4 *)(puVar5 + 0xc) = 0;\n              *(undefined4 *)(puVar5 + 0x10) = 0;\n              *(undefined4 *)(puVar5 + 4) = 1;\n            }\n            *(undefined4 *)(puVar7 + -0x10) = 0x50;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16db2d;\n            piVar3 = (int *)FUN_001e5200();\n            piVar3[1] = 0;\n            piVar3[2] = (int)(piVar3 + 4);\n            piVar3[3] = 0;\n            *piVar3 = (int)local_ec;\n            piVar3[0xc] = param_4;\n            piVar3[9] = param_6;\n            piVar3[0xe] = param_7;\n            piVar3[10] = param_2;\n            piVar3[0x12] = (int)local_e4;\n            piVar3[0xb] = param_3;\n            *(undefined1 *)(piVar3 + 4) = 0;\n            *(undefined1 *)(piVar3 + 8) = 0;\n            piVar3[0xd] = 0;\n            piVar3[0xf] = local_dc;\n            piVar3[0x10] = param_8;\n            piVar3[0x11] = 0;\n            piVar3[0x13] = (int)puVar5;\n            *(int **)(puVar7 + -0xc) = piVar3;\n            *(undefined4 *)(puVar7 + -0x10) = param_1;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16dba5;\n            FUN_001906c0();\n            if (local_24 == (int *)0x0) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;\n              local_24 = (int *)FUN_001e5200();\n              *local_24 = 0;\n              local_24[1] = 0;\n              local_24[2] = 0;\n              *(undefined2 *)(local_24 + 3) = 0;\n              local_24[4] = 0;\n              iVar4 = 0;\n            }\n            else {\n              iVar4 = local_24[1];\n            }\n            local_dc = local_e8;\n            local_e4 = puVar5;\n          } while (local_e8 != iVar4);\n          *param_12 = 1;\n          cVar1 = local_f1;\n        }\n      }\n    }\n    else {\n      cVar1 = local_58;\n      if (local_58 != '\0') {\n        *(int *)(puVar7 + -0xc) = param_10;\n        *(char **)(puVar7 + -0x10) = param_9;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc84;\n        FUN_00142200();\n        *(undefined1 **)(puVar7 + -0xc) = param_11;\n        *(int *)(puVar7 + -0x10) = param_8;\n        *(char **)(puVar7 + -0x14) = param_9;\n        *(int *)(puVar7 + -0x18) = param_7;\n        *(undefined4 *)(puVar7 + -0x1c) = param_5;\n        *(int *)(puVar7 + -0x20) = param_4;\n        *(int *)(puVar7 + -0x24) = param_3;\n        *(int *)(puVar7 + -0x28) = param_2;\n        *(int *)(puVar7 + -0x2c) = param_6;\n        *(undefined4 *)(puVar7 + -0x30) = param_1;\n        *(undefined4 *)(puVar7 + -0x34) = 0x16dca7;\n        FUN_00142290();\n        cVar1 = local_f1;\n      }\n    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      if (((cVar1 == '\0') && (*(char *)(*(int *)(param_3 + 4) + 0xac) != '\0')) &&\n         (*(char *)(param_3 + 0x1c4) != '\0')) {\n        uVar2 = *(undefined4 *)(param_10 + 0x1c);\n        *(undefined ***)(puVar7 + -0x10) = local_d8 + -0x3d6c8;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc5d;\n        uVar6 = gettext();\n        *(undefined4 *)(puVar7 + -0xc) = uVar2;\n        *(undefined4 *)(puVar7 + -0x10) = uVar6;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc66;\n        FUN_000654b0();\n      }\n      cVar1 = local_f1;\n      if (local_24 != (int *)0x0) {\n        local_e4 = (undefined1 *)0x0;\n        iVar4 = local_24[1];\n        local_dc = *local_24;\n        if (iVar4 != local_dc) {\n          local_ec = local_d8 + -0x289c;\n          do {\n            local_e8 = local_dc + 0x5c;\n            puVar5 = param_11;\n            if (local_e8 != iVar4) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;\n              puVar5 = (undefined1 *)FUN_001e5200();\n              *puVar5 = 1;\n              *(undefined4 *)(puVar5 + 8) = 0;\n              *(undefined4 *)(puVar5 + 0xc) = 0;\n              *(undefined4 *)(puVar5 + 0x10) = 0;\n              *(undefined4 *)(puVar5 + 4) = 1;\n            }\n            *(undefined4 *)(puVar7 + -0x10) = 0x50;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16db2d;\n            piVar3 = (int *)FUN_001e5200();\n            piVar3[1] = 0;\n            piVar3[2] = (int)(piVar3 + 4);\n            piVar3[3] = 0;\n            *piVar3 = (int)local_ec;\n            piVar3[0xc] = param_4;\n            piVar3[9] = param_6;\n            piVar3[0xe] = param_7;\n            piVar3[10] = param_2;\n            piVar3[0x12] = (int)local_e4;\n            piVar3[0xb] = param_3;\n            *(undefined1 *)(piVar3 + 4) = 0;\n            *(undefined1 *)(piVar3 + 8) = 0;\n            piVar3[0xd] = 0;\n            piVar3[0xf] = local_dc;\n            piVar3[0x10] = param_8;\n            piVar3[0x11] = 0;\n            piVar3[0x13] = (int)puVar5;\n            *(int **)(puVar7 + -0xc) = piVar3;\n            *(undefined4 *)(puVar7 + -0x10) = param_1;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16dba5;\n            FUN_001906c0();\n            if (local_24 == (int *)0x0) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;\n              local_24 = (int *)FUN_001e5200();\n              *local_24 = 0;\n              local_24[1] = 0;\n              local_24[2] = 0;\n              *(undefined2 *)(local_24 + 3) = 0;\n              local_24[4] = 0;\n              iVar4 = 0;\n            }\n            else {\n              iVar4 = local_24[1];\n            }\n            local_dc = local_e8;\n            local_e4 = puVar5;\n          } while (local_e8 != iVar4);\n          *param_12 = 1;\n          cVar1 = local_f1;\n        }\n      }\n    }" { (if_statement "if (((cVar1 == '\0') && (*(char *)(*(int *)(param_3 + 4) + 0xac) != '\0')) &&\n         (*(char *)(param_3 + 0x1c4) != '\0')) {\n        uVar2 = *(undefined4 *)(param_10 + 0x1c);\n        *(undefined ***)(puVar7 + -0x10) = local_d8 + -0x3d6c8;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc5d;\n        uVar6 = gettext();\n        *(undefined4 *)(puVar7 + -0xc) = uVar2;\n        *(undefined4 *)(puVar7 + -0x10) = uVar6;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc66;\n        FUN_000654b0();\n      }" if (parenthesized_expression "(((cVar1 == '\0') && (*(char *)(*(int *)(param_3 + 4) + 0xac) != '\0')) &&\n         (*(char *)(param_3 + 0x1c4) != '\0'))" ( (binary_expression "((cVar1 == '\0') && (*(char *)(*(int *)(param_3 + 4) + 0xac) != '\0')) &&\n         (*(char *)(param_3 + 0x1c4) != '\0')" (parenthesized_expression "((cVar1 == '\0') && (*(char *)(*(int *)(param_3 + 4) + 0xac) != '\0'))" ( (binary_expression "(cVar1 == '\0') && (*(char *)(*(int *)(param_3 + 4) + 0xac) != '\0')" (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(*(int *)(param_3 + 4) + 0xac) != '\0')" ( (binary_expression "*(char *)(*(int *)(param_3 + 4) + 0xac) != '\0'" (pointer_expression "*(char *)(*(int *)(param_3 + 4) + 0xac)" * (cast_expression "(char *)(*(int *)(param_3 + 4) + 0xac)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_3 + 4) + 0xac)" ( (binary_expression "*(int *)(param_3 + 4) + 0xac" (pointer_expression "*(int *)(param_3 + 4)" * (cast_expression "(int *)(param_3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(*(char *)(param_3 + 0x1c4) != '\0')" ( (binary_expression "*(char *)(param_3 + 0x1c4) != '\0'" (pointer_expression "*(char *)(param_3 + 0x1c4)" * (cast_expression "(char *)(param_3 + 0x1c4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x1c4)" ( (binary_expression "param_3 + 0x1c4" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        uVar2 = *(undefined4 *)(param_10 + 0x1c);\n        *(undefined ***)(puVar7 + -0x10) = local_d8 + -0x3d6c8;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc5d;\n        uVar6 = gettext();\n        *(undefined4 *)(puVar7 + -0xc) = uVar2;\n        *(undefined4 *)(puVar7 + -0x10) = uVar6;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc66;\n        FUN_000654b0();\n      }" { (expression_statement "uVar2 = *(undefined4 *)(param_10 + 0x1c);" (assignment_expression "uVar2 = *(undefined4 *)(param_10 + 0x1c)" identifier = (pointer_expression "*(undefined4 *)(param_10 + 0x1c)" * (cast_expression "(undefined4 *)(param_10 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_10 + 0x1c)" ( (binary_expression "param_10 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined ***)(puVar7 + -0x10) = local_d8 + -0x3d6c8;" (assignment_expression "*(undefined ***)(puVar7 + -0x10) = local_d8 + -0x3d6c8" (pointer_expression "*(undefined ***)(puVar7 + -0x10)" * (cast_expression "(undefined ***)(puVar7 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar7 + -0x10)" ( (binary_expression "puVar7 + -0x10" identifier + number_literal) )))) = (binary_expression "local_d8 + -0x3d6c8" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16dc5d;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16dc5d" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" * (cast_expression "(undefined4 *)(puVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x14)" ( (binary_expression "puVar7 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar6 = gettext();" (assignment_expression "uVar6 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar7 + -0xc) = uVar2;" (assignment_expression "*(undefined4 *)(puVar7 + -0xc) = uVar2" (pointer_expression "*(undefined4 *)(puVar7 + -0xc)" * (cast_expression "(undefined4 *)(puVar7 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0xc)" ( (binary_expression "puVar7 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x10) = uVar6;" (assignment_expression "*(undefined4 *)(puVar7 + -0x10) = uVar6" (pointer_expression "*(undefined4 *)(puVar7 + -0x10)" * (cast_expression "(undefined4 *)(puVar7 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x10)" ( (binary_expression "puVar7 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16dc66;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16dc66" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" * (cast_expression "(undefined4 *)(puVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x14)" ( (binary_expression "puVar7 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000654b0();" (call_expression "FUN_000654b0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "cVar1 = local_f1;" (assignment_expression "cVar1 = local_f1" identifier = identifier) ;) (if_statement "if (local_24 != (int *)0x0) {\n        local_e4 = (undefined1 *)0x0;\n        iVar4 = local_24[1];\n        local_dc = *local_24;\n        if (iVar4 != local_dc) {\n          local_ec = local_d8 + -0x289c;\n          do {\n            local_e8 = local_dc + 0x5c;\n            puVar5 = param_11;\n            if (local_e8 != iVar4) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;\n              puVar5 = (undefined1 *)FUN_001e5200();\n              *puVar5 = 1;\n              *(undefined4 *)(puVar5 + 8) = 0;\n              *(undefined4 *)(puVar5 + 0xc) = 0;\n              *(undefined4 *)(puVar5 + 0x10) = 0;\n              *(undefined4 *)(puVar5 + 4) = 1;\n            }\n            *(undefined4 *)(puVar7 + -0x10) = 0x50;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16db2d;\n            piVar3 = (int *)FUN_001e5200();\n            piVar3[1] = 0;\n            piVar3[2] = (int)(piVar3 + 4);\n            piVar3[3] = 0;\n            *piVar3 = (int)local_ec;\n            piVar3[0xc] = param_4;\n            piVar3[9] = param_6;\n            piVar3[0xe] = param_7;\n            piVar3[10] = param_2;\n            piVar3[0x12] = (int)local_e4;\n            piVar3[0xb] = param_3;\n            *(undefined1 *)(piVar3 + 4) = 0;\n            *(undefined1 *)(piVar3 + 8) = 0;\n            piVar3[0xd] = 0;\n            piVar3[0xf] = local_dc;\n            piVar3[0x10] = param_8;\n            piVar3[0x11] = 0;\n            piVar3[0x13] = (int)puVar5;\n            *(int **)(puVar7 + -0xc) = piVar3;\n            *(undefined4 *)(puVar7 + -0x10) = param_1;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16dba5;\n            FUN_001906c0();\n            if (local_24 == (int *)0x0) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;\n              local_24 = (int *)FUN_001e5200();\n              *local_24 = 0;\n              local_24[1] = 0;\n              local_24[2] = 0;\n              *(undefined2 *)(local_24 + 3) = 0;\n              local_24[4] = 0;\n              iVar4 = 0;\n            }\n            else {\n              iVar4 = local_24[1];\n            }\n            local_dc = local_e8;\n            local_e4 = puVar5;\n          } while (local_e8 != iVar4);\n          *param_12 = 1;\n          cVar1 = local_f1;\n        }\n      }" if (parenthesized_expression "(local_24 != (int *)0x0)" ( (binary_expression "local_24 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_e4 = (undefined1 *)0x0;\n        iVar4 = local_24[1];\n        local_dc = *local_24;\n        if (iVar4 != local_dc) {\n          local_ec = local_d8 + -0x289c;\n          do {\n            local_e8 = local_dc + 0x5c;\n            puVar5 = param_11;\n            if (local_e8 != iVar4) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;\n              puVar5 = (undefined1 *)FUN_001e5200();\n              *puVar5 = 1;\n              *(undefined4 *)(puVar5 + 8) = 0;\n              *(undefined4 *)(puVar5 + 0xc) = 0;\n              *(undefined4 *)(puVar5 + 0x10) = 0;\n              *(undefined4 *)(puVar5 + 4) = 1;\n            }\n            *(undefined4 *)(puVar7 + -0x10) = 0x50;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16db2d;\n            piVar3 = (int *)FUN_001e5200();\n            piVar3[1] = 0;\n            piVar3[2] = (int)(piVar3 + 4);\n            piVar3[3] = 0;\n            *piVar3 = (int)local_ec;\n            piVar3[0xc] = param_4;\n            piVar3[9] = param_6;\n            piVar3[0xe] = param_7;\n            piVar3[10] = param_2;\n            piVar3[0x12] = (int)local_e4;\n            piVar3[0xb] = param_3;\n            *(undefined1 *)(piVar3 + 4) = 0;\n            *(undefined1 *)(piVar3 + 8) = 0;\n            piVar3[0xd] = 0;\n            piVar3[0xf] = local_dc;\n            piVar3[0x10] = param_8;\n            piVar3[0x11] = 0;\n            piVar3[0x13] = (int)puVar5;\n            *(int **)(puVar7 + -0xc) = piVar3;\n            *(undefined4 *)(puVar7 + -0x10) = param_1;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16dba5;\n            FUN_001906c0();\n            if (local_24 == (int *)0x0) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;\n              local_24 = (int *)FUN_001e5200();\n              *local_24 = 0;\n              local_24[1] = 0;\n              local_24[2] = 0;\n              *(undefined2 *)(local_24 + 3) = 0;\n              local_24[4] = 0;\n              iVar4 = 0;\n            }\n            else {\n              iVar4 = local_24[1];\n            }\n            local_dc = local_e8;\n            local_e4 = puVar5;\n          } while (local_e8 != iVar4);\n          *param_12 = 1;\n          cVar1 = local_f1;\n        }\n      }" { (expression_statement "local_e4 = (undefined1 *)0x0;" (assignment_expression "local_e4 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar4 = local_24[1];" (assignment_expression "iVar4 = local_24[1]" identifier = (subscript_expression "local_24[1]" identifier [ number_literal ])) ;) (expression_statement "local_dc = *local_24;" (assignment_expression "local_dc = *local_24" identifier = (pointer_expression "*local_24" * identifier)) ;) (if_statement "if (iVar4 != local_dc) {\n          local_ec = local_d8 + -0x289c;\n          do {\n            local_e8 = local_dc + 0x5c;\n            puVar5 = param_11;\n            if (local_e8 != iVar4) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;\n              puVar5 = (undefined1 *)FUN_001e5200();\n              *puVar5 = 1;\n              *(undefined4 *)(puVar5 + 8) = 0;\n              *(undefined4 *)(puVar5 + 0xc) = 0;\n              *(undefined4 *)(puVar5 + 0x10) = 0;\n              *(undefined4 *)(puVar5 + 4) = 1;\n            }\n            *(undefined4 *)(puVar7 + -0x10) = 0x50;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16db2d;\n            piVar3 = (int *)FUN_001e5200();\n            piVar3[1] = 0;\n            piVar3[2] = (int)(piVar3 + 4);\n            piVar3[3] = 0;\n            *piVar3 = (int)local_ec;\n            piVar3[0xc] = param_4;\n            piVar3[9] = param_6;\n            piVar3[0xe] = param_7;\n            piVar3[10] = param_2;\n            piVar3[0x12] = (int)local_e4;\n            piVar3[0xb] = param_3;\n            *(undefined1 *)(piVar3 + 4) = 0;\n            *(undefined1 *)(piVar3 + 8) = 0;\n            piVar3[0xd] = 0;\n            piVar3[0xf] = local_dc;\n            piVar3[0x10] = param_8;\n            piVar3[0x11] = 0;\n            piVar3[0x13] = (int)puVar5;\n            *(int **)(puVar7 + -0xc) = piVar3;\n            *(undefined4 *)(puVar7 + -0x10) = param_1;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16dba5;\n            FUN_001906c0();\n            if (local_24 == (int *)0x0) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;\n              local_24 = (int *)FUN_001e5200();\n              *local_24 = 0;\n              local_24[1] = 0;\n              local_24[2] = 0;\n              *(undefined2 *)(local_24 + 3) = 0;\n              local_24[4] = 0;\n              iVar4 = 0;\n            }\n            else {\n              iVar4 = local_24[1];\n            }\n            local_dc = local_e8;\n            local_e4 = puVar5;\n          } while (local_e8 != iVar4);\n          *param_12 = 1;\n          cVar1 = local_f1;\n        }" if (parenthesized_expression "(iVar4 != local_dc)" ( (binary_expression "iVar4 != local_dc" identifier != identifier) )) (compound_statement "{\n          local_ec = local_d8 + -0x289c;\n          do {\n            local_e8 = local_dc + 0x5c;\n            puVar5 = param_11;\n            if (local_e8 != iVar4) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;\n              puVar5 = (undefined1 *)FUN_001e5200();\n              *puVar5 = 1;\n              *(undefined4 *)(puVar5 + 8) = 0;\n              *(undefined4 *)(puVar5 + 0xc) = 0;\n              *(undefined4 *)(puVar5 + 0x10) = 0;\n              *(undefined4 *)(puVar5 + 4) = 1;\n            }\n            *(undefined4 *)(puVar7 + -0x10) = 0x50;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16db2d;\n            piVar3 = (int *)FUN_001e5200();\n            piVar3[1] = 0;\n            piVar3[2] = (int)(piVar3 + 4);\n            piVar3[3] = 0;\n            *piVar3 = (int)local_ec;\n            piVar3[0xc] = param_4;\n            piVar3[9] = param_6;\n            piVar3[0xe] = param_7;\n            piVar3[10] = param_2;\n            piVar3[0x12] = (int)local_e4;\n            piVar3[0xb] = param_3;\n            *(undefined1 *)(piVar3 + 4) = 0;\n            *(undefined1 *)(piVar3 + 8) = 0;\n            piVar3[0xd] = 0;\n            piVar3[0xf] = local_dc;\n            piVar3[0x10] = param_8;\n            piVar3[0x11] = 0;\n            piVar3[0x13] = (int)puVar5;\n            *(int **)(puVar7 + -0xc) = piVar3;\n            *(undefined4 *)(puVar7 + -0x10) = param_1;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16dba5;\n            FUN_001906c0();\n            if (local_24 == (int *)0x0) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;\n              local_24 = (int *)FUN_001e5200();\n              *local_24 = 0;\n              local_24[1] = 0;\n              local_24[2] = 0;\n              *(undefined2 *)(local_24 + 3) = 0;\n              local_24[4] = 0;\n              iVar4 = 0;\n            }\n            else {\n              iVar4 = local_24[1];\n            }\n            local_dc = local_e8;\n            local_e4 = puVar5;\n          } while (local_e8 != iVar4);\n          *param_12 = 1;\n          cVar1 = local_f1;\n        }" { (expression_statement "local_ec = local_d8 + -0x289c;" (assignment_expression "local_ec = local_d8 + -0x289c" identifier = (binary_expression "local_d8 + -0x289c" identifier + number_literal)) ;) (do_statement "do {\n            local_e8 = local_dc + 0x5c;\n            puVar5 = param_11;\n            if (local_e8 != iVar4) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;\n              puVar5 = (undefined1 *)FUN_001e5200();\n              *puVar5 = 1;\n              *(undefined4 *)(puVar5 + 8) = 0;\n              *(undefined4 *)(puVar5 + 0xc) = 0;\n              *(undefined4 *)(puVar5 + 0x10) = 0;\n              *(undefined4 *)(puVar5 + 4) = 1;\n            }\n            *(undefined4 *)(puVar7 + -0x10) = 0x50;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16db2d;\n            piVar3 = (int *)FUN_001e5200();\n            piVar3[1] = 0;\n            piVar3[2] = (int)(piVar3 + 4);\n            piVar3[3] = 0;\n            *piVar3 = (int)local_ec;\n            piVar3[0xc] = param_4;\n            piVar3[9] = param_6;\n            piVar3[0xe] = param_7;\n            piVar3[10] = param_2;\n            piVar3[0x12] = (int)local_e4;\n            piVar3[0xb] = param_3;\n            *(undefined1 *)(piVar3 + 4) = 0;\n            *(undefined1 *)(piVar3 + 8) = 0;\n            piVar3[0xd] = 0;\n            piVar3[0xf] = local_dc;\n            piVar3[0x10] = param_8;\n            piVar3[0x11] = 0;\n            piVar3[0x13] = (int)puVar5;\n            *(int **)(puVar7 + -0xc) = piVar3;\n            *(undefined4 *)(puVar7 + -0x10) = param_1;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16dba5;\n            FUN_001906c0();\n            if (local_24 == (int *)0x0) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;\n              local_24 = (int *)FUN_001e5200();\n              *local_24 = 0;\n              local_24[1] = 0;\n              local_24[2] = 0;\n              *(undefined2 *)(local_24 + 3) = 0;\n              local_24[4] = 0;\n              iVar4 = 0;\n            }\n            else {\n              iVar4 = local_24[1];\n            }\n            local_dc = local_e8;\n            local_e4 = puVar5;\n          } while (local_e8 != iVar4);" do (compound_statement "{\n            local_e8 = local_dc + 0x5c;\n            puVar5 = param_11;\n            if (local_e8 != iVar4) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;\n              puVar5 = (undefined1 *)FUN_001e5200();\n              *puVar5 = 1;\n              *(undefined4 *)(puVar5 + 8) = 0;\n              *(undefined4 *)(puVar5 + 0xc) = 0;\n              *(undefined4 *)(puVar5 + 0x10) = 0;\n              *(undefined4 *)(puVar5 + 4) = 1;\n            }\n            *(undefined4 *)(puVar7 + -0x10) = 0x50;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16db2d;\n            piVar3 = (int *)FUN_001e5200();\n            piVar3[1] = 0;\n            piVar3[2] = (int)(piVar3 + 4);\n            piVar3[3] = 0;\n            *piVar3 = (int)local_ec;\n            piVar3[0xc] = param_4;\n            piVar3[9] = param_6;\n            piVar3[0xe] = param_7;\n            piVar3[10] = param_2;\n            piVar3[0x12] = (int)local_e4;\n            piVar3[0xb] = param_3;\n            *(undefined1 *)(piVar3 + 4) = 0;\n            *(undefined1 *)(piVar3 + 8) = 0;\n            piVar3[0xd] = 0;\n            piVar3[0xf] = local_dc;\n            piVar3[0x10] = param_8;\n            piVar3[0x11] = 0;\n            piVar3[0x13] = (int)puVar5;\n            *(int **)(puVar7 + -0xc) = piVar3;\n            *(undefined4 *)(puVar7 + -0x10) = param_1;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16dba5;\n            FUN_001906c0();\n            if (local_24 == (int *)0x0) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;\n              local_24 = (int *)FUN_001e5200();\n              *local_24 = 0;\n              local_24[1] = 0;\n              local_24[2] = 0;\n              *(undefined2 *)(local_24 + 3) = 0;\n              local_24[4] = 0;\n              iVar4 = 0;\n            }\n            else {\n              iVar4 = local_24[1];\n            }\n            local_dc = local_e8;\n            local_e4 = puVar5;\n          }" { (expression_statement "local_e8 = local_dc + 0x5c;" (assignment_expression "local_e8 = local_dc + 0x5c" identifier = (binary_expression "local_dc + 0x5c" identifier + number_literal)) ;) (expression_statement "puVar5 = param_11;" (assignment_expression "puVar5 = param_11" identifier = identifier) ;) (if_statement "if (local_e8 != iVar4) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;\n              puVar5 = (undefined1 *)FUN_001e5200();\n              *puVar5 = 1;\n              *(undefined4 *)(puVar5 + 8) = 0;\n              *(undefined4 *)(puVar5 + 0xc) = 0;\n              *(undefined4 *)(puVar5 + 0x10) = 0;\n              *(undefined4 *)(puVar5 + 4) = 1;\n            }" if (parenthesized_expression "(local_e8 != iVar4)" ( (binary_expression "local_e8 != iVar4" identifier != identifier) )) (compound_statement "{\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;\n              puVar5 = (undefined1 *)FUN_001e5200();\n              *puVar5 = 1;\n              *(undefined4 *)(puVar5 + 8) = 0;\n              *(undefined4 *)(puVar5 + 0xc) = 0;\n              *(undefined4 *)(puVar5 + 0x10) = 0;\n              *(undefined4 *)(puVar5 + 4) = 1;\n            }" { (expression_statement "*(undefined4 *)(puVar7 + -0x10) = 0x14;" (assignment_expression "*(undefined4 *)(puVar7 + -0x10) = 0x14" (pointer_expression "*(undefined4 *)(puVar7 + -0x10)" * (cast_expression "(undefined4 *)(puVar7 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x10)" ( (binary_expression "puVar7 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16daf7;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16daf7" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" * (cast_expression "(undefined4 *)(puVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x14)" ( (binary_expression "puVar7 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar5 = (undefined1 *)FUN_001e5200();" (assignment_expression "puVar5 = (undefined1 *)FUN_001e5200()" identifier = (cast_expression "(undefined1 *)FUN_001e5200()" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e5200()" identifier (argument_list "()" ( ))))) ;) (expression_statement "*puVar5 = 1;" (assignment_expression "*puVar5 = 1" (pointer_expression "*puVar5" * identifier) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar5 + 8) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + 8) = 0" (pointer_expression "*(undefined4 *)(puVar5 + 8)" * (cast_expression "(undefined4 *)(puVar5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 8)" ( (binary_expression "puVar5 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(puVar5 + 0xc)" * (cast_expression "(undefined4 *)(puVar5 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0xc)" ( (binary_expression "puVar5 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar5 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + 0x10) = 0" (pointer_expression "*(undefined4 *)(puVar5 + 0x10)" * (cast_expression "(undefined4 *)(puVar5 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x10)" ( (binary_expression "puVar5 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar5 + 4) = 1;" (assignment_expression "*(undefined4 *)(puVar5 + 4) = 1" (pointer_expression "*(undefined4 *)(puVar5 + 4)" * (cast_expression "(undefined4 *)(puVar5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 4)" ( (binary_expression "puVar5 + 4" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "*(undefined4 *)(puVar7 + -0x10) = 0x50;" (assignment_expression "*(undefined4 *)(puVar7 + -0x10) = 0x50" (pointer_expression "*(undefined4 *)(puVar7 + -0x10)" * (cast_expression "(undefined4 *)(puVar7 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x10)" ( (binary_expression "puVar7 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16db2d;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16db2d" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" * (cast_expression "(undefined4 *)(puVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x14)" ( (binary_expression "puVar7 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar3 = (int *)FUN_001e5200();" (assignment_expression "piVar3 = (int *)FUN_001e5200()" identifier = (cast_expression "(int *)FUN_001e5200()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e5200()" identifier (argument_list "()" ( ))))) ;) (expression_statement "piVar3[1] = 0;" (assignment_expression "piVar3[1] = 0" (subscript_expression "piVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar3[2] = (int)(piVar3 + 4);" (assignment_expression "piVar3[2] = (int)(piVar3 + 4)" (subscript_expression "piVar3[2]" identifier [ number_literal ]) = (cast_expression "(int)(piVar3 + 4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar3 + 4)" ( (binary_expression "piVar3 + 4" identifier + number_literal) )))) ;) (expression_statement "piVar3[3] = 0;" (assignment_expression "piVar3[3] = 0" (subscript_expression "piVar3[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*piVar3 = (int)local_ec;" (assignment_expression "*piVar3 = (int)local_ec" (pointer_expression "*piVar3" * identifier) = (cast_expression "(int)local_ec" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar3[0xc] = param_4;" (assignment_expression "piVar3[0xc] = param_4" (subscript_expression "piVar3[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar3[9] = param_6;" (assignment_expression "piVar3[9] = param_6" (subscript_expression "piVar3[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar3[0xe] = param_7;" (assignment_expression "piVar3[0xe] = param_7" (subscript_expression "piVar3[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar3[10] = param_2;" (assignment_expression "piVar3[10] = param_2" (subscript_expression "piVar3[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar3[0x12] = (int)local_e4;" (assignment_expression "piVar3[0x12] = (int)local_e4" (subscript_expression "piVar3[0x12]" identifier [ number_literal ]) = (cast_expression "(int)local_e4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar3[0xb] = param_3;" (assignment_expression "piVar3[0xb] = param_3" (subscript_expression "piVar3[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(piVar3 + 4) = 0;" (assignment_expression "*(undefined1 *)(piVar3 + 4) = 0" (pointer_expression "*(undefined1 *)(piVar3 + 4)" * (cast_expression "(undefined1 *)(piVar3 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 4)" ( (binary_expression "piVar3 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(piVar3 + 8) = 0;" (assignment_expression "*(undefined1 *)(piVar3 + 8) = 0" (pointer_expression "*(undefined1 *)(piVar3 + 8)" * (cast_expression "(undefined1 *)(piVar3 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 8)" ( (binary_expression "piVar3 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar3[0xd] = 0;" (assignment_expression "piVar3[0xd] = 0" (subscript_expression "piVar3[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar3[0xf] = local_dc;" (assignment_expression "piVar3[0xf] = local_dc" (subscript_expression "piVar3[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar3[0x10] = param_8;" (assignment_expression "piVar3[0x10] = param_8" (subscript_expression "piVar3[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar3[0x11] = 0;" (assignment_expression "piVar3[0x11] = 0" (subscript_expression "piVar3[0x11]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar3[0x13] = (int)puVar5;" (assignment_expression "piVar3[0x13] = (int)puVar5" (subscript_expression "piVar3[0x13]" identifier [ number_literal ]) = (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*(int **)(puVar7 + -0xc) = piVar3;" (assignment_expression "*(int **)(puVar7 + -0xc) = piVar3" (pointer_expression "*(int **)(puVar7 + -0xc)" * (cast_expression "(int **)(puVar7 + -0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + -0xc)" ( (binary_expression "puVar7 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x10) = param_1;" (assignment_expression "*(undefined4 *)(puVar7 + -0x10) = param_1" (pointer_expression "*(undefined4 *)(puVar7 + -0x10)" * (cast_expression "(undefined4 *)(puVar7 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x10)" ( (binary_expression "puVar7 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16dba5;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16dba5" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" * (cast_expression "(undefined4 *)(puVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x14)" ( (binary_expression "puVar7 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001906c0();" (call_expression "FUN_001906c0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (local_24 == (int *)0x0) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;\n              local_24 = (int *)FUN_001e5200();\n              *local_24 = 0;\n              local_24[1] = 0;\n              local_24[2] = 0;\n              *(undefined2 *)(local_24 + 3) = 0;\n              local_24[4] = 0;\n              iVar4 = 0;\n            }\n            else {\n              iVar4 = local_24[1];\n            }" if (parenthesized_expression "(local_24 == (int *)0x0)" ( (binary_expression "local_24 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;\n              local_24 = (int *)FUN_001e5200();\n              *local_24 = 0;\n              local_24[1] = 0;\n              local_24[2] = 0;\n              *(undefined2 *)(local_24 + 3) = 0;\n              local_24[4] = 0;\n              iVar4 = 0;\n            }" { (expression_statement "*(undefined4 *)(puVar7 + -0x10) = 0x14;" (assignment_expression "*(undefined4 *)(puVar7 + -0x10) = 0x14" (pointer_expression "*(undefined4 *)(puVar7 + -0x10)" * (cast_expression "(undefined4 *)(puVar7 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x10)" ( (binary_expression "puVar7 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16dc00;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16dc00" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" * (cast_expression "(undefined4 *)(puVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x14)" ( (binary_expression "puVar7 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_24 = (int *)FUN_001e5200();" (assignment_expression "local_24 = (int *)FUN_001e5200()" identifier = (cast_expression "(int *)FUN_001e5200()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e5200()" identifier (argument_list "()" ( ))))) ;) (expression_statement "*local_24 = 0;" (assignment_expression "*local_24 = 0" (pointer_expression "*local_24" * identifier) = number_literal) ;) (expression_statement "local_24[1] = 0;" (assignment_expression "local_24[1] = 0" (subscript_expression "local_24[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_24[2] = 0;" (assignment_expression "local_24[2] = 0" (subscript_expression "local_24[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined2 *)(local_24 + 3) = 0;" (assignment_expression "*(undefined2 *)(local_24 + 3) = 0" (pointer_expression "*(undefined2 *)(local_24 + 3)" * (cast_expression "(undefined2 *)(local_24 + 3)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_24 + 3)" ( (binary_expression "local_24 + 3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_24[4] = 0;" (assignment_expression "local_24[4] = 0" (subscript_expression "local_24[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n              iVar4 = local_24[1];\n            }" else (compound_statement "{\n              iVar4 = local_24[1];\n            }" { (expression_statement "iVar4 = local_24[1];" (assignment_expression "iVar4 = local_24[1]" identifier = (subscript_expression "local_24[1]" identifier [ number_literal ])) ;) }))) (expression_statement "local_dc = local_e8;" (assignment_expression "local_dc = local_e8" identifier = identifier) ;) (expression_statement "local_e4 = puVar5;" (assignment_expression "local_e4 = puVar5" identifier = identifier) ;) }) while (parenthesized_expression "(local_e8 != iVar4)" ( (binary_expression "local_e8 != iVar4" identifier != identifier) )) ;) (expression_statement "*param_12 = 1;" (assignment_expression "*param_12 = 1" (pointer_expression "*param_12" * identifier) = number_literal) ;) (expression_statement "cVar1 = local_f1;" (assignment_expression "cVar1 = local_f1" identifier = identifier) ;) })) })) }) (else_clause "else {\n      cVar1 = local_58;\n      if (local_58 != '\0') {\n        *(int *)(puVar7 + -0xc) = param_10;\n        *(char **)(puVar7 + -0x10) = param_9;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc84;\n        FUN_00142200();\n        *(undefined1 **)(puVar7 + -0xc) = param_11;\n        *(int *)(puVar7 + -0x10) = param_8;\n        *(char **)(puVar7 + -0x14) = param_9;\n        *(int *)(puVar7 + -0x18) = param_7;\n        *(undefined4 *)(puVar7 + -0x1c) = param_5;\n        *(int *)(puVar7 + -0x20) = param_4;\n        *(int *)(puVar7 + -0x24) = param_3;\n        *(int *)(puVar7 + -0x28) = param_2;\n        *(int *)(puVar7 + -0x2c) = param_6;\n        *(undefined4 *)(puVar7 + -0x30) = param_1;\n        *(undefined4 *)(puVar7 + -0x34) = 0x16dca7;\n        FUN_00142290();\n        cVar1 = local_f1;\n      }\n    }" else (compound_statement "{\n      cVar1 = local_58;\n      if (local_58 != '\0') {\n        *(int *)(puVar7 + -0xc) = param_10;\n        *(char **)(puVar7 + -0x10) = param_9;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc84;\n        FUN_00142200();\n        *(undefined1 **)(puVar7 + -0xc) = param_11;\n        *(int *)(puVar7 + -0x10) = param_8;\n        *(char **)(puVar7 + -0x14) = param_9;\n        *(int *)(puVar7 + -0x18) = param_7;\n        *(undefined4 *)(puVar7 + -0x1c) = param_5;\n        *(int *)(puVar7 + -0x20) = param_4;\n        *(int *)(puVar7 + -0x24) = param_3;\n        *(int *)(puVar7 + -0x28) = param_2;\n        *(int *)(puVar7 + -0x2c) = param_6;\n        *(undefined4 *)(puVar7 + -0x30) = param_1;\n        *(undefined4 *)(puVar7 + -0x34) = 0x16dca7;\n        FUN_00142290();\n        cVar1 = local_f1;\n      }\n    }" { (expression_statement "cVar1 = local_58;" (assignment_expression "cVar1 = local_58" identifier = identifier) ;) (if_statement "if (local_58 != '\0') {\n        *(int *)(puVar7 + -0xc) = param_10;\n        *(char **)(puVar7 + -0x10) = param_9;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc84;\n        FUN_00142200();\n        *(undefined1 **)(puVar7 + -0xc) = param_11;\n        *(int *)(puVar7 + -0x10) = param_8;\n        *(char **)(puVar7 + -0x14) = param_9;\n        *(int *)(puVar7 + -0x18) = param_7;\n        *(undefined4 *)(puVar7 + -0x1c) = param_5;\n        *(int *)(puVar7 + -0x20) = param_4;\n        *(int *)(puVar7 + -0x24) = param_3;\n        *(int *)(puVar7 + -0x28) = param_2;\n        *(int *)(puVar7 + -0x2c) = param_6;\n        *(undefined4 *)(puVar7 + -0x30) = param_1;\n        *(undefined4 *)(puVar7 + -0x34) = 0x16dca7;\n        FUN_00142290();\n        cVar1 = local_f1;\n      }" if (parenthesized_expression "(local_58 != '\0')" ( (binary_expression "local_58 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        *(int *)(puVar7 + -0xc) = param_10;\n        *(char **)(puVar7 + -0x10) = param_9;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc84;\n        FUN_00142200();\n        *(undefined1 **)(puVar7 + -0xc) = param_11;\n        *(int *)(puVar7 + -0x10) = param_8;\n        *(char **)(puVar7 + -0x14) = param_9;\n        *(int *)(puVar7 + -0x18) = param_7;\n        *(undefined4 *)(puVar7 + -0x1c) = param_5;\n        *(int *)(puVar7 + -0x20) = param_4;\n        *(int *)(puVar7 + -0x24) = param_3;\n        *(int *)(puVar7 + -0x28) = param_2;\n        *(int *)(puVar7 + -0x2c) = param_6;\n        *(undefined4 *)(puVar7 + -0x30) = param_1;\n        *(undefined4 *)(puVar7 + -0x34) = 0x16dca7;\n        FUN_00142290();\n        cVar1 = local_f1;\n      }" { (expression_statement "*(int *)(puVar7 + -0xc) = param_10;" (assignment_expression "*(int *)(puVar7 + -0xc) = param_10" (pointer_expression "*(int *)(puVar7 + -0xc)" * (cast_expression "(int *)(puVar7 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0xc)" ( (binary_expression "puVar7 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(puVar7 + -0x10) = param_9;" (assignment_expression "*(char **)(puVar7 + -0x10) = param_9" (pointer_expression "*(char **)(puVar7 + -0x10)" * (cast_expression "(char **)(puVar7 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + -0x10)" ( (binary_expression "puVar7 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16dc84;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16dc84" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" * (cast_expression "(undefined4 *)(puVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x14)" ( (binary_expression "puVar7 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00142200();" (call_expression "FUN_00142200()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined1 **)(puVar7 + -0xc) = param_11;" (assignment_expression "*(undefined1 **)(puVar7 + -0xc) = param_11" (pointer_expression "*(undefined1 **)(puVar7 + -0xc)" * (cast_expression "(undefined1 **)(puVar7 + -0xc)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + -0xc)" ( (binary_expression "puVar7 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar7 + -0x10) = param_8;" (assignment_expression "*(int *)(puVar7 + -0x10) = param_8" (pointer_expression "*(int *)(puVar7 + -0x10)" * (cast_expression "(int *)(puVar7 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x10)" ( (binary_expression "puVar7 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(puVar7 + -0x14) = param_9;" (assignment_expression "*(char **)(puVar7 + -0x14) = param_9" (pointer_expression "*(char **)(puVar7 + -0x14)" * (cast_expression "(char **)(puVar7 + -0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + -0x14)" ( (binary_expression "puVar7 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar7 + -0x18) = param_7;" (assignment_expression "*(int *)(puVar7 + -0x18) = param_7" (pointer_expression "*(int *)(puVar7 + -0x18)" * (cast_expression "(int *)(puVar7 + -0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x18)" ( (binary_expression "puVar7 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x1c) = param_5;" (assignment_expression "*(undefined4 *)(puVar7 + -0x1c) = param_5" (pointer_expression "*(undefined4 *)(puVar7 + -0x1c)" * (cast_expression "(undefined4 *)(puVar7 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x1c)" ( (binary_expression "puVar7 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar7 + -0x20) = param_4;" (assignment_expression "*(int *)(puVar7 + -0x20) = param_4" (pointer_expression "*(int *)(puVar7 + -0x20)" * (cast_expression "(int *)(puVar7 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x20)" ( (binary_expression "puVar7 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar7 + -0x24) = param_3;" (assignment_expression "*(int *)(puVar7 + -0x24) = param_3" (pointer_expression "*(int *)(puVar7 + -0x24)" * (cast_expression "(int *)(puVar7 + -0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x24)" ( (binary_expression "puVar7 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar7 + -0x28) = param_2;" (assignment_expression "*(int *)(puVar7 + -0x28) = param_2" (pointer_expression "*(int *)(puVar7 + -0x28)" * (cast_expression "(int *)(puVar7 + -0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x28)" ( (binary_expression "puVar7 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar7 + -0x2c) = param_6;" (assignment_expression "*(int *)(puVar7 + -0x2c) = param_6" (pointer_expression "*(int *)(puVar7 + -0x2c)" * (cast_expression "(int *)(puVar7 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x2c)" ( (binary_expression "puVar7 + -0x2c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x30) = param_1;" (assignment_expression "*(undefined4 *)(puVar7 + -0x30) = param_1" (pointer_expression "*(undefined4 *)(puVar7 + -0x30)" * (cast_expression "(undefined4 *)(puVar7 + -0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x30)" ( (binary_expression "puVar7 + -0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x34) = 0x16dca7;" (assignment_expression "*(undefined4 *)(puVar7 + -0x34) = 0x16dca7" (pointer_expression "*(undefined4 *)(puVar7 + -0x34)" * (cast_expression "(undefined4 *)(puVar7 + -0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x34)" ( (binary_expression "puVar7 + -0x34" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00142290();" (call_expression "FUN_00142290()" identifier (argument_list "()" ( ))) ;) (expression_statement "cVar1 = local_f1;" (assignment_expression "cVar1 = local_f1" identifier = identifier) ;) })) }))) (if_statement "if (local_3c[3] != 0) {\n      *(int *)(puVar7 + -0x10) = local_3c[3];\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da23;\n      FUN_001e6db0();\n    }" if (parenthesized_expression "(local_3c[3] != 0)" ( (binary_expression "local_3c[3] != 0" (subscript_expression "local_3c[3]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      *(int *)(puVar7 + -0x10) = local_3c[3];\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da23;\n      FUN_001e6db0();\n    }" { (expression_statement "*(int *)(puVar7 + -0x10) = local_3c[3];" (assignment_expression "*(int *)(puVar7 + -0x10) = local_3c[3]" (pointer_expression "*(int *)(puVar7 + -0x10)" * (cast_expression "(int *)(puVar7 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x10)" ( (binary_expression "puVar7 + -0x10" identifier + number_literal) )))) = (subscript_expression "local_3c[3]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16da23;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16da23" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" * (cast_expression "(undefined4 *)(puVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x14)" ( (binary_expression "puVar7 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (local_3c[0] != 0) {\n      *(int *)(puVar7 + -0x10) = local_3c[0];\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da3c;\n      FUN_001e6db0();\n    }" if (parenthesized_expression "(local_3c[0] != 0)" ( (binary_expression "local_3c[0] != 0" (subscript_expression "local_3c[0]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      *(int *)(puVar7 + -0x10) = local_3c[0];\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da3c;\n      FUN_001e6db0();\n    }" { (expression_statement "*(int *)(puVar7 + -0x10) = local_3c[0];" (assignment_expression "*(int *)(puVar7 + -0x10) = local_3c[0]" (pointer_expression "*(int *)(puVar7 + -0x10)" * (cast_expression "(int *)(puVar7 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x10)" ( (binary_expression "puVar7 + -0x10" identifier + number_literal) )))) = (subscript_expression "local_3c[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16da3c;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16da3c" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" * (cast_expression "(undefined4 *)(puVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x14)" ( (binary_expression "puVar7 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (local_bc != local_f0) {\n      *(undefined1 **)(puVar7 + -0x10) = local_bc;\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da5c;\n      FUN_001e6db0();\n    }" if (parenthesized_expression "(local_bc != local_f0)" ( (binary_expression "local_bc != local_f0" identifier != identifier) )) (compound_statement "{\n      *(undefined1 **)(puVar7 + -0x10) = local_bc;\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da5c;\n      FUN_001e6db0();\n    }" { (expression_statement "*(undefined1 **)(puVar7 + -0x10) = local_bc;" (assignment_expression "*(undefined1 **)(puVar7 + -0x10) = local_bc" (pointer_expression "*(undefined1 **)(puVar7 + -0x10)" * (cast_expression "(undefined1 **)(puVar7 + -0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + -0x10)" ( (binary_expression "puVar7 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16da5c;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16da5c" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" * (cast_expression "(undefined4 *)(puVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x14)" ( (binary_expression "puVar7 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return cVar1;" return identifier ;) })) (expression_statement "*(uint *)(puVar7 + -4) = (uint)local_5a;" (assignment_expression "*(uint *)(puVar7 + -4) = (uint)local_5a" (pointer_expression "*(uint *)(puVar7 + -4)" * (cast_expression "(uint *)(puVar7 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -4)" ( (binary_expression "puVar7 + -4" identifier + number_literal) )))) = (cast_expression "(uint)local_5a" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(undefined ***)(puVar7 + -8) = local_d8 + -0x3d7a0;" (assignment_expression "*(undefined ***)(puVar7 + -8) = local_d8 + -0x3d7a0" (pointer_expression "*(undefined ***)(puVar7 + -8)" * (cast_expression "(undefined ***)(puVar7 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar7 + -8)" ( (binary_expression "puVar7 + -8" identifier + number_literal) )))) = (binary_expression "local_d8 + -0x3d7a0" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar7 + -0xc) = 0x828;" (assignment_expression "*(undefined4 *)(puVar7 + -0xc) = 0x828" (pointer_expression "*(undefined4 *)(puVar7 + -0xc)" * (cast_expression "(undefined4 *)(puVar7 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0xc)" ( (binary_expression "puVar7 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar7 + -0x10) = (int)local_d8 + -0x106ebb;" (assignment_expression "*(int *)(puVar7 + -0x10) = (int)local_d8 + -0x106ebb" (pointer_expression "*(int *)(puVar7 + -0x10)" * (cast_expression "(int *)(puVar7 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x10)" ( (binary_expression "puVar7 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_d8 + -0x106ebb" (cast_expression "(int)local_d8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment comment (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16dcce;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16dcce" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" * (cast_expression "(undefined4 *)(puVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x14)" ( (binary_expression "puVar7 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00069d00();" (call_expression "FUN_00069d00()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Enum "DT": Some values do not have unique names */\n\nbool gold::read_input_script\n               (Workqueue *workqueue,Symbol_table *symtab,Layout *layout,Dirsearch *dirsearch,\n               int dirindex,Input_objects *input_objects,Mapfile *mapfile,Input_group *input_group,\n               Input_argument *input_argument,Input_file *input_file,Task_token *next_blocker,\n               bool *used_next_blocker)\n\n{\n  bool bVar1;\n  bool bVar2;\n  char cVar3;\n  uint arg_serial;\n  pointer pcVar4;\n  Timespec mtime;\n  Incremental_inputs *script;\n  int iVar5;\n  pointer pIVar6;\n  Task *pTVar7;\n  Task *t;\n  char *format;\n  pointer pIVar8;\n  Task *local_e4;\n  pointer local_dc;\n  time_t local_d4;\n  int local_d0;\n  Language local_c0;\n  string input_string;\n  Lex lex;\n  Parser_closure closure;\n  \n  *used_next_blocker = false;\n  input_string._M_string_length = 0;\n  input_string.field_2._M_local_buf[0] = '\0';\n  input_string._M_dataplus._M_p = (pointer)&input_string.field_2;\n                    /* try { // try from 0016d793 to 0016d86d has its CatchHandler @ 0016dced */\n  Lex::read_file(input_file,&input_string);\n  lex.mode_ = LINKER_SCRIPT;\n  lex.first_token_ = 0x163;\n  lex.input_string_ = input_string._M_dataplus._M_p;\n  lex.current_ = input_string._M_dataplus._M_p;\n  lex.linestart_ = input_string._M_dataplus._M_p;\n  lex.input_length_ = input_string._M_string_length;\n  script = layout->incremental_inputs_;\n  lex.token_.classification_ = TOKEN_INVALID;\n  lex.token_.value_ = (char *)0x0;\n  lex.token_.value_length_ = 0;\n  lex.token_.opcode_ = 0;\n  lex.token_.lineno_ = 0;\n  lex.token_.charpos_ = 0;\n  lex.lineno_ = 1;\n  if (script != (Incremental_inputs *)0x0) {\n    File_read::get_mtime(&input_file->file_);\n    if (input_argument->is_file_ == false) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/options.h",0x828,"file");\n    }\n    arg_serial = (input_argument->file_).arg_serial_;\n    script = (Incremental_inputs *)operator_new(0x20);\n    (((string *)&script->inputs_)->_M_dataplus)._M_p =\n         (pointer)&((string *)&script->inputs_)->field_2;\n    pcVar4 = (input_file->file_).name_._M_dataplus._M_p;\n                    /* try { // try from 0016d888 to 0016d88c has its CatchHandler @ 0016dcfb */\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char*>((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)script,\n                        pcVar4,pcVar4 + (input_file->file_).name_._M_string_length,0);\n    *(undefined4 *)((int)&(script->command_line_).field_2 + 4) = 0;\n    *(undefined4 *)((int)&(script->command_line_).field_2 + 8) = 0;\n    mtime.nanoseconds = local_d0;\n    mtime.seconds = local_d4;\n                    /* try { // try from 0016d8be to 0016d8d6 has its CatchHandler @ 0016dced */\n    Incremental_inputs::report_script\n              (layout->incremental_inputs_,(Script_info *)script,arg_serial,mtime);\n  }\n  closure.skip_on_incompatible_target_ = Input_file::will_search_for(input_file);\n  closure.script_options_ = layout->script_options_;\n  closure.in_group_ = input_group != (Input_group *)0x0;\n  closure.is_in_sysroot_ = input_file->is_in_sysroot_;\n  bVar1 = input_argument->is_file_;\n  if (bVar1 != false) {\n    closure.version_script_info_ = &(closure.script_options_)->version_script_info_;\n    closure.filename_ = (input_file->file_).name_._M_dataplus._M_p;\n    closure.parsing_defsym_ = false;\n    closure.posdep_options_.as_needed_ = (input_argument->file_).options_.as_needed_;\n    closure.posdep_options_.Bdynamic_ = (input_argument->file_).options_.Bdynamic_;\n    closure.posdep_options_._2_2_ = *(undefined2 *)&(input_argument->file_).options_.field_0x2;\n    closure.found_incompatible_target_ = false;\n    closure.posdep_options_.format_enum_ = (input_argument->file_).options_.format_enum_;\n    closure.command_line_ = (Command_line *)0x0;\n    closure.posdep_options_.whole_archive_ = (input_argument->file_).options_.whole_archive_;\n    closure.posdep_options_._9_3_ = *(undefined3 *)&(input_argument->file_).options_.field_0x9;\n    closure.posdep_options_.incremental_disposition_ =\n         (input_argument->file_).options_.incremental_disposition_;\n    closure.lineno_ = 0;\n    closure.charpos_ = 0;\n    closure.lex_ = &lex;\n    closure.lex_mode_stack_.super__Vector_base<gold::Lex::Mode,_std::allocator<gold::Lex::Mode>_>.\n    _M_impl._M_start = (pointer)0x0;\n    closure.lex_mode_stack_.super__Vector_base<gold::Lex::Mode,_std::allocator<gold::Lex::Mode>_>.\n    _M_impl._M_finish = (pointer)0x0;\n    closure.lex_mode_stack_.super__Vector_base<gold::Lex::Mode,_std::allocator<gold::Lex::Mode>_>.\n    _M_impl._M_end_of_storage = (pointer)0x0;\n    closure.language_stack_.\n    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    ._M_impl._M_start = (pointer)0x0;\n    closure.language_stack_.\n    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    ._M_impl._M_finish = (pointer)0x0;\n    closure.language_stack_.\n    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;\n    closure.inputs_ = (Input_arguments *)0x0;\n    local_c0 = LANGUAGE_C;\n    closure.script_info_ = (Script_info *)script;\n                    /* try { // try from 0016d9b7 to 0016d9d3 has its CatchHandler @ 0016dd02 */\n    std::\n    vector<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    ::_M_realloc_insert<gold::Version_script_info::Language>\n              (&closure.language_stack_,(iterator)0x0,&local_c0);\n    local_c0 = lex.mode_;\n    std::vector<gold::Lex::Mode,_std::allocator<gold::Lex::Mode>_>::emplace_back<gold::Lex::Mode>\n              (&closure.lex_mode_stack_,&local_c0);\n    bVar2 = (layout->script_options_->script_sections_).saw_sections_clause_;\n                    /* try { // try from 0016d9f3 to 0016dca6 has its CatchHandler @ 0016dcf4 */\n    iVar5 = yyparse(&closure);\n    cVar3 = bVar1;\n    if (iVar5 == 0) {\n      if (((bVar2 == false) &&\n          ((layout->script_options_->script_sections_).saw_sections_clause_ != false)) &&\n         (layout->have_added_input_section_ != false)) {\n        pcVar4 = (input_file->file_).name_._M_dataplus._M_p;\n        format = (char *)gettext("%s: SECTIONS seen after other input files; try -T/--script");\n        gold_error(format,pcVar4);\n      }\n      if (closure.inputs_ != (Input_arguments *)0x0) {\n        local_e4 = (Task *)0x0;\n        pIVar8 = ((closure.inputs_)->input_argument_list_).\n                 super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n                 _M_impl._M_finish;\n        local_dc = ((closure.inputs_)->input_argument_list_).\n                   super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n                   _M_impl._M_start;\n        if (pIVar8 != local_dc) {\n          do {\n            pIVar6 = local_dc + 1;\n            pTVar7 = (Task *)next_blocker;\n            if (pIVar6 != pIVar8) {\n              pTVar7 = (Task *)operator_new(0x14);\n              *(undefined1 *)&pTVar7->_vptr_Task = 1;\n              (pTVar7->name_)._M_dataplus._M_p = (pointer)0x0;\n              (pTVar7->name_)._M_string_length = 0;\n              (pTVar7->name_).field_2._M_allocated_capacity = 0;\n              pTVar7->list_next_ = (Task *)0x1;\n            }\n            t = (Task *)operator_new(0x50);\n            t->list_next_ = (Task *)0x0;\n            (t->name_)._M_dataplus._M_p = (pointer)&(t->name_).field_2;\n            (t->name_)._M_string_length = 0;\n            t->_vptr_Task = (_func_int_varargs **)&PTR__Read_symbols_00384d90;\n            t[1].name_._M_string_length = (size_type)dirsearch;\n            t[1]._vptr_Task = (_func_int_varargs **)input_objects;\n            *(Mapfile **)((int)&t[1].name_.field_2 + 4) = mapfile;\n            t[1].list_next_ = (Task *)symtab;\n            t[2]._vptr_Task = (_func_int_varargs **)local_e4;\n            t[1].name_._M_dataplus._M_p = (pointer)layout;\n            (t->name_).field_2._M_local_buf[0] = '\0';\n            t->should_run_soon_ = false;\n            t[1].name_.field_2._M_allocated_capacity = 0;\n            *(pointer *)((int)&t[1].name_.field_2 + 8) = local_dc;\n            *(Input_group **)((int)&t[1].name_.field_2 + 0xc) = input_group;\n            *(undefined4 *)&t[1].should_run_soon_ = 0;\n            t[2].list_next_ = pTVar7;\n            Workqueue::queue_soon(workqueue,t);\n            if (closure.inputs_ == (Input_arguments *)0x0) {\n              closure.inputs_ = (Input_arguments *)operator_new(0x14);\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_start = (pointer)0x0;\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_finish = (pointer)0x0;\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_end_of_storage = (pointer)0x0;\n              (closure.inputs_)->in_group_ = false;\n              (closure.inputs_)->in_lib_ = false;\n              (closure.inputs_)->file_count_ = 0;\n              pIVar8 = (pointer)0x0;\n            }\n            else {\n              pIVar8 = ((closure.inputs_)->input_argument_list_).\n                       super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>\n                       ._M_impl._M_finish;\n            }\n            local_e4 = pTVar7;\n            local_dc = pIVar6;\n          } while (pIVar6 != pIVar8);\n          *used_next_blocker = true;\n        }\n      }\n    }\n    else {\n      cVar3 = closure.found_incompatible_target_;\n      if (closure.found_incompatible_target_ != false) {\n        Read_symbols::incompatible_warning(input_argument,input_file);\n        Read_symbols::requeue\n                  (workqueue,input_objects,symtab,layout,dirsearch,dirindex,mapfile,input_argument,\n                   input_group,next_blocker);\n        cVar3 = bVar1;\n      }\n    }\n    if (closure.language_stack_.\n        super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n        ._M_impl._M_start != (pointer)0x0) {\n      operator_delete(closure.language_stack_.\n                      super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n                      ._M_impl._M_start);\n    }\n    if (closure.lex_mode_stack_.\n        super__Vector_base<gold::Lex::Mode,_std::allocator<gold::Lex::Mode>_>._M_impl._M_start !=\n        (pointer)0x0) {\n      operator_delete(closure.lex_mode_stack_.\n                      super__Vector_base<gold::Lex::Mode,_std::allocator<gold::Lex::Mode>_>._M_impl.\n                      _M_start);\n    }\n    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)input_string._M_dataplus._M_p != &input_string.field_2) {\n      operator_delete(input_string._M_dataplus._M_p);\n    }\n    return (bool)cVar3;\n  }\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016dcc9 to 0016dcec has its CatchHandler @ 0016dced */\n  do_gold_unreachable("../../gold/options.h",0x828,"file");\n}\n\n" comment comment (function_definition "bool gold::read_input_script\n               (Workqueue *workqueue,Symbol_table *symtab,Layout *layout,Dirsearch *dirsearch,\n               int dirindex,Input_objects *input_objects,Mapfile *mapfile,Input_group *input_group,\n               Input_argument *input_argument,Input_file *input_file,Task_token *next_blocker,\n               bool *used_next_blocker)\n\n{\n  bool bVar1;\n  bool bVar2;\n  char cVar3;\n  uint arg_serial;\n  pointer pcVar4;\n  Timespec mtime;\n  Incremental_inputs *script;\n  int iVar5;\n  pointer pIVar6;\n  Task *pTVar7;\n  Task *t;\n  char *format;\n  pointer pIVar8;\n  Task *local_e4;\n  pointer local_dc;\n  time_t local_d4;\n  int local_d0;\n  Language local_c0;\n  string input_string;\n  Lex lex;\n  Parser_closure closure;\n  \n  *used_next_blocker = false;\n  input_string._M_string_length = 0;\n  input_string.field_2._M_local_buf[0] = '\0';\n  input_string._M_dataplus._M_p = (pointer)&input_string.field_2;\n                    /* try { // try from 0016d793 to 0016d86d has its CatchHandler @ 0016dced */\n  Lex::read_file(input_file,&input_string);\n  lex.mode_ = LINKER_SCRIPT;\n  lex.first_token_ = 0x163;\n  lex.input_string_ = input_string._M_dataplus._M_p;\n  lex.current_ = input_string._M_dataplus._M_p;\n  lex.linestart_ = input_string._M_dataplus._M_p;\n  lex.input_length_ = input_string._M_string_length;\n  script = layout->incremental_inputs_;\n  lex.token_.classification_ = TOKEN_INVALID;\n  lex.token_.value_ = (char *)0x0;\n  lex.token_.value_length_ = 0;\n  lex.token_.opcode_ = 0;\n  lex.token_.lineno_ = 0;\n  lex.token_.charpos_ = 0;\n  lex.lineno_ = 1;\n  if (script != (Incremental_inputs *)0x0) {\n    File_read::get_mtime(&input_file->file_);\n    if (input_argument->is_file_ == false) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/options.h",0x828,"file");\n    }\n    arg_serial = (input_argument->file_).arg_serial_;\n    script = (Incremental_inputs *)operator_new(0x20);\n    (((string *)&script->inputs_)->_M_dataplus)._M_p =\n         (pointer)&((string *)&script->inputs_)->field_2;\n    pcVar4 = (input_file->file_).name_._M_dataplus._M_p;\n                    /* try { // try from 0016d888 to 0016d88c has its CatchHandler @ 0016dcfb */\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char*>((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)script,\n                        pcVar4,pcVar4 + (input_file->file_).name_._M_string_length,0);\n    *(undefined4 *)((int)&(script->command_line_).field_2 + 4) = 0;\n    *(undefined4 *)((int)&(script->command_line_).field_2 + 8) = 0;\n    mtime.nanoseconds = local_d0;\n    mtime.seconds = local_d4;\n                    /* try { // try from 0016d8be to 0016d8d6 has its CatchHandler @ 0016dced */\n    Incremental_inputs::report_script\n              (layout->incremental_inputs_,(Script_info *)script,arg_serial,mtime);\n  }\n  closure.skip_on_incompatible_target_ = Input_file::will_search_for(input_file);\n  closure.script_options_ = layout->script_options_;\n  closure.in_group_ = input_group != (Input_group *)0x0;\n  closure.is_in_sysroot_ = input_file->is_in_sysroot_;\n  bVar1 = input_argument->is_file_;\n  if (bVar1 != false) {\n    closure.version_script_info_ = &(closure.script_options_)->version_script_info_;\n    closure.filename_ = (input_file->file_).name_._M_dataplus._M_p;\n    closure.parsing_defsym_ = false;\n    closure.posdep_options_.as_needed_ = (input_argument->file_).options_.as_needed_;\n    closure.posdep_options_.Bdynamic_ = (input_argument->file_).options_.Bdynamic_;\n    closure.posdep_options_._2_2_ = *(undefined2 *)&(input_argument->file_).options_.field_0x2;\n    closure.found_incompatible_target_ = false;\n    closure.posdep_options_.format_enum_ = (input_argument->file_).options_.format_enum_;\n    closure.command_line_ = (Command_line *)0x0;\n    closure.posdep_options_.whole_archive_ = (input_argument->file_).options_.whole_archive_;\n    closure.posdep_options_._9_3_ = *(undefined3 *)&(input_argument->file_).options_.field_0x9;\n    closure.posdep_options_.incremental_disposition_ =\n         (input_argument->file_).options_.incremental_disposition_;\n    closure.lineno_ = 0;\n    closure.charpos_ = 0;\n    closure.lex_ = &lex;\n    closure.lex_mode_stack_.super__Vector_base<gold::Lex::Mode,_std::allocator<gold::Lex::Mode>_>.\n    _M_impl._M_start = (pointer)0x0;\n    closure.lex_mode_stack_.super__Vector_base<gold::Lex::Mode,_std::allocator<gold::Lex::Mode>_>.\n    _M_impl._M_finish = (pointer)0x0;\n    closure.lex_mode_stack_.super__Vector_base<gold::Lex::Mode,_std::allocator<gold::Lex::Mode>_>.\n    _M_impl._M_end_of_storage = (pointer)0x0;\n    closure.language_stack_.\n    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    ._M_impl._M_start = (pointer)0x0;\n    closure.language_stack_.\n    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    ._M_impl._M_finish = (pointer)0x0;\n    closure.language_stack_.\n    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;\n    closure.inputs_ = (Input_arguments *)0x0;\n    local_c0 = LANGUAGE_C;\n    closure.script_info_ = (Script_info *)script;\n                    /* try { // try from 0016d9b7 to 0016d9d3 has its CatchHandler @ 0016dd02 */\n    std::\n    vector<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    ::_M_realloc_insert<gold::Version_script_info::Language>\n              (&closure.language_stack_,(iterator)0x0,&local_c0);\n    local_c0 = lex.mode_;\n    std::vector<gold::Lex::Mode,_std::allocator<gold::Lex::Mode>_>::emplace_back<gold::Lex::Mode>\n              (&closure.lex_mode_stack_,&local_c0);\n    bVar2 = (layout->script_options_->script_sections_).saw_sections_clause_;\n                    /* try { // try from 0016d9f3 to 0016dca6 has its CatchHandler @ 0016dcf4 */\n    iVar5 = yyparse(&closure);\n    cVar3 = bVar1;\n    if (iVar5 == 0) {\n      if (((bVar2 == false) &&\n          ((layout->script_options_->script_sections_).saw_sections_clause_ != false)) &&\n         (layout->have_added_input_section_ != false)) {\n        pcVar4 = (input_file->file_).name_._M_dataplus._M_p;\n        format = (char *)gettext("%s: SECTIONS seen after other input files; try -T/--script");\n        gold_error(format,pcVar4);\n      }\n      if (closure.inputs_ != (Input_arguments *)0x0) {\n        local_e4 = (Task *)0x0;\n        pIVar8 = ((closure.inputs_)->input_argument_list_).\n                 super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n                 _M_impl._M_finish;\n        local_dc = ((closure.inputs_)->input_argument_list_).\n                   super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n                   _M_impl._M_start;\n        if (pIVar8 != local_dc) {\n          do {\n            pIVar6 = local_dc + 1;\n            pTVar7 = (Task *)next_blocker;\n            if (pIVar6 != pIVar8) {\n              pTVar7 = (Task *)operator_new(0x14);\n              *(undefined1 *)&pTVar7->_vptr_Task = 1;\n              (pTVar7->name_)._M_dataplus._M_p = (pointer)0x0;\n              (pTVar7->name_)._M_string_length = 0;\n              (pTVar7->name_).field_2._M_allocated_capacity = 0;\n              pTVar7->list_next_ = (Task *)0x1;\n            }\n            t = (Task *)operator_new(0x50);\n            t->list_next_ = (Task *)0x0;\n            (t->name_)._M_dataplus._M_p = (pointer)&(t->name_).field_2;\n            (t->name_)._M_string_length = 0;\n            t->_vptr_Task = (_func_int_varargs **)&PTR__Read_symbols_00384d90;\n            t[1].name_._M_string_length = (size_type)dirsearch;\n            t[1]._vptr_Task = (_func_int_varargs **)input_objects;\n            *(Mapfile **)((int)&t[1].name_.field_2 + 4) = mapfile;\n            t[1].list_next_ = (Task *)symtab;\n            t[2]._vptr_Task = (_func_int_varargs **)local_e4;\n            t[1].name_._M_dataplus._M_p = (pointer)layout;\n            (t->name_).field_2._M_local_buf[0] = '\0';\n            t->should_run_soon_ = false;\n            t[1].name_.field_2._M_allocated_capacity = 0;\n            *(pointer *)((int)&t[1].name_.field_2 + 8) = local_dc;\n            *(Input_group **)((int)&t[1].name_.field_2 + 0xc) = input_group;\n            *(undefined4 *)&t[1].should_run_soon_ = 0;\n            t[2].list_next_ = pTVar7;\n            Workqueue::queue_soon(workqueue,t);\n            if (closure.inputs_ == (Input_arguments *)0x0) {\n              closure.inputs_ = (Input_arguments *)operator_new(0x14);\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_start = (pointer)0x0;\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_finish = (pointer)0x0;\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_end_of_storage = (pointer)0x0;\n              (closure.inputs_)->in_group_ = false;\n              (closure.inputs_)->in_lib_ = false;\n              (closure.inputs_)->file_count_ = 0;\n              pIVar8 = (pointer)0x0;\n            }\n            else {\n              pIVar8 = ((closure.inputs_)->input_argument_list_).\n                       super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>\n                       ._M_impl._M_finish;\n            }\n            local_e4 = pTVar7;\n            local_dc = pIVar6;\n          } while (pIVar6 != pIVar8);\n          *used_next_blocker = true;\n        }\n      }\n    }\n    else {\n      cVar3 = closure.found_incompatible_target_;\n      if (closure.found_incompatible_target_ != false) {\n        Read_symbols::incompatible_warning(input_argument,input_file);\n        Read_symbols::requeue\n                  (workqueue,input_objects,symtab,layout,dirsearch,dirindex,mapfile,input_argument,\n                   input_group,next_blocker);\n        cVar3 = bVar1;\n      }\n    }\n    if (closure.language_stack_.\n        super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n        ._M_impl._M_start != (pointer)0x0) {\n      operator_delete(closure.language_stack_.\n                      super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n                      ._M_impl._M_start);\n    }\n    if (closure.lex_mode_stack_.\n        super__Vector_base<gold::Lex::Mode,_std::allocator<gold::Lex::Mode>_>._M_impl._M_start !=\n        (pointer)0x0) {\n      operator_delete(closure.lex_mode_stack_.\n                      super__Vector_base<gold::Lex::Mode,_std::allocator<gold::Lex::Mode>_>._M_impl.\n                      _M_start);\n    }\n    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)input_string._M_dataplus._M_p != &input_string.field_2) {\n      operator_delete(input_string._M_dataplus._M_p);\n    }\n    return (bool)cVar3;\n  }\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016dcc9 to 0016dcec has its CatchHandler @ 0016dced */\n  do_gold_unreachable("../../gold/options.h",0x828,"file");\n}" primitive_type (ERROR "gold::" identifier : :) (function_declarator "read_input_script\n               (Workqueue *workqueue,Symbol_table *symtab,Layout *layout,Dirsearch *dirsearch,\n               int dirindex,Input_objects *input_objects,Mapfile *mapfile,Input_group *input_group,\n               Input_argument *input_argument,Input_file *input_file,Task_token *next_blocker,\n               bool *used_next_blocker)" identifier (parameter_list "(Workqueue *workqueue,Symbol_table *symtab,Layout *layout,Dirsearch *dirsearch,\n               int dirindex,Input_objects *input_objects,Mapfile *mapfile,Input_group *input_group,\n               Input_argument *input_argument,Input_file *input_file,Task_token *next_blocker,\n               bool *used_next_blocker)" ( (parameter_declaration "Workqueue *workqueue" type_identifier (pointer_declarator "*workqueue" * identifier)) , (parameter_declaration "Symbol_table *symtab" type_identifier (pointer_declarator "*symtab" * identifier)) , (parameter_declaration "Layout *layout" type_identifier (pointer_declarator "*layout" * identifier)) , (parameter_declaration "Dirsearch *dirsearch" type_identifier (pointer_declarator "*dirsearch" * identifier)) , (parameter_declaration "int dirindex" primitive_type identifier) , (parameter_declaration "Input_objects *input_objects" type_identifier (pointer_declarator "*input_objects" * identifier)) , (parameter_declaration "Mapfile *mapfile" type_identifier (pointer_declarator "*mapfile" * identifier)) , (parameter_declaration "Input_group *input_group" type_identifier (pointer_declarator "*input_group" * identifier)) , (parameter_declaration "Input_argument *input_argument" type_identifier (pointer_declarator "*input_argument" * identifier)) , (parameter_declaration "Input_file *input_file" type_identifier (pointer_declarator "*input_file" * identifier)) , (parameter_declaration "Task_token *next_blocker" type_identifier (pointer_declarator "*next_blocker" * identifier)) , (parameter_declaration "bool *used_next_blocker" primitive_type (pointer_declarator "*used_next_blocker" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  bool bVar2;\n  char cVar3;\n  uint arg_serial;\n  pointer pcVar4;\n  Timespec mtime;\n  Incremental_inputs *script;\n  int iVar5;\n  pointer pIVar6;\n  Task *pTVar7;\n  Task *t;\n  char *format;\n  pointer pIVar8;\n  Task *local_e4;\n  pointer local_dc;\n  time_t local_d4;\n  int local_d0;\n  Language local_c0;\n  string input_string;\n  Lex lex;\n  Parser_closure closure;\n  \n  *used_next_blocker = false;\n  input_string._M_string_length = 0;\n  input_string.field_2._M_local_buf[0] = '\0';\n  input_string._M_dataplus._M_p = (pointer)&input_string.field_2;\n                    /* try { // try from 0016d793 to 0016d86d has its CatchHandler @ 0016dced */\n  Lex::read_file(input_file,&input_string);\n  lex.mode_ = LINKER_SCRIPT;\n  lex.first_token_ = 0x163;\n  lex.input_string_ = input_string._M_dataplus._M_p;\n  lex.current_ = input_string._M_dataplus._M_p;\n  lex.linestart_ = input_string._M_dataplus._M_p;\n  lex.input_length_ = input_string._M_string_length;\n  script = layout->incremental_inputs_;\n  lex.token_.classification_ = TOKEN_INVALID;\n  lex.token_.value_ = (char *)0x0;\n  lex.token_.value_length_ = 0;\n  lex.token_.opcode_ = 0;\n  lex.token_.lineno_ = 0;\n  lex.token_.charpos_ = 0;\n  lex.lineno_ = 1;\n  if (script != (Incremental_inputs *)0x0) {\n    File_read::get_mtime(&input_file->file_);\n    if (input_argument->is_file_ == false) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/options.h",0x828,"file");\n    }\n    arg_serial = (input_argument->file_).arg_serial_;\n    script = (Incremental_inputs *)operator_new(0x20);\n    (((string *)&script->inputs_)->_M_dataplus)._M_p =\n         (pointer)&((string *)&script->inputs_)->field_2;\n    pcVar4 = (input_file->file_).name_._M_dataplus._M_p;\n                    /* try { // try from 0016d888 to 0016d88c has its CatchHandler @ 0016dcfb */\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char*>((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)script,\n                        pcVar4,pcVar4 + (input_file->file_).name_._M_string_length,0);\n    *(undefined4 *)((int)&(script->command_line_).field_2 + 4) = 0;\n    *(undefined4 *)((int)&(script->command_line_).field_2 + 8) = 0;\n    mtime.nanoseconds = local_d0;\n    mtime.seconds = local_d4;\n                    /* try { // try from 0016d8be to 0016d8d6 has its CatchHandler @ 0016dced */\n    Incremental_inputs::report_script\n              (layout->incremental_inputs_,(Script_info *)script,arg_serial,mtime);\n  }\n  closure.skip_on_incompatible_target_ = Input_file::will_search_for(input_file);\n  closure.script_options_ = layout->script_options_;\n  closure.in_group_ = input_group != (Input_group *)0x0;\n  closure.is_in_sysroot_ = input_file->is_in_sysroot_;\n  bVar1 = input_argument->is_file_;\n  if (bVar1 != false) {\n    closure.version_script_info_ = &(closure.script_options_)->version_script_info_;\n    closure.filename_ = (input_file->file_).name_._M_dataplus._M_p;\n    closure.parsing_defsym_ = false;\n    closure.posdep_options_.as_needed_ = (input_argument->file_).options_.as_needed_;\n    closure.posdep_options_.Bdynamic_ = (input_argument->file_).options_.Bdynamic_;\n    closure.posdep_options_._2_2_ = *(undefined2 *)&(input_argument->file_).options_.field_0x2;\n    closure.found_incompatible_target_ = false;\n    closure.posdep_options_.format_enum_ = (input_argument->file_).options_.format_enum_;\n    closure.command_line_ = (Command_line *)0x0;\n    closure.posdep_options_.whole_archive_ = (input_argument->file_).options_.whole_archive_;\n    closure.posdep_options_._9_3_ = *(undefined3 *)&(input_argument->file_).options_.field_0x9;\n    closure.posdep_options_.incremental_disposition_ =\n         (input_argument->file_).options_.incremental_disposition_;\n    closure.lineno_ = 0;\n    closure.charpos_ = 0;\n    closure.lex_ = &lex;\n    closure.lex_mode_stack_.super__Vector_base<gold::Lex::Mode,_std::allocator<gold::Lex::Mode>_>.\n    _M_impl._M_start = (pointer)0x0;\n    closure.lex_mode_stack_.super__Vector_base<gold::Lex::Mode,_std::allocator<gold::Lex::Mode>_>.\n    _M_impl._M_finish = (pointer)0x0;\n    closure.lex_mode_stack_.super__Vector_base<gold::Lex::Mode,_std::allocator<gold::Lex::Mode>_>.\n    _M_impl._M_end_of_storage = (pointer)0x0;\n    closure.language_stack_.\n    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    ._M_impl._M_start = (pointer)0x0;\n    closure.language_stack_.\n    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    ._M_impl._M_finish = (pointer)0x0;\n    closure.language_stack_.\n    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;\n    closure.inputs_ = (Input_arguments *)0x0;\n    local_c0 = LANGUAGE_C;\n    closure.script_info_ = (Script_info *)script;\n                    /* try { // try from 0016d9b7 to 0016d9d3 has its CatchHandler @ 0016dd02 */\n    std::\n    vector<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    ::_M_realloc_insert<gold::Version_script_info::Language>\n              (&closure.language_stack_,(iterator)0x0,&local_c0);\n    local_c0 = lex.mode_;\n    std::vector<gold::Lex::Mode,_std::allocator<gold::Lex::Mode>_>::emplace_back<gold::Lex::Mode>\n              (&closure.lex_mode_stack_,&local_c0);\n    bVar2 = (layout->script_options_->script_sections_).saw_sections_clause_;\n                    /* try { // try from 0016d9f3 to 0016dca6 has its CatchHandler @ 0016dcf4 */\n    iVar5 = yyparse(&closure);\n    cVar3 = bVar1;\n    if (iVar5 == 0) {\n      if (((bVar2 == false) &&\n          ((layout->script_options_->script_sections_).saw_sections_clause_ != false)) &&\n         (layout->have_added_input_section_ != false)) {\n        pcVar4 = (input_file->file_).name_._M_dataplus._M_p;\n        format = (char *)gettext("%s: SECTIONS seen after other input files; try -T/--script");\n        gold_error(format,pcVar4);\n      }\n      if (closure.inputs_ != (Input_arguments *)0x0) {\n        local_e4 = (Task *)0x0;\n        pIVar8 = ((closure.inputs_)->input_argument_list_).\n                 super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n                 _M_impl._M_finish;\n        local_dc = ((closure.inputs_)->input_argument_list_).\n                   super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n                   _M_impl._M_start;\n        if (pIVar8 != local_dc) {\n          do {\n            pIVar6 = local_dc + 1;\n            pTVar7 = (Task *)next_blocker;\n            if (pIVar6 != pIVar8) {\n              pTVar7 = (Task *)operator_new(0x14);\n              *(undefined1 *)&pTVar7->_vptr_Task = 1;\n              (pTVar7->name_)._M_dataplus._M_p = (pointer)0x0;\n              (pTVar7->name_)._M_string_length = 0;\n              (pTVar7->name_).field_2._M_allocated_capacity = 0;\n              pTVar7->list_next_ = (Task *)0x1;\n            }\n            t = (Task *)operator_new(0x50);\n            t->list_next_ = (Task *)0x0;\n            (t->name_)._M_dataplus._M_p = (pointer)&(t->name_).field_2;\n            (t->name_)._M_string_length = 0;\n            t->_vptr_Task = (_func_int_varargs **)&PTR__Read_symbols_00384d90;\n            t[1].name_._M_string_length = (size_type)dirsearch;\n            t[1]._vptr_Task = (_func_int_varargs **)input_objects;\n            *(Mapfile **)((int)&t[1].name_.field_2 + 4) = mapfile;\n            t[1].list_next_ = (Task *)symtab;\n            t[2]._vptr_Task = (_func_int_varargs **)local_e4;\n            t[1].name_._M_dataplus._M_p = (pointer)layout;\n            (t->name_).field_2._M_local_buf[0] = '\0';\n            t->should_run_soon_ = false;\n            t[1].name_.field_2._M_allocated_capacity = 0;\n            *(pointer *)((int)&t[1].name_.field_2 + 8) = local_dc;\n            *(Input_group **)((int)&t[1].name_.field_2 + 0xc) = input_group;\n            *(undefined4 *)&t[1].should_run_soon_ = 0;\n            t[2].list_next_ = pTVar7;\n            Workqueue::queue_soon(workqueue,t);\n            if (closure.inputs_ == (Input_arguments *)0x0) {\n              closure.inputs_ = (Input_arguments *)operator_new(0x14);\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_start = (pointer)0x0;\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_finish = (pointer)0x0;\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_end_of_storage = (pointer)0x0;\n              (closure.inputs_)->in_group_ = false;\n              (closure.inputs_)->in_lib_ = false;\n              (closure.inputs_)->file_count_ = 0;\n              pIVar8 = (pointer)0x0;\n            }\n            else {\n              pIVar8 = ((closure.inputs_)->input_argument_list_).\n                       super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>\n                       ._M_impl._M_finish;\n            }\n            local_e4 = pTVar7;\n            local_dc = pIVar6;\n          } while (pIVar6 != pIVar8);\n          *used_next_blocker = true;\n        }\n      }\n    }\n    else {\n      cVar3 = closure.found_incompatible_target_;\n      if (closure.found_incompatible_target_ != false) {\n        Read_symbols::incompatible_warning(input_argument,input_file);\n        Read_symbols::requeue\n                  (workqueue,input_objects,symtab,layout,dirsearch,dirindex,mapfile,input_argument,\n                   input_group,next_blocker);\n        cVar3 = bVar1;\n      }\n    }\n    if (closure.language_stack_.\n        super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n        ._M_impl._M_start != (pointer)0x0) {\n      operator_delete(closure.language_stack_.\n                      super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n                      ._M_impl._M_start);\n    }\n    if (closure.lex_mode_stack_.\n        super__Vector_base<gold::Lex::Mode,_std::allocator<gold::Lex::Mode>_>._M_impl._M_start !=\n        (pointer)0x0) {\n      operator_delete(closure.lex_mode_stack_.\n                      super__Vector_base<gold::Lex::Mode,_std::allocator<gold::Lex::Mode>_>._M_impl.\n                      _M_start);\n    }\n    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)input_string._M_dataplus._M_p != &input_string.field_2) {\n      operator_delete(input_string._M_dataplus._M_p);\n    }\n    return (bool)cVar3;\n  }\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016dcc9 to 0016dcec has its CatchHandler @ 0016dced */\n  do_gold_unreachable("../../gold/options.h",0x828,"file");\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "uint arg_serial;" type_identifier identifier ;) (declaration "pointer pcVar4;" type_identifier identifier ;) (declaration "Timespec mtime;" type_identifier identifier ;) (declaration "Incremental_inputs *script;" type_identifier (pointer_declarator "*script" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "pointer pIVar6;" type_identifier identifier ;) (declaration "Task *pTVar7;" type_identifier (pointer_declarator "*pTVar7" * identifier) ;) (declaration "Task *t;" type_identifier (pointer_declarator "*t" * identifier) ;) (declaration "char *format;" primitive_type (pointer_declarator "*format" * identifier) ;) (declaration "pointer pIVar8;" type_identifier identifier ;) (declaration "Task *local_e4;" type_identifier (pointer_declarator "*local_e4" * identifier) ;) (declaration "pointer local_dc;" type_identifier identifier ;) (declaration "time_t local_d4;" type_identifier identifier ;) (declaration "int local_d0;" primitive_type identifier ;) (declaration "Language local_c0;" type_identifier identifier ;) (declaration "string input_string;" type_identifier identifier ;) (declaration "Lex lex;" type_identifier identifier ;) (declaration "Parser_closure closure;" type_identifier identifier ;) (expression_statement "*used_next_blocker = false;" (assignment_expression "*used_next_blocker = false" (pointer_expression "*used_next_blocker" * identifier) = false) ;) (expression_statement "input_string._M_string_length = 0;" (assignment_expression "input_string._M_string_length = 0" (field_expression "input_string._M_string_length" identifier . field_identifier) = number_literal) ;) (expression_statement "input_string.field_2._M_local_buf[0] = '\0';" (assignment_expression "input_string.field_2._M_local_buf[0] = '\0'" (subscript_expression "input_string.field_2._M_local_buf[0]" (field_expression "input_string.field_2._M_local_buf" (field_expression "input_string.field_2" identifier . field_identifier) . field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "input_string._M_dataplus._M_p = (pointer)&input_string.field_2;" (assignment_expression "input_string._M_dataplus._M_p = (pointer)&input_string.field_2" (field_expression "input_string._M_dataplus._M_p" (field_expression "input_string._M_dataplus" identifier . field_identifier) . field_identifier) = (binary_expression "(pointer)&input_string.field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "input_string.field_2" identifier . field_identifier))) ;) comment (labeled_statement "Lex::read_file(input_file,&input_string);" statement_identifier : (ERROR ":" :) (expression_statement "read_file(input_file,&input_string);" (call_expression "read_file(input_file,&input_string)" identifier (argument_list "(input_file,&input_string)" ( identifier , (pointer_expression "&input_string" & identifier) ))) ;)) (expression_statement "lex.mode_ = LINKER_SCRIPT;" (assignment_expression "lex.mode_ = LINKER_SCRIPT" (field_expression "lex.mode_" identifier . field_identifier) = identifier) ;) (expression_statement "lex.first_token_ = 0x163;" (assignment_expression "lex.first_token_ = 0x163" (field_expression "lex.first_token_" identifier . field_identifier) = number_literal) ;) (expression_statement "lex.input_string_ = input_string._M_dataplus._M_p;" (assignment_expression "lex.input_string_ = input_string._M_dataplus._M_p" (field_expression "lex.input_string_" identifier . field_identifier) = (field_expression "input_string._M_dataplus._M_p" (field_expression "input_string._M_dataplus" identifier . field_identifier) . field_identifier)) ;) (expression_statement "lex.current_ = input_string._M_dataplus._M_p;" (assignment_expression "lex.current_ = input_string._M_dataplus._M_p" (field_expression "lex.current_" identifier . field_identifier) = (field_expression "input_string._M_dataplus._M_p" (field_expression "input_string._M_dataplus" identifier . field_identifier) . field_identifier)) ;) (expression_statement "lex.linestart_ = input_string._M_dataplus._M_p;" (assignment_expression "lex.linestart_ = input_string._M_dataplus._M_p" (field_expression "lex.linestart_" identifier . field_identifier) = (field_expression "input_string._M_dataplus._M_p" (field_expression "input_string._M_dataplus" identifier . field_identifier) . field_identifier)) ;) (expression_statement "lex.input_length_ = input_string._M_string_length;" (assignment_expression "lex.input_length_ = input_string._M_string_length" (field_expression "lex.input_length_" identifier . field_identifier) = (field_expression "input_string._M_string_length" identifier . field_identifier)) ;) (expression_statement "script = layout->incremental_inputs_;" (assignment_expression "script = layout->incremental_inputs_" identifier = (field_expression "layout->incremental_inputs_" identifier -> field_identifier)) ;) (expression_statement "lex.token_.classification_ = TOKEN_INVALID;" (assignment_expression "lex.token_.classification_ = TOKEN_INVALID" (field_expression "lex.token_.classification_" (field_expression "lex.token_" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "lex.token_.value_ = (char *)0x0;" (assignment_expression "lex.token_.value_ = (char *)0x0" (field_expression "lex.token_.value_" (field_expression "lex.token_" identifier . field_identifier) . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "lex.token_.value_length_ = 0;" (assignment_expression "lex.token_.value_length_ = 0" (field_expression "lex.token_.value_length_" (field_expression "lex.token_" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "lex.token_.opcode_ = 0;" (assignment_expression "lex.token_.opcode_ = 0" (field_expression "lex.token_.opcode_" (field_expression "lex.token_" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "lex.token_.lineno_ = 0;" (assignment_expression "lex.token_.lineno_ = 0" (field_expression "lex.token_.lineno_" (field_expression "lex.token_" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "lex.token_.charpos_ = 0;" (assignment_expression "lex.token_.charpos_ = 0" (field_expression "lex.token_.charpos_" (field_expression "lex.token_" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "lex.lineno_ = 1;" (assignment_expression "lex.lineno_ = 1" (field_expression "lex.lineno_" identifier . field_identifier) = number_literal) ;) (if_statement "if (script != (Incremental_inputs *)0x0) {\n    File_read::get_mtime(&input_file->file_);\n    if (input_argument->is_file_ == false) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/options.h",0x828,"file");\n    }\n    arg_serial = (input_argument->file_).arg_serial_;\n    script = (Incremental_inputs *)operator_new(0x20);\n    (((string *)&script->inputs_)->_M_dataplus)._M_p =\n         (pointer)&((string *)&script->inputs_)->field_2;\n    pcVar4 = (input_file->file_).name_._M_dataplus._M_p;\n                    /* try { // try from 0016d888 to 0016d88c has its CatchHandler @ 0016dcfb */\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char*>((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)script,\n                        pcVar4,pcVar4 + (input_file->file_).name_._M_string_length,0);\n    *(undefined4 *)((int)&(script->command_line_).field_2 + 4) = 0;\n    *(undefined4 *)((int)&(script->command_line_).field_2 + 8) = 0;\n    mtime.nanoseconds = local_d0;\n    mtime.seconds = local_d4;\n                    /* try { // try from 0016d8be to 0016d8d6 has its CatchHandler @ 0016dced */\n    Incremental_inputs::report_script\n              (layout->incremental_inputs_,(Script_info *)script,arg_serial,mtime);\n  }" if (parenthesized_expression "(script != (Incremental_inputs *)0x0)" ( (binary_expression "script != (Incremental_inputs *)0x0" identifier != (cast_expression "(Incremental_inputs *)0x0" ( (type_descriptor "Incremental_inputs *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    File_read::get_mtime(&input_file->file_);\n    if (input_argument->is_file_ == false) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/options.h",0x828,"file");\n    }\n    arg_serial = (input_argument->file_).arg_serial_;\n    script = (Incremental_inputs *)operator_new(0x20);\n    (((string *)&script->inputs_)->_M_dataplus)._M_p =\n         (pointer)&((string *)&script->inputs_)->field_2;\n    pcVar4 = (input_file->file_).name_._M_dataplus._M_p;\n                    /* try { // try from 0016d888 to 0016d88c has its CatchHandler @ 0016dcfb */\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char*>((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)script,\n                        pcVar4,pcVar4 + (input_file->file_).name_._M_string_length,0);\n    *(undefined4 *)((int)&(script->command_line_).field_2 + 4) = 0;\n    *(undefined4 *)((int)&(script->command_line_).field_2 + 8) = 0;\n    mtime.nanoseconds = local_d0;\n    mtime.seconds = local_d4;\n                    /* try { // try from 0016d8be to 0016d8d6 has its CatchHandler @ 0016dced */\n    Incremental_inputs::report_script\n              (layout->incremental_inputs_,(Script_info *)script,arg_serial,mtime);\n  }" { (labeled_statement "File_read::get_mtime(&input_file->file_);" statement_identifier : (ERROR ":" :) (expression_statement "get_mtime(&input_file->file_);" (call_expression "get_mtime(&input_file->file_)" identifier (argument_list "(&input_file->file_)" ( (pointer_expression "&input_file->file_" & (field_expression "input_file->file_" identifier -> field_identifier)) ))) ;)) (if_statement "if (input_argument->is_file_ == false) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/options.h",0x828,"file");\n    }" if (parenthesized_expression "(input_argument->is_file_ == false)" ( (binary_expression "input_argument->is_file_ == false" (field_expression "input_argument->is_file_" identifier -> field_identifier) == false) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/options.h",0x828,"file");\n    }" { comment (expression_statement "do_gold_unreachable("../../gold/options.h",0x828,"file");" (call_expression "do_gold_unreachable("../../gold/options.h",0x828,"file")" identifier (argument_list "("../../gold/options.h",0x828,"file")" ( (string_literal ""../../gold/options.h"" " string_content ") , number_literal , (string_literal ""file"" " string_content ") ))) ;) })) (expression_statement "arg_serial = (input_argument->file_).arg_serial_;" (assignment_expression "arg_serial = (input_argument->file_).arg_serial_" identifier = (field_expression "(input_argument->file_).arg_serial_" (parenthesized_expression "(input_argument->file_)" ( (field_expression "input_argument->file_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "script = (Incremental_inputs *)operator_new(0x20);" (assignment_expression "script = (Incremental_inputs *)operator_new(0x20)" identifier = (cast_expression "(Incremental_inputs *)operator_new(0x20)" ( (type_descriptor "Incremental_inputs *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x20)" identifier (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "(((string *)&script->inputs_)->_M_dataplus)._M_p =\n         (pointer)&((string *)&script->inputs_)->field_2;" (assignment_expression "(((string *)&script->inputs_)->_M_dataplus)._M_p =\n         (pointer)&((string *)&script->inputs_)->field_2" (field_expression "(((string *)&script->inputs_)->_M_dataplus)._M_p" (parenthesized_expression "(((string *)&script->inputs_)->_M_dataplus)" ( (field_expression "((string *)&script->inputs_)->_M_dataplus" (parenthesized_expression "((string *)&script->inputs_)" ( (cast_expression "(string *)&script->inputs_" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&script->inputs_" & (field_expression "script->inputs_" identifier -> field_identifier))) )) -> field_identifier) )) . field_identifier) = (binary_expression "(pointer)&((string *)&script->inputs_)->field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "((string *)&script->inputs_)->field_2" (parenthesized_expression "((string *)&script->inputs_)" ( (cast_expression "(string *)&script->inputs_" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&script->inputs_" & (field_expression "script->inputs_" identifier -> field_identifier))) )) -> field_identifier))) ;) (expression_statement "pcVar4 = (input_file->file_).name_._M_dataplus._M_p;" (assignment_expression "pcVar4 = (input_file->file_).name_._M_dataplus._M_p" identifier = (field_expression "(input_file->file_).name_._M_dataplus._M_p" (field_expression "(input_file->file_).name_._M_dataplus" (field_expression "(input_file->file_).name_" (parenthesized_expression "(input_file->file_)" ( (field_expression "input_file->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) ;) comment (ERROR "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char*>((basic_string<char,_std::char_traits<char>,_std::" (comma_expression "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char*>((basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char*>((basic_string<char,_std::char_traits<char>" : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > : : (binary_expression "_M_construct<char" identifier < identifier) (ERROR "*" *) > ( ( (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : :) (expression_statement "allocator<char>_> *)script,\n                        pcVar4,pcVar4 + (input_file->file_).name_._M_string_length,0);" (comma_expression "allocator<char>_> *)script,\n                        pcVar4,pcVar4 + (input_file->file_).name_._M_string_length,0" (binary_expression "allocator<char>_> *)script" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (pointer_expression "*)script" * (ERROR ")" )) identifier)) , (comma_expression "pcVar4,pcVar4 + (input_file->file_).name_._M_string_length,0" identifier , (comma_expression "pcVar4 + (input_file->file_).name_._M_string_length,0" (binary_expression "pcVar4 + (input_file->file_).name_._M_string_length" identifier + (field_expression "(input_file->file_).name_._M_string_length" (field_expression "(input_file->file_).name_" (parenthesized_expression "(input_file->file_)" ( (field_expression "input_file->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) , number_literal))) (ERROR ")" )) ;) (expression_statement "*(undefined4 *)((int)&(script->command_line_).field_2 + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(script->command_line_).field_2 + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(script->command_line_).field_2 + 4)" * (cast_expression "(undefined4 *)((int)&(script->command_line_).field_2 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(script->command_line_).field_2 + 4)" ( (binary_expression "(int)&(script->command_line_).field_2 + 4" (cast_expression "(int)&(script->command_line_).field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(script->command_line_).field_2" & (field_expression "(script->command_line_).field_2" (parenthesized_expression "(script->command_line_)" ( (field_expression "script->command_line_" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(script->command_line_).field_2 + 8) = 0;" (assignment_expression "*(undefined4 *)((int)&(script->command_line_).field_2 + 8) = 0" (pointer_expression "*(undefined4 *)((int)&(script->command_line_).field_2 + 8)" * (cast_expression "(undefined4 *)((int)&(script->command_line_).field_2 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(script->command_line_).field_2 + 8)" ( (binary_expression "(int)&(script->command_line_).field_2 + 8" (cast_expression "(int)&(script->command_line_).field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(script->command_line_).field_2" & (field_expression "(script->command_line_).field_2" (parenthesized_expression "(script->command_line_)" ( (field_expression "script->command_line_" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "mtime.nanoseconds = local_d0;" (assignment_expression "mtime.nanoseconds = local_d0" (field_expression "mtime.nanoseconds" identifier . field_identifier) = identifier) ;) (expression_statement "mtime.seconds = local_d4;" (assignment_expression "mtime.seconds = local_d4" (field_expression "mtime.seconds" identifier . field_identifier) = identifier) ;) comment (labeled_statement "Incremental_inputs::report_script\n              (layout->incremental_inputs_,(Script_info *)script,arg_serial,mtime);" statement_identifier : (ERROR ":" :) (expression_statement "report_script\n              (layout->incremental_inputs_,(Script_info *)script,arg_serial,mtime);" (call_expression "report_script\n              (layout->incremental_inputs_,(Script_info *)script,arg_serial,mtime)" identifier (argument_list "(layout->incremental_inputs_,(Script_info *)script,arg_serial,mtime)" ( (field_expression "layout->incremental_inputs_" identifier -> field_identifier) , (cast_expression "(Script_info *)script" ( (type_descriptor "Script_info *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier ))) ;)) })) (ERROR "closure.skip_on_incompatible_target_ = Input_file::" (assignment_expression "closure.skip_on_incompatible_target_ = Input_file" (field_expression "closure.skip_on_incompatible_target_" identifier . field_identifier) = identifier) : :) (expression_statement "will_search_for(input_file);" (call_expression "will_search_for(input_file)" identifier (argument_list "(input_file)" ( identifier ))) ;) (expression_statement "closure.script_options_ = layout->script_options_;" (assignment_expression "closure.script_options_ = layout->script_options_" (field_expression "closure.script_options_" identifier . field_identifier) = (field_expression "layout->script_options_" identifier -> field_identifier)) ;) (expression_statement "closure.in_group_ = input_group != (Input_group *)0x0;" (assignment_expression "closure.in_group_ = input_group != (Input_group *)0x0" (field_expression "closure.in_group_" identifier . field_identifier) = (binary_expression "input_group != (Input_group *)0x0" identifier != (cast_expression "(Input_group *)0x0" ( (type_descriptor "Input_group *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "closure.is_in_sysroot_ = input_file->is_in_sysroot_;" (assignment_expression "closure.is_in_sysroot_ = input_file->is_in_sysroot_" (field_expression "closure.is_in_sysroot_" identifier . field_identifier) = (field_expression "input_file->is_in_sysroot_" identifier -> field_identifier)) ;) (expression_statement "bVar1 = input_argument->is_file_;" (assignment_expression "bVar1 = input_argument->is_file_" identifier = (field_expression "input_argument->is_file_" identifier -> field_identifier)) ;) (if_statement "if (bVar1 != false) {\n    closure.version_script_info_ = &(closure.script_options_)->version_script_info_;\n    closure.filename_ = (input_file->file_).name_._M_dataplus._M_p;\n    closure.parsing_defsym_ = false;\n    closure.posdep_options_.as_needed_ = (input_argument->file_).options_.as_needed_;\n    closure.posdep_options_.Bdynamic_ = (input_argument->file_).options_.Bdynamic_;\n    closure.posdep_options_._2_2_ = *(undefined2 *)&(input_argument->file_).options_.field_0x2;\n    closure.found_incompatible_target_ = false;\n    closure.posdep_options_.format_enum_ = (input_argument->file_).options_.format_enum_;\n    closure.command_line_ = (Command_line *)0x0;\n    closure.posdep_options_.whole_archive_ = (input_argument->file_).options_.whole_archive_;\n    closure.posdep_options_._9_3_ = *(undefined3 *)&(input_argument->file_).options_.field_0x9;\n    closure.posdep_options_.incremental_disposition_ =\n         (input_argument->file_).options_.incremental_disposition_;\n    closure.lineno_ = 0;\n    closure.charpos_ = 0;\n    closure.lex_ = &lex;\n    closure.lex_mode_stack_.super__Vector_base<gold::Lex::Mode,_std::allocator<gold::Lex::Mode>_>.\n    _M_impl._M_start = (pointer)0x0;\n    closure.lex_mode_stack_.super__Vector_base<gold::Lex::Mode,_std::allocator<gold::Lex::Mode>_>.\n    _M_impl._M_finish = (pointer)0x0;\n    closure.lex_mode_stack_.super__Vector_base<gold::Lex::Mode,_std::allocator<gold::Lex::Mode>_>.\n    _M_impl._M_end_of_storage = (pointer)0x0;\n    closure.language_stack_.\n    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    ._M_impl._M_start = (pointer)0x0;\n    closure.language_stack_.\n    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    ._M_impl._M_finish = (pointer)0x0;\n    closure.language_stack_.\n    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;\n    closure.inputs_ = (Input_arguments *)0x0;\n    local_c0 = LANGUAGE_C;\n    closure.script_info_ = (Script_info *)script;\n                    /* try { // try from 0016d9b7 to 0016d9d3 has its CatchHandler @ 0016dd02 */\n    std::\n    vector<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    ::_M_realloc_insert<gold::Version_script_info::Language>\n              (&closure.language_stack_,(iterator)0x0,&local_c0);\n    local_c0 = lex.mode_;\n    std::vector<gold::Lex::Mode,_std::allocator<gold::Lex::Mode>_>::emplace_back<gold::Lex::Mode>\n              (&closure.lex_mode_stack_,&local_c0);\n    bVar2 = (layout->script_options_->script_sections_).saw_sections_clause_;\n                    /* try { // try from 0016d9f3 to 0016dca6 has its CatchHandler @ 0016dcf4 */\n    iVar5 = yyparse(&closure);\n    cVar3 = bVar1;\n    if (iVar5 == 0) {\n      if (((bVar2 == false) &&\n          ((layout->script_options_->script_sections_).saw_sections_clause_ != false)) &&\n         (layout->have_added_input_section_ != false)) {\n        pcVar4 = (input_file->file_).name_._M_dataplus._M_p;\n        format = (char *)gettext("%s: SECTIONS seen after other input files; try -T/--script");\n        gold_error(format,pcVar4);\n      }\n      if (closure.inputs_ != (Input_arguments *)0x0) {\n        local_e4 = (Task *)0x0;\n        pIVar8 = ((closure.inputs_)->input_argument_list_).\n                 super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n                 _M_impl._M_finish;\n        local_dc = ((closure.inputs_)->input_argument_list_).\n                   super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n                   _M_impl._M_start;\n        if (pIVar8 != local_dc) {\n          do {\n            pIVar6 = local_dc + 1;\n            pTVar7 = (Task *)next_blocker;\n            if (pIVar6 != pIVar8) {\n              pTVar7 = (Task *)operator_new(0x14);\n              *(undefined1 *)&pTVar7->_vptr_Task = 1;\n              (pTVar7->name_)._M_dataplus._M_p = (pointer)0x0;\n              (pTVar7->name_)._M_string_length = 0;\n              (pTVar7->name_).field_2._M_allocated_capacity = 0;\n              pTVar7->list_next_ = (Task *)0x1;\n            }\n            t = (Task *)operator_new(0x50);\n            t->list_next_ = (Task *)0x0;\n            (t->name_)._M_dataplus._M_p = (pointer)&(t->name_).field_2;\n            (t->name_)._M_string_length = 0;\n            t->_vptr_Task = (_func_int_varargs **)&PTR__Read_symbols_00384d90;\n            t[1].name_._M_string_length = (size_type)dirsearch;\n            t[1]._vptr_Task = (_func_int_varargs **)input_objects;\n            *(Mapfile **)((int)&t[1].name_.field_2 + 4) = mapfile;\n            t[1].list_next_ = (Task *)symtab;\n            t[2]._vptr_Task = (_func_int_varargs **)local_e4;\n            t[1].name_._M_dataplus._M_p = (pointer)layout;\n            (t->name_).field_2._M_local_buf[0] = '\0';\n            t->should_run_soon_ = false;\n            t[1].name_.field_2._M_allocated_capacity = 0;\n            *(pointer *)((int)&t[1].name_.field_2 + 8) = local_dc;\n            *(Input_group **)((int)&t[1].name_.field_2 + 0xc) = input_group;\n            *(undefined4 *)&t[1].should_run_soon_ = 0;\n            t[2].list_next_ = pTVar7;\n            Workqueue::queue_soon(workqueue,t);\n            if (closure.inputs_ == (Input_arguments *)0x0) {\n              closure.inputs_ = (Input_arguments *)operator_new(0x14);\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_start = (pointer)0x0;\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_finish = (pointer)0x0;\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_end_of_storage = (pointer)0x0;\n              (closure.inputs_)->in_group_ = false;\n              (closure.inputs_)->in_lib_ = false;\n              (closure.inputs_)->file_count_ = 0;\n              pIVar8 = (pointer)0x0;\n            }\n            else {\n              pIVar8 = ((closure.inputs_)->input_argument_list_).\n                       super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>\n                       ._M_impl._M_finish;\n            }\n            local_e4 = pTVar7;\n            local_dc = pIVar6;\n          } while (pIVar6 != pIVar8);\n          *used_next_blocker = true;\n        }\n      }\n    }\n    else {\n      cVar3 = closure.found_incompatible_target_;\n      if (closure.found_incompatible_target_ != false) {\n        Read_symbols::incompatible_warning(input_argument,input_file);\n        Read_symbols::requeue\n                  (workqueue,input_objects,symtab,layout,dirsearch,dirindex,mapfile,input_argument,\n                   input_group,next_blocker);\n        cVar3 = bVar1;\n      }\n    }\n    if (closure.language_stack_.\n        super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n        ._M_impl._M_start != (pointer)0x0) {\n      operator_delete(closure.language_stack_.\n                      super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n                      ._M_impl._M_start);\n    }\n    if (closure.lex_mode_stack_.\n        super__Vector_base<gold::Lex::Mode,_std::allocator<gold::Lex::Mode>_>._M_impl._M_start !=\n        (pointer)0x0) {\n      operator_delete(closure.lex_mode_stack_.\n                      super__Vector_base<gold::Lex::Mode,_std::allocator<gold::Lex::Mode>_>._M_impl.\n                      _M_start);\n    }\n    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)input_string._M_dataplus._M_p != &input_string.field_2) {\n      operator_delete(input_string._M_dataplus._M_p);\n    }\n    return (bool)cVar3;\n  }" if (parenthesized_expression "(bVar1 != false)" ( (binary_expression "bVar1 != false" identifier != false) )) (compound_statement "{\n    closure.version_script_info_ = &(closure.script_options_)->version_script_info_;\n    closure.filename_ = (input_file->file_).name_._M_dataplus._M_p;\n    closure.parsing_defsym_ = false;\n    closure.posdep_options_.as_needed_ = (input_argument->file_).options_.as_needed_;\n    closure.posdep_options_.Bdynamic_ = (input_argument->file_).options_.Bdynamic_;\n    closure.posdep_options_._2_2_ = *(undefined2 *)&(input_argument->file_).options_.field_0x2;\n    closure.found_incompatible_target_ = false;\n    closure.posdep_options_.format_enum_ = (input_argument->file_).options_.format_enum_;\n    closure.command_line_ = (Command_line *)0x0;\n    closure.posdep_options_.whole_archive_ = (input_argument->file_).options_.whole_archive_;\n    closure.posdep_options_._9_3_ = *(undefined3 *)&(input_argument->file_).options_.field_0x9;\n    closure.posdep_options_.incremental_disposition_ =\n         (input_argument->file_).options_.incremental_disposition_;\n    closure.lineno_ = 0;\n    closure.charpos_ = 0;\n    closure.lex_ = &lex;\n    closure.lex_mode_stack_.super__Vector_base<gold::Lex::Mode,_std::allocator<gold::Lex::Mode>_>.\n    _M_impl._M_start = (pointer)0x0;\n    closure.lex_mode_stack_.super__Vector_base<gold::Lex::Mode,_std::allocator<gold::Lex::Mode>_>.\n    _M_impl._M_finish = (pointer)0x0;\n    closure.lex_mode_stack_.super__Vector_base<gold::Lex::Mode,_std::allocator<gold::Lex::Mode>_>.\n    _M_impl._M_end_of_storage = (pointer)0x0;\n    closure.language_stack_.\n    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    ._M_impl._M_start = (pointer)0x0;\n    closure.language_stack_.\n    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    ._M_impl._M_finish = (pointer)0x0;\n    closure.language_stack_.\n    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;\n    closure.inputs_ = (Input_arguments *)0x0;\n    local_c0 = LANGUAGE_C;\n    closure.script_info_ = (Script_info *)script;\n                    /* try { // try from 0016d9b7 to 0016d9d3 has its CatchHandler @ 0016dd02 */\n    std::\n    vector<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    ::_M_realloc_insert<gold::Version_script_info::Language>\n              (&closure.language_stack_,(iterator)0x0,&local_c0);\n    local_c0 = lex.mode_;\n    std::vector<gold::Lex::Mode,_std::allocator<gold::Lex::Mode>_>::emplace_back<gold::Lex::Mode>\n              (&closure.lex_mode_stack_,&local_c0);\n    bVar2 = (layout->script_options_->script_sections_).saw_sections_clause_;\n                    /* try { // try from 0016d9f3 to 0016dca6 has its CatchHandler @ 0016dcf4 */\n    iVar5 = yyparse(&closure);\n    cVar3 = bVar1;\n    if (iVar5 == 0) {\n      if (((bVar2 == false) &&\n          ((layout->script_options_->script_sections_).saw_sections_clause_ != false)) &&\n         (layout->have_added_input_section_ != false)) {\n        pcVar4 = (input_file->file_).name_._M_dataplus._M_p;\n        format = (char *)gettext("%s: SECTIONS seen after other input files; try -T/--script");\n        gold_error(format,pcVar4);\n      }\n      if (closure.inputs_ != (Input_arguments *)0x0) {\n        local_e4 = (Task *)0x0;\n        pIVar8 = ((closure.inputs_)->input_argument_list_).\n                 super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n                 _M_impl._M_finish;\n        local_dc = ((closure.inputs_)->input_argument_list_).\n                   super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n                   _M_impl._M_start;\n        if (pIVar8 != local_dc) {\n          do {\n            pIVar6 = local_dc + 1;\n            pTVar7 = (Task *)next_blocker;\n            if (pIVar6 != pIVar8) {\n              pTVar7 = (Task *)operator_new(0x14);\n              *(undefined1 *)&pTVar7->_vptr_Task = 1;\n              (pTVar7->name_)._M_dataplus._M_p = (pointer)0x0;\n              (pTVar7->name_)._M_string_length = 0;\n              (pTVar7->name_).field_2._M_allocated_capacity = 0;\n              pTVar7->list_next_ = (Task *)0x1;\n            }\n            t = (Task *)operator_new(0x50);\n            t->list_next_ = (Task *)0x0;\n            (t->name_)._M_dataplus._M_p = (pointer)&(t->name_).field_2;\n            (t->name_)._M_string_length = 0;\n            t->_vptr_Task = (_func_int_varargs **)&PTR__Read_symbols_00384d90;\n            t[1].name_._M_string_length = (size_type)dirsearch;\n            t[1]._vptr_Task = (_func_int_varargs **)input_objects;\n            *(Mapfile **)((int)&t[1].name_.field_2 + 4) = mapfile;\n            t[1].list_next_ = (Task *)symtab;\n            t[2]._vptr_Task = (_func_int_varargs **)local_e4;\n            t[1].name_._M_dataplus._M_p = (pointer)layout;\n            (t->name_).field_2._M_local_buf[0] = '\0';\n            t->should_run_soon_ = false;\n            t[1].name_.field_2._M_allocated_capacity = 0;\n            *(pointer *)((int)&t[1].name_.field_2 + 8) = local_dc;\n            *(Input_group **)((int)&t[1].name_.field_2 + 0xc) = input_group;\n            *(undefined4 *)&t[1].should_run_soon_ = 0;\n            t[2].list_next_ = pTVar7;\n            Workqueue::queue_soon(workqueue,t);\n            if (closure.inputs_ == (Input_arguments *)0x0) {\n              closure.inputs_ = (Input_arguments *)operator_new(0x14);\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_start = (pointer)0x0;\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_finish = (pointer)0x0;\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_end_of_storage = (pointer)0x0;\n              (closure.inputs_)->in_group_ = false;\n              (closure.inputs_)->in_lib_ = false;\n              (closure.inputs_)->file_count_ = 0;\n              pIVar8 = (pointer)0x0;\n            }\n            else {\n              pIVar8 = ((closure.inputs_)->input_argument_list_).\n                       super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>\n                       ._M_impl._M_finish;\n            }\n            local_e4 = pTVar7;\n            local_dc = pIVar6;\n          } while (pIVar6 != pIVar8);\n          *used_next_blocker = true;\n        }\n      }\n    }\n    else {\n      cVar3 = closure.found_incompatible_target_;\n      if (closure.found_incompatible_target_ != false) {\n        Read_symbols::incompatible_warning(input_argument,input_file);\n        Read_symbols::requeue\n                  (workqueue,input_objects,symtab,layout,dirsearch,dirindex,mapfile,input_argument,\n                   input_group,next_blocker);\n        cVar3 = bVar1;\n      }\n    }\n    if (closure.language_stack_.\n        super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n        ._M_impl._M_start != (pointer)0x0) {\n      operator_delete(closure.language_stack_.\n                      super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n                      ._M_impl._M_start);\n    }\n    if (closure.lex_mode_stack_.\n        super__Vector_base<gold::Lex::Mode,_std::allocator<gold::Lex::Mode>_>._M_impl._M_start !=\n        (pointer)0x0) {\n      operator_delete(closure.lex_mode_stack_.\n                      super__Vector_base<gold::Lex::Mode,_std::allocator<gold::Lex::Mode>_>._M_impl.\n                      _M_start);\n    }\n    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)input_string._M_dataplus._M_p != &input_string.field_2) {\n      operator_delete(input_string._M_dataplus._M_p);\n    }\n    return (bool)cVar3;\n  }" { (expression_statement "closure.version_script_info_ = &(closure.script_options_)->version_script_info_;" (assignment_expression "closure.version_script_info_ = &(closure.script_options_)->version_script_info_" (field_expression "closure.version_script_info_" identifier . field_identifier) = (pointer_expression "&(closure.script_options_)->version_script_info_" & (field_expression "(closure.script_options_)->version_script_info_" (parenthesized_expression "(closure.script_options_)" ( (field_expression "closure.script_options_" identifier . field_identifier) )) -> field_identifier))) ;) (expression_statement "closure.filename_ = (input_file->file_).name_._M_dataplus._M_p;" (assignment_expression "closure.filename_ = (input_file->file_).name_._M_dataplus._M_p" (field_expression "closure.filename_" identifier . field_identifier) = (field_expression "(input_file->file_).name_._M_dataplus._M_p" (field_expression "(input_file->file_).name_._M_dataplus" (field_expression "(input_file->file_).name_" (parenthesized_expression "(input_file->file_)" ( (field_expression "input_file->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "closure.parsing_defsym_ = false;" (assignment_expression "closure.parsing_defsym_ = false" (field_expression "closure.parsing_defsym_" identifier . field_identifier) = false) ;) (expression_statement "closure.posdep_options_.as_needed_ = (input_argument->file_).options_.as_needed_;" (assignment_expression "closure.posdep_options_.as_needed_ = (input_argument->file_).options_.as_needed_" (field_expression "closure.posdep_options_.as_needed_" (field_expression "closure.posdep_options_" identifier . field_identifier) . field_identifier) = (field_expression "(input_argument->file_).options_.as_needed_" (field_expression "(input_argument->file_).options_" (parenthesized_expression "(input_argument->file_)" ( (field_expression "input_argument->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "closure.posdep_options_.Bdynamic_ = (input_argument->file_).options_.Bdynamic_;" (assignment_expression "closure.posdep_options_.Bdynamic_ = (input_argument->file_).options_.Bdynamic_" (field_expression "closure.posdep_options_.Bdynamic_" (field_expression "closure.posdep_options_" identifier . field_identifier) . field_identifier) = (field_expression "(input_argument->file_).options_.Bdynamic_" (field_expression "(input_argument->file_).options_" (parenthesized_expression "(input_argument->file_)" ( (field_expression "input_argument->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "closure.posdep_options_._2_2_ = *(undefined2 *)&(input_argument->file_).options_.field_0x2;" (assignment_expression "closure.posdep_options_._2_2_ = *(undefined2 *)&(input_argument->file_).options_.field_0x2" (field_expression "closure.posdep_options_._2_2_" (field_expression "closure.posdep_options_" identifier . field_identifier) . field_identifier) = (pointer_expression "*(undefined2 *)&(input_argument->file_).options_.field_0x2" * (cast_expression "(undefined2 *)&(input_argument->file_).options_.field_0x2" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(input_argument->file_).options_.field_0x2" & (field_expression "(input_argument->file_).options_.field_0x2" (field_expression "(input_argument->file_).options_" (parenthesized_expression "(input_argument->file_)" ( (field_expression "input_argument->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier))))) ;) (expression_statement "closure.found_incompatible_target_ = false;" (assignment_expression "closure.found_incompatible_target_ = false" (field_expression "closure.found_incompatible_target_" identifier . field_identifier) = false) ;) (expression_statement "closure.posdep_options_.format_enum_ = (input_argument->file_).options_.format_enum_;" (assignment_expression "closure.posdep_options_.format_enum_ = (input_argument->file_).options_.format_enum_" (field_expression "closure.posdep_options_.format_enum_" (field_expression "closure.posdep_options_" identifier . field_identifier) . field_identifier) = (field_expression "(input_argument->file_).options_.format_enum_" (field_expression "(input_argument->file_).options_" (parenthesized_expression "(input_argument->file_)" ( (field_expression "input_argument->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "closure.command_line_ = (Command_line *)0x0;" (assignment_expression "closure.command_line_ = (Command_line *)0x0" (field_expression "closure.command_line_" identifier . field_identifier) = (cast_expression "(Command_line *)0x0" ( (type_descriptor "Command_line *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "closure.posdep_options_.whole_archive_ = (input_argument->file_).options_.whole_archive_;" (assignment_expression "closure.posdep_options_.whole_archive_ = (input_argument->file_).options_.whole_archive_" (field_expression "closure.posdep_options_.whole_archive_" (field_expression "closure.posdep_options_" identifier . field_identifier) . field_identifier) = (field_expression "(input_argument->file_).options_.whole_archive_" (field_expression "(input_argument->file_).options_" (parenthesized_expression "(input_argument->file_)" ( (field_expression "input_argument->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "closure.posdep_options_._9_3_ = *(undefined3 *)&(input_argument->file_).options_.field_0x9;" (assignment_expression "closure.posdep_options_._9_3_ = *(undefined3 *)&(input_argument->file_).options_.field_0x9" (field_expression "closure.posdep_options_._9_3_" (field_expression "closure.posdep_options_" identifier . field_identifier) . field_identifier) = (pointer_expression "*(undefined3 *)&(input_argument->file_).options_.field_0x9" * (cast_expression "(undefined3 *)&(input_argument->file_).options_.field_0x9" ( (type_descriptor "undefined3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(input_argument->file_).options_.field_0x9" & (field_expression "(input_argument->file_).options_.field_0x9" (field_expression "(input_argument->file_).options_" (parenthesized_expression "(input_argument->file_)" ( (field_expression "input_argument->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier))))) ;) (expression_statement "closure.posdep_options_.incremental_disposition_ =\n         (input_argument->file_).options_.incremental_disposition_;" (assignment_expression "closure.posdep_options_.incremental_disposition_ =\n         (input_argument->file_).options_.incremental_disposition_" (field_expression "closure.posdep_options_.incremental_disposition_" (field_expression "closure.posdep_options_" identifier . field_identifier) . field_identifier) = (field_expression "(input_argument->file_).options_.incremental_disposition_" (field_expression "(input_argument->file_).options_" (parenthesized_expression "(input_argument->file_)" ( (field_expression "input_argument->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "closure.lineno_ = 0;" (assignment_expression "closure.lineno_ = 0" (field_expression "closure.lineno_" identifier . field_identifier) = number_literal) ;) (expression_statement "closure.charpos_ = 0;" (assignment_expression "closure.charpos_ = 0" (field_expression "closure.charpos_" identifier . field_identifier) = number_literal) ;) (expression_statement "closure.lex_ = &lex;" (assignment_expression "closure.lex_ = &lex" (field_expression "closure.lex_" identifier . field_identifier) = (pointer_expression "&lex" & identifier)) ;) (ERROR "closure.lex_mode_stack_.super__Vector_base<gold::" (binary_expression "closure.lex_mode_stack_.super__Vector_base<gold" (field_expression "closure.lex_mode_stack_.super__Vector_base" (field_expression "closure.lex_mode_stack_" identifier . field_identifier) . field_identifier) < identifier) : :) (labeled_statement "Lex::Mode,_std::allocator<gold::Lex::Mode>_>.\n    _M_impl._M_start = (pointer)0x0;" statement_identifier (ERROR "::Mode,_std::allocator<gold:" : : (comma_expression "Mode,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Lex::Mode>_>.\n    _M_impl._M_start = (pointer)0x0;" statement_identifier : (ERROR ":" :) (expression_statement "Mode>_>.\n    _M_impl._M_start = (pointer)0x0;" (assignment_expression "Mode>_>.\n    _M_impl._M_start = (pointer)0x0" (field_expression "Mode>_>.\n    _M_impl._M_start" (field_expression "Mode>_>.\n    _M_impl" (binary_expression "Mode>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;))) (ERROR "closure.lex_mode_stack_.super__Vector_base<gold::" (binary_expression "closure.lex_mode_stack_.super__Vector_base<gold" (field_expression "closure.lex_mode_stack_.super__Vector_base" (field_expression "closure.lex_mode_stack_" identifier . field_identifier) . field_identifier) < identifier) : :) (labeled_statement "Lex::Mode,_std::allocator<gold::Lex::Mode>_>.\n    _M_impl._M_finish = (pointer)0x0;" statement_identifier (ERROR "::Mode,_std::allocator<gold:" : : (comma_expression "Mode,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Lex::Mode>_>.\n    _M_impl._M_finish = (pointer)0x0;" statement_identifier : (ERROR ":" :) (expression_statement "Mode>_>.\n    _M_impl._M_finish = (pointer)0x0;" (assignment_expression "Mode>_>.\n    _M_impl._M_finish = (pointer)0x0" (field_expression "Mode>_>.\n    _M_impl._M_finish" (field_expression "Mode>_>.\n    _M_impl" (binary_expression "Mode>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;))) (ERROR "closure.lex_mode_stack_.super__Vector_base<gold::" (binary_expression "closure.lex_mode_stack_.super__Vector_base<gold" (field_expression "closure.lex_mode_stack_.super__Vector_base" (field_expression "closure.lex_mode_stack_" identifier . field_identifier) . field_identifier) < identifier) : :) (labeled_statement "Lex::Mode,_std::allocator<gold::Lex::Mode>_>.\n    _M_impl._M_end_of_storage = (pointer)0x0;" statement_identifier (ERROR "::Mode,_std::allocator<gold:" : : (comma_expression "Mode,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Lex::Mode>_>.\n    _M_impl._M_end_of_storage = (pointer)0x0;" statement_identifier : (ERROR ":" :) (expression_statement "Mode>_>.\n    _M_impl._M_end_of_storage = (pointer)0x0;" (assignment_expression "Mode>_>.\n    _M_impl._M_end_of_storage = (pointer)0x0" (field_expression "Mode>_>.\n    _M_impl._M_end_of_storage" (field_expression "Mode>_>.\n    _M_impl" (binary_expression "Mode>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;))) (ERROR "closure.language_stack_.\n    super__Vector_base<gold::" (binary_expression "closure.language_stack_.\n    super__Vector_base<gold" (field_expression "closure.language_stack_.\n    super__Vector_base" (field_expression "closure.language_stack_" identifier . field_identifier) . field_identifier) < identifier) : :) (labeled_statement "Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    ._M_impl._M_start = (pointer)0x0;" statement_identifier (ERROR "::Language,_std::allocator<gold:" : : (comma_expression "Language,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Version_script_info::Language>_>\n    ._M_impl._M_start = (pointer)0x0;" statement_identifier : (ERROR ":" :) (expression_statement "Language>_>\n    ._M_impl._M_start = (pointer)0x0;" (assignment_expression "Language>_>\n    ._M_impl._M_start = (pointer)0x0" (field_expression "Language>_>\n    ._M_impl._M_start" (field_expression "Language>_>\n    ._M_impl" (binary_expression "Language>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;))) (ERROR "closure.language_stack_.\n    super__Vector_base<gold::" (binary_expression "closure.language_stack_.\n    super__Vector_base<gold" (field_expression "closure.language_stack_.\n    super__Vector_base" (field_expression "closure.language_stack_" identifier . field_identifier) . field_identifier) < identifier) : :) (labeled_statement "Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    ._M_impl._M_finish = (pointer)0x0;" statement_identifier (ERROR "::Language,_std::allocator<gold:" : : (comma_expression "Language,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Version_script_info::Language>_>\n    ._M_impl._M_finish = (pointer)0x0;" statement_identifier : (ERROR ":" :) (expression_statement "Language>_>\n    ._M_impl._M_finish = (pointer)0x0;" (assignment_expression "Language>_>\n    ._M_impl._M_finish = (pointer)0x0" (field_expression "Language>_>\n    ._M_impl._M_finish" (field_expression "Language>_>\n    ._M_impl" (binary_expression "Language>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;))) (ERROR "closure.language_stack_.\n    super__Vector_base<gold::" (binary_expression "closure.language_stack_.\n    super__Vector_base<gold" (field_expression "closure.language_stack_.\n    super__Vector_base" (field_expression "closure.language_stack_" identifier . field_identifier) . field_identifier) < identifier) : :) (labeled_statement "Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;" statement_identifier (ERROR "::Language,_std::allocator<gold:" : : (comma_expression "Language,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Version_script_info::Language>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;" statement_identifier : (ERROR ":" :) (expression_statement "Language>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;" (assignment_expression "Language>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0" (field_expression "Language>_>\n    ._M_impl._M_end_of_storage" (field_expression "Language>_>\n    ._M_impl" (binary_expression "Language>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;))) (expression_statement "closure.inputs_ = (Input_arguments *)0x0;" (assignment_expression "closure.inputs_ = (Input_arguments *)0x0" (field_expression "closure.inputs_" identifier . field_identifier) = (cast_expression "(Input_arguments *)0x0" ( (type_descriptor "Input_arguments *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_c0 = LANGUAGE_C;" (assignment_expression "local_c0 = LANGUAGE_C" identifier = identifier) ;) (expression_statement "closure.script_info_ = (Script_info *)script;" (assignment_expression "closure.script_info_ = (Script_info *)script" (field_expression "closure.script_info_" identifier . field_identifier) = (cast_expression "(Script_info *)script" ( (type_descriptor "Script_info *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) comment (labeled_statement "std::\n    vector<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    ::_M_realloc_insert<gold::Version_script_info::Language>\n              (&closure.language_stack_,(iterator)0x0,&local_c0);" statement_identifier (ERROR "::\n    vector<gold:" : : (binary_expression "vector<gold" identifier < identifier) :) : (labeled_statement "Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    ::_M_realloc_insert<gold::Version_script_info::Language>\n              (&closure.language_stack_,(iterator)0x0,&local_c0);" statement_identifier (ERROR "::Language,_std::allocator<gold:" : : (comma_expression "Language,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Version_script_info::Language>_>\n    ::_M_realloc_insert<gold::Version_script_info::Language>\n              (&closure.language_stack_,(iterator)0x0,&local_c0);" statement_identifier (ERROR "::Language>_>\n    ::_M_realloc_insert<gold:" : : (binary_expression "Language>_" identifier > identifier) > : : (binary_expression "_M_realloc_insert<gold" identifier < identifier) :) : (labeled_statement "Version_script_info::Language>\n              (&closure.language_stack_,(iterator)0x0,&local_c0);" statement_identifier : (ERROR ":" :) (expression_statement "Language>\n              (&closure.language_stack_,(iterator)0x0,&local_c0);" (binary_expression "Language>\n              (&closure.language_stack_,(iterator)0x0,&local_c0)" identifier > (parenthesized_expression "(&closure.language_stack_,(iterator)0x0,&local_c0)" ( (comma_expression "&closure.language_stack_,(iterator)0x0,&local_c0" (pointer_expression "&closure.language_stack_" & (field_expression "closure.language_stack_" identifier . field_identifier)) , (comma_expression "(iterator)0x0,&local_c0" (cast_expression "(iterator)0x0" ( (type_descriptor "iterator" type_identifier) ) number_literal) , (pointer_expression "&local_c0" & identifier))) ))) ;))))) (expression_statement "local_c0 = lex.mode_;" (assignment_expression "local_c0 = lex.mode_" identifier = (field_expression "lex.mode_" identifier . field_identifier)) ;) (labeled_statement "std::vector<gold::Lex::Mode,_std::allocator<gold::Lex::Mode>_>::emplace_back<gold::Lex::Mode>\n              (&closure.lex_mode_stack_,&local_c0);" statement_identifier (ERROR "::vector<gold:" : : (binary_expression "vector<gold" identifier < identifier) :) : (labeled_statement "Lex::Mode,_std::allocator<gold::Lex::Mode>_>::emplace_back<gold::Lex::Mode>\n              (&closure.lex_mode_stack_,&local_c0);" statement_identifier (ERROR "::Mode,_std::allocator<gold:" : : (comma_expression "Mode,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Lex::Mode>_>::emplace_back<gold::Lex::Mode>\n              (&closure.lex_mode_stack_,&local_c0);" statement_identifier (ERROR "::Mode>_>::emplace_back<gold:" : : (binary_expression "Mode>_" identifier > identifier) > : : (binary_expression "emplace_back<gold" identifier < identifier) :) : (labeled_statement "Lex::Mode>\n              (&closure.lex_mode_stack_,&local_c0);" statement_identifier : (ERROR ":" :) (expression_statement "Mode>\n              (&closure.lex_mode_stack_,&local_c0);" (binary_expression "Mode>\n              (&closure.lex_mode_stack_,&local_c0)" identifier > (parenthesized_expression "(&closure.lex_mode_stack_,&local_c0)" ( (comma_expression "&closure.lex_mode_stack_,&local_c0" (pointer_expression "&closure.lex_mode_stack_" & (field_expression "closure.lex_mode_stack_" identifier . field_identifier)) , (pointer_expression "&local_c0" & identifier)) ))) ;))))) (expression_statement "bVar2 = (layout->script_options_->script_sections_).saw_sections_clause_;" (assignment_expression "bVar2 = (layout->script_options_->script_sections_).saw_sections_clause_" identifier = (field_expression "(layout->script_options_->script_sections_).saw_sections_clause_" (parenthesized_expression "(layout->script_options_->script_sections_)" ( (field_expression "layout->script_options_->script_sections_" (field_expression "layout->script_options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier)) ;) comment (expression_statement "iVar5 = yyparse(&closure);" (assignment_expression "iVar5 = yyparse(&closure)" identifier = (call_expression "yyparse(&closure)" identifier (argument_list "(&closure)" ( (pointer_expression "&closure" & identifier) )))) ;) (expression_statement "cVar3 = bVar1;" (assignment_expression "cVar3 = bVar1" identifier = identifier) ;) (if_statement "if (iVar5 == 0) {\n      if (((bVar2 == false) &&\n          ((layout->script_options_->script_sections_).saw_sections_clause_ != false)) &&\n         (layout->have_added_input_section_ != false)) {\n        pcVar4 = (input_file->file_).name_._M_dataplus._M_p;\n        format = (char *)gettext("%s: SECTIONS seen after other input files; try -T/--script");\n        gold_error(format,pcVar4);\n      }\n      if (closure.inputs_ != (Input_arguments *)0x0) {\n        local_e4 = (Task *)0x0;\n        pIVar8 = ((closure.inputs_)->input_argument_list_).\n                 super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n                 _M_impl._M_finish;\n        local_dc = ((closure.inputs_)->input_argument_list_).\n                   super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n                   _M_impl._M_start;\n        if (pIVar8 != local_dc) {\n          do {\n            pIVar6 = local_dc + 1;\n            pTVar7 = (Task *)next_blocker;\n            if (pIVar6 != pIVar8) {\n              pTVar7 = (Task *)operator_new(0x14);\n              *(undefined1 *)&pTVar7->_vptr_Task = 1;\n              (pTVar7->name_)._M_dataplus._M_p = (pointer)0x0;\n              (pTVar7->name_)._M_string_length = 0;\n              (pTVar7->name_).field_2._M_allocated_capacity = 0;\n              pTVar7->list_next_ = (Task *)0x1;\n            }\n            t = (Task *)operator_new(0x50);\n            t->list_next_ = (Task *)0x0;\n            (t->name_)._M_dataplus._M_p = (pointer)&(t->name_).field_2;\n            (t->name_)._M_string_length = 0;\n            t->_vptr_Task = (_func_int_varargs **)&PTR__Read_symbols_00384d90;\n            t[1].name_._M_string_length = (size_type)dirsearch;\n            t[1]._vptr_Task = (_func_int_varargs **)input_objects;\n            *(Mapfile **)((int)&t[1].name_.field_2 + 4) = mapfile;\n            t[1].list_next_ = (Task *)symtab;\n            t[2]._vptr_Task = (_func_int_varargs **)local_e4;\n            t[1].name_._M_dataplus._M_p = (pointer)layout;\n            (t->name_).field_2._M_local_buf[0] = '\0';\n            t->should_run_soon_ = false;\n            t[1].name_.field_2._M_allocated_capacity = 0;\n            *(pointer *)((int)&t[1].name_.field_2 + 8) = local_dc;\n            *(Input_group **)((int)&t[1].name_.field_2 + 0xc) = input_group;\n            *(undefined4 *)&t[1].should_run_soon_ = 0;\n            t[2].list_next_ = pTVar7;\n            Workqueue::queue_soon(workqueue,t);\n            if (closure.inputs_ == (Input_arguments *)0x0) {\n              closure.inputs_ = (Input_arguments *)operator_new(0x14);\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_start = (pointer)0x0;\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_finish = (pointer)0x0;\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_end_of_storage = (pointer)0x0;\n              (closure.inputs_)->in_group_ = false;\n              (closure.inputs_)->in_lib_ = false;\n              (closure.inputs_)->file_count_ = 0;\n              pIVar8 = (pointer)0x0;\n            }\n            else {\n              pIVar8 = ((closure.inputs_)->input_argument_list_).\n                       super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>\n                       ._M_impl._M_finish;\n            }\n            local_e4 = pTVar7;\n            local_dc = pIVar6;\n          } while (pIVar6 != pIVar8);\n          *used_next_blocker = true;\n        }\n      }\n    }\n    else {\n      cVar3 = closure.found_incompatible_target_;\n      if (closure.found_incompatible_target_ != false) {\n        Read_symbols::incompatible_warning(input_argument,input_file);\n        Read_symbols::requeue\n                  (workqueue,input_objects,symtab,layout,dirsearch,dirindex,mapfile,input_argument,\n                   input_group,next_blocker);\n        cVar3 = bVar1;\n      }\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      if (((bVar2 == false) &&\n          ((layout->script_options_->script_sections_).saw_sections_clause_ != false)) &&\n         (layout->have_added_input_section_ != false)) {\n        pcVar4 = (input_file->file_).name_._M_dataplus._M_p;\n        format = (char *)gettext("%s: SECTIONS seen after other input files; try -T/--script");\n        gold_error(format,pcVar4);\n      }\n      if (closure.inputs_ != (Input_arguments *)0x0) {\n        local_e4 = (Task *)0x0;\n        pIVar8 = ((closure.inputs_)->input_argument_list_).\n                 super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n                 _M_impl._M_finish;\n        local_dc = ((closure.inputs_)->input_argument_list_).\n                   super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n                   _M_impl._M_start;\n        if (pIVar8 != local_dc) {\n          do {\n            pIVar6 = local_dc + 1;\n            pTVar7 = (Task *)next_blocker;\n            if (pIVar6 != pIVar8) {\n              pTVar7 = (Task *)operator_new(0x14);\n              *(undefined1 *)&pTVar7->_vptr_Task = 1;\n              (pTVar7->name_)._M_dataplus._M_p = (pointer)0x0;\n              (pTVar7->name_)._M_string_length = 0;\n              (pTVar7->name_).field_2._M_allocated_capacity = 0;\n              pTVar7->list_next_ = (Task *)0x1;\n            }\n            t = (Task *)operator_new(0x50);\n            t->list_next_ = (Task *)0x0;\n            (t->name_)._M_dataplus._M_p = (pointer)&(t->name_).field_2;\n            (t->name_)._M_string_length = 0;\n            t->_vptr_Task = (_func_int_varargs **)&PTR__Read_symbols_00384d90;\n            t[1].name_._M_string_length = (size_type)dirsearch;\n            t[1]._vptr_Task = (_func_int_varargs **)input_objects;\n            *(Mapfile **)((int)&t[1].name_.field_2 + 4) = mapfile;\n            t[1].list_next_ = (Task *)symtab;\n            t[2]._vptr_Task = (_func_int_varargs **)local_e4;\n            t[1].name_._M_dataplus._M_p = (pointer)layout;\n            (t->name_).field_2._M_local_buf[0] = '\0';\n            t->should_run_soon_ = false;\n            t[1].name_.field_2._M_allocated_capacity = 0;\n            *(pointer *)((int)&t[1].name_.field_2 + 8) = local_dc;\n            *(Input_group **)((int)&t[1].name_.field_2 + 0xc) = input_group;\n            *(undefined4 *)&t[1].should_run_soon_ = 0;\n            t[2].list_next_ = pTVar7;\n            Workqueue::queue_soon(workqueue,t);\n            if (closure.inputs_ == (Input_arguments *)0x0) {\n              closure.inputs_ = (Input_arguments *)operator_new(0x14);\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_start = (pointer)0x0;\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_finish = (pointer)0x0;\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_end_of_storage = (pointer)0x0;\n              (closure.inputs_)->in_group_ = false;\n              (closure.inputs_)->in_lib_ = false;\n              (closure.inputs_)->file_count_ = 0;\n              pIVar8 = (pointer)0x0;\n            }\n            else {\n              pIVar8 = ((closure.inputs_)->input_argument_list_).\n                       super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>\n                       ._M_impl._M_finish;\n            }\n            local_e4 = pTVar7;\n            local_dc = pIVar6;\n          } while (pIVar6 != pIVar8);\n          *used_next_blocker = true;\n        }\n      }\n    }" { (if_statement "if (((bVar2 == false) &&\n          ((layout->script_options_->script_sections_).saw_sections_clause_ != false)) &&\n         (layout->have_added_input_section_ != false)) {\n        pcVar4 = (input_file->file_).name_._M_dataplus._M_p;\n        format = (char *)gettext("%s: SECTIONS seen after other input files; try -T/--script");\n        gold_error(format,pcVar4);\n      }" if (parenthesized_expression "(((bVar2 == false) &&\n          ((layout->script_options_->script_sections_).saw_sections_clause_ != false)) &&\n         (layout->have_added_input_section_ != false))" ( (binary_expression "((bVar2 == false) &&\n          ((layout->script_options_->script_sections_).saw_sections_clause_ != false)) &&\n         (layout->have_added_input_section_ != false)" (parenthesized_expression "((bVar2 == false) &&\n          ((layout->script_options_->script_sections_).saw_sections_clause_ != false))" ( (binary_expression "(bVar2 == false) &&\n          ((layout->script_options_->script_sections_).saw_sections_clause_ != false)" (parenthesized_expression "(bVar2 == false)" ( (binary_expression "bVar2 == false" identifier == false) )) && (parenthesized_expression "((layout->script_options_->script_sections_).saw_sections_clause_ != false)" ( (binary_expression "(layout->script_options_->script_sections_).saw_sections_clause_ != false" (field_expression "(layout->script_options_->script_sections_).saw_sections_clause_" (parenthesized_expression "(layout->script_options_->script_sections_)" ( (field_expression "layout->script_options_->script_sections_" (field_expression "layout->script_options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) != false) ))) )) && (parenthesized_expression "(layout->have_added_input_section_ != false)" ( (binary_expression "layout->have_added_input_section_ != false" (field_expression "layout->have_added_input_section_" identifier -> field_identifier) != false) ))) )) (compound_statement "{\n        pcVar4 = (input_file->file_).name_._M_dataplus._M_p;\n        format = (char *)gettext("%s: SECTIONS seen after other input files; try -T/--script");\n        gold_error(format,pcVar4);\n      }" { (expression_statement "pcVar4 = (input_file->file_).name_._M_dataplus._M_p;" (assignment_expression "pcVar4 = (input_file->file_).name_._M_dataplus._M_p" identifier = (field_expression "(input_file->file_).name_._M_dataplus._M_p" (field_expression "(input_file->file_).name_._M_dataplus" (field_expression "(input_file->file_).name_" (parenthesized_expression "(input_file->file_)" ( (field_expression "input_file->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "format = (char *)gettext("%s: SECTIONS seen after other input files; try -T/--script");" (assignment_expression "format = (char *)gettext("%s: SECTIONS seen after other input files; try -T/--script")" identifier = (cast_expression "(char *)gettext("%s: SECTIONS seen after other input files; try -T/--script")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("%s: SECTIONS seen after other input files; try -T/--script")" identifier (argument_list "("%s: SECTIONS seen after other input files; try -T/--script")" ( (string_literal ""%s: SECTIONS seen after other input files; try -T/--script"" " string_content ") ))))) ;) (expression_statement "gold_error(format,pcVar4);" (call_expression "gold_error(format,pcVar4)" identifier (argument_list "(format,pcVar4)" ( identifier , identifier ))) ;) })) (if_statement "if (closure.inputs_ != (Input_arguments *)0x0) {\n        local_e4 = (Task *)0x0;\n        pIVar8 = ((closure.inputs_)->input_argument_list_).\n                 super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n                 _M_impl._M_finish;\n        local_dc = ((closure.inputs_)->input_argument_list_).\n                   super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n                   _M_impl._M_start;\n        if (pIVar8 != local_dc) {\n          do {\n            pIVar6 = local_dc + 1;\n            pTVar7 = (Task *)next_blocker;\n            if (pIVar6 != pIVar8) {\n              pTVar7 = (Task *)operator_new(0x14);\n              *(undefined1 *)&pTVar7->_vptr_Task = 1;\n              (pTVar7->name_)._M_dataplus._M_p = (pointer)0x0;\n              (pTVar7->name_)._M_string_length = 0;\n              (pTVar7->name_).field_2._M_allocated_capacity = 0;\n              pTVar7->list_next_ = (Task *)0x1;\n            }\n            t = (Task *)operator_new(0x50);\n            t->list_next_ = (Task *)0x0;\n            (t->name_)._M_dataplus._M_p = (pointer)&(t->name_).field_2;\n            (t->name_)._M_string_length = 0;\n            t->_vptr_Task = (_func_int_varargs **)&PTR__Read_symbols_00384d90;\n            t[1].name_._M_string_length = (size_type)dirsearch;\n            t[1]._vptr_Task = (_func_int_varargs **)input_objects;\n            *(Mapfile **)((int)&t[1].name_.field_2 + 4) = mapfile;\n            t[1].list_next_ = (Task *)symtab;\n            t[2]._vptr_Task = (_func_int_varargs **)local_e4;\n            t[1].name_._M_dataplus._M_p = (pointer)layout;\n            (t->name_).field_2._M_local_buf[0] = '\0';\n            t->should_run_soon_ = false;\n            t[1].name_.field_2._M_allocated_capacity = 0;\n            *(pointer *)((int)&t[1].name_.field_2 + 8) = local_dc;\n            *(Input_group **)((int)&t[1].name_.field_2 + 0xc) = input_group;\n            *(undefined4 *)&t[1].should_run_soon_ = 0;\n            t[2].list_next_ = pTVar7;\n            Workqueue::queue_soon(workqueue,t);\n            if (closure.inputs_ == (Input_arguments *)0x0) {\n              closure.inputs_ = (Input_arguments *)operator_new(0x14);\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_start = (pointer)0x0;\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_finish = (pointer)0x0;\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_end_of_storage = (pointer)0x0;\n              (closure.inputs_)->in_group_ = false;\n              (closure.inputs_)->in_lib_ = false;\n              (closure.inputs_)->file_count_ = 0;\n              pIVar8 = (pointer)0x0;\n            }\n            else {\n              pIVar8 = ((closure.inputs_)->input_argument_list_).\n                       super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>\n                       ._M_impl._M_finish;\n            }\n            local_e4 = pTVar7;\n            local_dc = pIVar6;\n          } while (pIVar6 != pIVar8);\n          *used_next_blocker = true;\n        }\n      }" if (parenthesized_expression "(closure.inputs_ != (Input_arguments *)0x0)" ( (binary_expression "closure.inputs_ != (Input_arguments *)0x0" (field_expression "closure.inputs_" identifier . field_identifier) != (cast_expression "(Input_arguments *)0x0" ( (type_descriptor "Input_arguments *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_e4 = (Task *)0x0;\n        pIVar8 = ((closure.inputs_)->input_argument_list_).\n                 super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n                 _M_impl._M_finish;\n        local_dc = ((closure.inputs_)->input_argument_list_).\n                   super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n                   _M_impl._M_start;\n        if (pIVar8 != local_dc) {\n          do {\n            pIVar6 = local_dc + 1;\n            pTVar7 = (Task *)next_blocker;\n            if (pIVar6 != pIVar8) {\n              pTVar7 = (Task *)operator_new(0x14);\n              *(undefined1 *)&pTVar7->_vptr_Task = 1;\n              (pTVar7->name_)._M_dataplus._M_p = (pointer)0x0;\n              (pTVar7->name_)._M_string_length = 0;\n              (pTVar7->name_).field_2._M_allocated_capacity = 0;\n              pTVar7->list_next_ = (Task *)0x1;\n            }\n            t = (Task *)operator_new(0x50);\n            t->list_next_ = (Task *)0x0;\n            (t->name_)._M_dataplus._M_p = (pointer)&(t->name_).field_2;\n            (t->name_)._M_string_length = 0;\n            t->_vptr_Task = (_func_int_varargs **)&PTR__Read_symbols_00384d90;\n            t[1].name_._M_string_length = (size_type)dirsearch;\n            t[1]._vptr_Task = (_func_int_varargs **)input_objects;\n            *(Mapfile **)((int)&t[1].name_.field_2 + 4) = mapfile;\n            t[1].list_next_ = (Task *)symtab;\n            t[2]._vptr_Task = (_func_int_varargs **)local_e4;\n            t[1].name_._M_dataplus._M_p = (pointer)layout;\n            (t->name_).field_2._M_local_buf[0] = '\0';\n            t->should_run_soon_ = false;\n            t[1].name_.field_2._M_allocated_capacity = 0;\n            *(pointer *)((int)&t[1].name_.field_2 + 8) = local_dc;\n            *(Input_group **)((int)&t[1].name_.field_2 + 0xc) = input_group;\n            *(undefined4 *)&t[1].should_run_soon_ = 0;\n            t[2].list_next_ = pTVar7;\n            Workqueue::queue_soon(workqueue,t);\n            if (closure.inputs_ == (Input_arguments *)0x0) {\n              closure.inputs_ = (Input_arguments *)operator_new(0x14);\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_start = (pointer)0x0;\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_finish = (pointer)0x0;\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_end_of_storage = (pointer)0x0;\n              (closure.inputs_)->in_group_ = false;\n              (closure.inputs_)->in_lib_ = false;\n              (closure.inputs_)->file_count_ = 0;\n              pIVar8 = (pointer)0x0;\n            }\n            else {\n              pIVar8 = ((closure.inputs_)->input_argument_list_).\n                       super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>\n                       ._M_impl._M_finish;\n            }\n            local_e4 = pTVar7;\n            local_dc = pIVar6;\n          } while (pIVar6 != pIVar8);\n          *used_next_blocker = true;\n        }\n      }" { (expression_statement "local_e4 = (Task *)0x0;" (assignment_expression "local_e4 = (Task *)0x0" identifier = (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (ERROR "pIVar8 = ((closure.inputs_)->input_argument_list_).\n                 super__Vector_base<gold::Input_argument,_std::allocator<gold::" (comma_expression "pIVar8 = ((closure.inputs_)->input_argument_list_).\n                 super__Vector_base<gold::Input_argument,_std" (assignment_expression "pIVar8 = ((closure.inputs_)->input_argument_list_).\n                 super__Vector_base<gold" identifier = (binary_expression "((closure.inputs_)->input_argument_list_).\n                 super__Vector_base<gold" (field_expression "((closure.inputs_)->input_argument_list_).\n                 super__Vector_base" (parenthesized_expression "((closure.inputs_)->input_argument_list_)" ( (field_expression "(closure.inputs_)->input_argument_list_" (parenthesized_expression "(closure.inputs_)" ( (field_expression "closure.inputs_" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Input_argument" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Input_argument>_>.\n                 _M_impl._M_finish;" (field_expression "Input_argument>_>.\n                 _M_impl._M_finish" (field_expression "Input_argument>_>.\n                 _M_impl" (binary_expression "Input_argument>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (ERROR "local_dc = ((closure.inputs_)->input_argument_list_).\n                   super__Vector_base<gold::Input_argument,_std::allocator<gold::" (comma_expression "local_dc = ((closure.inputs_)->input_argument_list_).\n                   super__Vector_base<gold::Input_argument,_std" (assignment_expression "local_dc = ((closure.inputs_)->input_argument_list_).\n                   super__Vector_base<gold" identifier = (binary_expression "((closure.inputs_)->input_argument_list_).\n                   super__Vector_base<gold" (field_expression "((closure.inputs_)->input_argument_list_).\n                   super__Vector_base" (parenthesized_expression "((closure.inputs_)->input_argument_list_)" ( (field_expression "(closure.inputs_)->input_argument_list_" (parenthesized_expression "(closure.inputs_)" ( (field_expression "closure.inputs_" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Input_argument" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Input_argument>_>.\n                   _M_impl._M_start;" (field_expression "Input_argument>_>.\n                   _M_impl._M_start" (field_expression "Input_argument>_>.\n                   _M_impl" (binary_expression "Input_argument>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (pIVar8 != local_dc) {\n          do {\n            pIVar6 = local_dc + 1;\n            pTVar7 = (Task *)next_blocker;\n            if (pIVar6 != pIVar8) {\n              pTVar7 = (Task *)operator_new(0x14);\n              *(undefined1 *)&pTVar7->_vptr_Task = 1;\n              (pTVar7->name_)._M_dataplus._M_p = (pointer)0x0;\n              (pTVar7->name_)._M_string_length = 0;\n              (pTVar7->name_).field_2._M_allocated_capacity = 0;\n              pTVar7->list_next_ = (Task *)0x1;\n            }\n            t = (Task *)operator_new(0x50);\n            t->list_next_ = (Task *)0x0;\n            (t->name_)._M_dataplus._M_p = (pointer)&(t->name_).field_2;\n            (t->name_)._M_string_length = 0;\n            t->_vptr_Task = (_func_int_varargs **)&PTR__Read_symbols_00384d90;\n            t[1].name_._M_string_length = (size_type)dirsearch;\n            t[1]._vptr_Task = (_func_int_varargs **)input_objects;\n            *(Mapfile **)((int)&t[1].name_.field_2 + 4) = mapfile;\n            t[1].list_next_ = (Task *)symtab;\n            t[2]._vptr_Task = (_func_int_varargs **)local_e4;\n            t[1].name_._M_dataplus._M_p = (pointer)layout;\n            (t->name_).field_2._M_local_buf[0] = '\0';\n            t->should_run_soon_ = false;\n            t[1].name_.field_2._M_allocated_capacity = 0;\n            *(pointer *)((int)&t[1].name_.field_2 + 8) = local_dc;\n            *(Input_group **)((int)&t[1].name_.field_2 + 0xc) = input_group;\n            *(undefined4 *)&t[1].should_run_soon_ = 0;\n            t[2].list_next_ = pTVar7;\n            Workqueue::queue_soon(workqueue,t);\n            if (closure.inputs_ == (Input_arguments *)0x0) {\n              closure.inputs_ = (Input_arguments *)operator_new(0x14);\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_start = (pointer)0x0;\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_finish = (pointer)0x0;\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_end_of_storage = (pointer)0x0;\n              (closure.inputs_)->in_group_ = false;\n              (closure.inputs_)->in_lib_ = false;\n              (closure.inputs_)->file_count_ = 0;\n              pIVar8 = (pointer)0x0;\n            }\n            else {\n              pIVar8 = ((closure.inputs_)->input_argument_list_).\n                       super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>\n                       ._M_impl._M_finish;\n            }\n            local_e4 = pTVar7;\n            local_dc = pIVar6;\n          } while (pIVar6 != pIVar8);\n          *used_next_blocker = true;\n        }" if (parenthesized_expression "(pIVar8 != local_dc)" ( (binary_expression "pIVar8 != local_dc" identifier != identifier) )) (compound_statement "{\n          do {\n            pIVar6 = local_dc + 1;\n            pTVar7 = (Task *)next_blocker;\n            if (pIVar6 != pIVar8) {\n              pTVar7 = (Task *)operator_new(0x14);\n              *(undefined1 *)&pTVar7->_vptr_Task = 1;\n              (pTVar7->name_)._M_dataplus._M_p = (pointer)0x0;\n              (pTVar7->name_)._M_string_length = 0;\n              (pTVar7->name_).field_2._M_allocated_capacity = 0;\n              pTVar7->list_next_ = (Task *)0x1;\n            }\n            t = (Task *)operator_new(0x50);\n            t->list_next_ = (Task *)0x0;\n            (t->name_)._M_dataplus._M_p = (pointer)&(t->name_).field_2;\n            (t->name_)._M_string_length = 0;\n            t->_vptr_Task = (_func_int_varargs **)&PTR__Read_symbols_00384d90;\n            t[1].name_._M_string_length = (size_type)dirsearch;\n            t[1]._vptr_Task = (_func_int_varargs **)input_objects;\n            *(Mapfile **)((int)&t[1].name_.field_2 + 4) = mapfile;\n            t[1].list_next_ = (Task *)symtab;\n            t[2]._vptr_Task = (_func_int_varargs **)local_e4;\n            t[1].name_._M_dataplus._M_p = (pointer)layout;\n            (t->name_).field_2._M_local_buf[0] = '\0';\n            t->should_run_soon_ = false;\n            t[1].name_.field_2._M_allocated_capacity = 0;\n            *(pointer *)((int)&t[1].name_.field_2 + 8) = local_dc;\n            *(Input_group **)((int)&t[1].name_.field_2 + 0xc) = input_group;\n            *(undefined4 *)&t[1].should_run_soon_ = 0;\n            t[2].list_next_ = pTVar7;\n            Workqueue::queue_soon(workqueue,t);\n            if (closure.inputs_ == (Input_arguments *)0x0) {\n              closure.inputs_ = (Input_arguments *)operator_new(0x14);\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_start = (pointer)0x0;\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_finish = (pointer)0x0;\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_end_of_storage = (pointer)0x0;\n              (closure.inputs_)->in_group_ = false;\n              (closure.inputs_)->in_lib_ = false;\n              (closure.inputs_)->file_count_ = 0;\n              pIVar8 = (pointer)0x0;\n            }\n            else {\n              pIVar8 = ((closure.inputs_)->input_argument_list_).\n                       super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>\n                       ._M_impl._M_finish;\n            }\n            local_e4 = pTVar7;\n            local_dc = pIVar6;\n          } while (pIVar6 != pIVar8);\n          *used_next_blocker = true;\n        }" { (do_statement "do {\n            pIVar6 = local_dc + 1;\n            pTVar7 = (Task *)next_blocker;\n            if (pIVar6 != pIVar8) {\n              pTVar7 = (Task *)operator_new(0x14);\n              *(undefined1 *)&pTVar7->_vptr_Task = 1;\n              (pTVar7->name_)._M_dataplus._M_p = (pointer)0x0;\n              (pTVar7->name_)._M_string_length = 0;\n              (pTVar7->name_).field_2._M_allocated_capacity = 0;\n              pTVar7->list_next_ = (Task *)0x1;\n            }\n            t = (Task *)operator_new(0x50);\n            t->list_next_ = (Task *)0x0;\n            (t->name_)._M_dataplus._M_p = (pointer)&(t->name_).field_2;\n            (t->name_)._M_string_length = 0;\n            t->_vptr_Task = (_func_int_varargs **)&PTR__Read_symbols_00384d90;\n            t[1].name_._M_string_length = (size_type)dirsearch;\n            t[1]._vptr_Task = (_func_int_varargs **)input_objects;\n            *(Mapfile **)((int)&t[1].name_.field_2 + 4) = mapfile;\n            t[1].list_next_ = (Task *)symtab;\n            t[2]._vptr_Task = (_func_int_varargs **)local_e4;\n            t[1].name_._M_dataplus._M_p = (pointer)layout;\n            (t->name_).field_2._M_local_buf[0] = '\0';\n            t->should_run_soon_ = false;\n            t[1].name_.field_2._M_allocated_capacity = 0;\n            *(pointer *)((int)&t[1].name_.field_2 + 8) = local_dc;\n            *(Input_group **)((int)&t[1].name_.field_2 + 0xc) = input_group;\n            *(undefined4 *)&t[1].should_run_soon_ = 0;\n            t[2].list_next_ = pTVar7;\n            Workqueue::queue_soon(workqueue,t);\n            if (closure.inputs_ == (Input_arguments *)0x0) {\n              closure.inputs_ = (Input_arguments *)operator_new(0x14);\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_start = (pointer)0x0;\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_finish = (pointer)0x0;\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_end_of_storage = (pointer)0x0;\n              (closure.inputs_)->in_group_ = false;\n              (closure.inputs_)->in_lib_ = false;\n              (closure.inputs_)->file_count_ = 0;\n              pIVar8 = (pointer)0x0;\n            }\n            else {\n              pIVar8 = ((closure.inputs_)->input_argument_list_).\n                       super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>\n                       ._M_impl._M_finish;\n            }\n            local_e4 = pTVar7;\n            local_dc = pIVar6;\n          } while (pIVar6 != pIVar8);" do (compound_statement "{\n            pIVar6 = local_dc + 1;\n            pTVar7 = (Task *)next_blocker;\n            if (pIVar6 != pIVar8) {\n              pTVar7 = (Task *)operator_new(0x14);\n              *(undefined1 *)&pTVar7->_vptr_Task = 1;\n              (pTVar7->name_)._M_dataplus._M_p = (pointer)0x0;\n              (pTVar7->name_)._M_string_length = 0;\n              (pTVar7->name_).field_2._M_allocated_capacity = 0;\n              pTVar7->list_next_ = (Task *)0x1;\n            }\n            t = (Task *)operator_new(0x50);\n            t->list_next_ = (Task *)0x0;\n            (t->name_)._M_dataplus._M_p = (pointer)&(t->name_).field_2;\n            (t->name_)._M_string_length = 0;\n            t->_vptr_Task = (_func_int_varargs **)&PTR__Read_symbols_00384d90;\n            t[1].name_._M_string_length = (size_type)dirsearch;\n            t[1]._vptr_Task = (_func_int_varargs **)input_objects;\n            *(Mapfile **)((int)&t[1].name_.field_2 + 4) = mapfile;\n            t[1].list_next_ = (Task *)symtab;\n            t[2]._vptr_Task = (_func_int_varargs **)local_e4;\n            t[1].name_._M_dataplus._M_p = (pointer)layout;\n            (t->name_).field_2._M_local_buf[0] = '\0';\n            t->should_run_soon_ = false;\n            t[1].name_.field_2._M_allocated_capacity = 0;\n            *(pointer *)((int)&t[1].name_.field_2 + 8) = local_dc;\n            *(Input_group **)((int)&t[1].name_.field_2 + 0xc) = input_group;\n            *(undefined4 *)&t[1].should_run_soon_ = 0;\n            t[2].list_next_ = pTVar7;\n            Workqueue::queue_soon(workqueue,t);\n            if (closure.inputs_ == (Input_arguments *)0x0) {\n              closure.inputs_ = (Input_arguments *)operator_new(0x14);\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_start = (pointer)0x0;\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_finish = (pointer)0x0;\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_end_of_storage = (pointer)0x0;\n              (closure.inputs_)->in_group_ = false;\n              (closure.inputs_)->in_lib_ = false;\n              (closure.inputs_)->file_count_ = 0;\n              pIVar8 = (pointer)0x0;\n            }\n            else {\n              pIVar8 = ((closure.inputs_)->input_argument_list_).\n                       super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>\n                       ._M_impl._M_finish;\n            }\n            local_e4 = pTVar7;\n            local_dc = pIVar6;\n          }" { (expression_statement "pIVar6 = local_dc + 1;" (assignment_expression "pIVar6 = local_dc + 1" identifier = (binary_expression "local_dc + 1" identifier + number_literal)) ;) (expression_statement "pTVar7 = (Task *)next_blocker;" (assignment_expression "pTVar7 = (Task *)next_blocker" identifier = (cast_expression "(Task *)next_blocker" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (pIVar6 != pIVar8) {\n              pTVar7 = (Task *)operator_new(0x14);\n              *(undefined1 *)&pTVar7->_vptr_Task = 1;\n              (pTVar7->name_)._M_dataplus._M_p = (pointer)0x0;\n              (pTVar7->name_)._M_string_length = 0;\n              (pTVar7->name_).field_2._M_allocated_capacity = 0;\n              pTVar7->list_next_ = (Task *)0x1;\n            }" if (parenthesized_expression "(pIVar6 != pIVar8)" ( (binary_expression "pIVar6 != pIVar8" identifier != identifier) )) (compound_statement "{\n              pTVar7 = (Task *)operator_new(0x14);\n              *(undefined1 *)&pTVar7->_vptr_Task = 1;\n              (pTVar7->name_)._M_dataplus._M_p = (pointer)0x0;\n              (pTVar7->name_)._M_string_length = 0;\n              (pTVar7->name_).field_2._M_allocated_capacity = 0;\n              pTVar7->list_next_ = (Task *)0x1;\n            }" { (expression_statement "pTVar7 = (Task *)operator_new(0x14);" (assignment_expression "pTVar7 = (Task *)operator_new(0x14)" identifier = (cast_expression "(Task *)operator_new(0x14)" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x14)" identifier (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "*(undefined1 *)&pTVar7->_vptr_Task = 1;" (assignment_expression "*(undefined1 *)&pTVar7->_vptr_Task = 1" (pointer_expression "*(undefined1 *)&pTVar7->_vptr_Task" * (cast_expression "(undefined1 *)&pTVar7->_vptr_Task" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pTVar7->_vptr_Task" & (field_expression "pTVar7->_vptr_Task" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "(pTVar7->name_)._M_dataplus._M_p = (pointer)0x0;" (assignment_expression "(pTVar7->name_)._M_dataplus._M_p = (pointer)0x0" (field_expression "(pTVar7->name_)._M_dataplus._M_p" (field_expression "(pTVar7->name_)._M_dataplus" (parenthesized_expression "(pTVar7->name_)" ( (field_expression "pTVar7->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "(pTVar7->name_)._M_string_length = 0;" (assignment_expression "(pTVar7->name_)._M_string_length = 0" (field_expression "(pTVar7->name_)._M_string_length" (parenthesized_expression "(pTVar7->name_)" ( (field_expression "pTVar7->name_" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(pTVar7->name_).field_2._M_allocated_capacity = 0;" (assignment_expression "(pTVar7->name_).field_2._M_allocated_capacity = 0" (field_expression "(pTVar7->name_).field_2._M_allocated_capacity" (field_expression "(pTVar7->name_).field_2" (parenthesized_expression "(pTVar7->name_)" ( (field_expression "pTVar7->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "pTVar7->list_next_ = (Task *)0x1;" (assignment_expression "pTVar7->list_next_ = (Task *)0x1" (field_expression "pTVar7->list_next_" identifier -> field_identifier) = (cast_expression "(Task *)0x1" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "t = (Task *)operator_new(0x50);" (assignment_expression "t = (Task *)operator_new(0x50)" identifier = (cast_expression "(Task *)operator_new(0x50)" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x50)" identifier (argument_list "(0x50)" ( number_literal ))))) ;) (expression_statement "t->list_next_ = (Task *)0x0;" (assignment_expression "t->list_next_ = (Task *)0x0" (field_expression "t->list_next_" identifier -> field_identifier) = (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(t->name_)._M_dataplus._M_p = (pointer)&(t->name_).field_2;" (assignment_expression "(t->name_)._M_dataplus._M_p = (pointer)&(t->name_).field_2" (field_expression "(t->name_)._M_dataplus._M_p" (field_expression "(t->name_)._M_dataplus" (parenthesized_expression "(t->name_)" ( (field_expression "t->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (binary_expression "(pointer)&(t->name_).field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "(t->name_).field_2" (parenthesized_expression "(t->name_)" ( (field_expression "t->name_" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "(t->name_)._M_string_length = 0;" (assignment_expression "(t->name_)._M_string_length = 0" (field_expression "(t->name_)._M_string_length" (parenthesized_expression "(t->name_)" ( (field_expression "t->name_" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "t->_vptr_Task = (_func_int_varargs **)&PTR__Read_symbols_00384d90;" (assignment_expression "t->_vptr_Task = (_func_int_varargs **)&PTR__Read_symbols_00384d90" (field_expression "t->_vptr_Task" identifier -> field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Read_symbols_00384d90" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Read_symbols_00384d90" & identifier))) ;) (expression_statement "t[1].name_._M_string_length = (size_type)dirsearch;" (assignment_expression "t[1].name_._M_string_length = (size_type)dirsearch" (field_expression "t[1].name_._M_string_length" (field_expression "t[1].name_" (subscript_expression "t[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) = (cast_expression "(size_type)dirsearch" ( (type_descriptor "size_type" type_identifier) ) identifier)) ;) (expression_statement "t[1]._vptr_Task = (_func_int_varargs **)input_objects;" (assignment_expression "t[1]._vptr_Task = (_func_int_varargs **)input_objects" (field_expression "t[1]._vptr_Task" (subscript_expression "t[1]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_func_int_varargs **)input_objects" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "*(Mapfile **)((int)&t[1].name_.field_2 + 4) = mapfile;" (assignment_expression "*(Mapfile **)((int)&t[1].name_.field_2 + 4) = mapfile" (pointer_expression "*(Mapfile **)((int)&t[1].name_.field_2 + 4)" * (cast_expression "(Mapfile **)((int)&t[1].name_.field_2 + 4)" ( (type_descriptor "Mapfile **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&t[1].name_.field_2 + 4)" ( (binary_expression "(int)&t[1].name_.field_2 + 4" (cast_expression "(int)&t[1].name_.field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&t[1].name_.field_2" & (field_expression "t[1].name_.field_2" (field_expression "t[1].name_" (subscript_expression "t[1]" identifier [ number_literal ]) . field_identifier) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "t[1].list_next_ = (Task *)symtab;" (assignment_expression "t[1].list_next_ = (Task *)symtab" (field_expression "t[1].list_next_" (subscript_expression "t[1]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(Task *)symtab" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "t[2]._vptr_Task = (_func_int_varargs **)local_e4;" (assignment_expression "t[2]._vptr_Task = (_func_int_varargs **)local_e4" (field_expression "t[2]._vptr_Task" (subscript_expression "t[2]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_func_int_varargs **)local_e4" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "t[1].name_._M_dataplus._M_p = (pointer)layout;" (assignment_expression "t[1].name_._M_dataplus._M_p = (pointer)layout" (field_expression "t[1].name_._M_dataplus._M_p" (field_expression "t[1].name_._M_dataplus" (field_expression "t[1].name_" (subscript_expression "t[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(pointer)layout" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "(t->name_).field_2._M_local_buf[0] = '\0';" (assignment_expression "(t->name_).field_2._M_local_buf[0] = '\0'" (subscript_expression "(t->name_).field_2._M_local_buf[0]" (field_expression "(t->name_).field_2._M_local_buf" (field_expression "(t->name_).field_2" (parenthesized_expression "(t->name_)" ( (field_expression "t->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "t->should_run_soon_ = false;" (assignment_expression "t->should_run_soon_ = false" (field_expression "t->should_run_soon_" identifier -> field_identifier) = false) ;) (expression_statement "t[1].name_.field_2._M_allocated_capacity = 0;" (assignment_expression "t[1].name_.field_2._M_allocated_capacity = 0" (field_expression "t[1].name_.field_2._M_allocated_capacity" (field_expression "t[1].name_.field_2" (field_expression "t[1].name_" (subscript_expression "t[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "*(pointer *)((int)&t[1].name_.field_2 + 8) = local_dc;" (assignment_expression "*(pointer *)((int)&t[1].name_.field_2 + 8) = local_dc" (pointer_expression "*(pointer *)((int)&t[1].name_.field_2 + 8)" * (cast_expression "(pointer *)((int)&t[1].name_.field_2 + 8)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&t[1].name_.field_2 + 8)" ( (binary_expression "(int)&t[1].name_.field_2 + 8" (cast_expression "(int)&t[1].name_.field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&t[1].name_.field_2" & (field_expression "t[1].name_.field_2" (field_expression "t[1].name_" (subscript_expression "t[1]" identifier [ number_literal ]) . field_identifier) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(Input_group **)((int)&t[1].name_.field_2 + 0xc) = input_group;" (assignment_expression "*(Input_group **)((int)&t[1].name_.field_2 + 0xc) = input_group" (pointer_expression "*(Input_group **)((int)&t[1].name_.field_2 + 0xc)" * (cast_expression "(Input_group **)((int)&t[1].name_.field_2 + 0xc)" ( (type_descriptor "Input_group **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&t[1].name_.field_2 + 0xc)" ( (binary_expression "(int)&t[1].name_.field_2 + 0xc" (cast_expression "(int)&t[1].name_.field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&t[1].name_.field_2" & (field_expression "t[1].name_.field_2" (field_expression "t[1].name_" (subscript_expression "t[1]" identifier [ number_literal ]) . field_identifier) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)&t[1].should_run_soon_ = 0;" (assignment_expression "*(undefined4 *)&t[1].should_run_soon_ = 0" (pointer_expression "*(undefined4 *)&t[1].should_run_soon_" * (cast_expression "(undefined4 *)&t[1].should_run_soon_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&t[1].should_run_soon_" & (field_expression "t[1].should_run_soon_" (subscript_expression "t[1]" identifier [ number_literal ]) . field_identifier)))) = number_literal) ;) (expression_statement "t[2].list_next_ = pTVar7;" (assignment_expression "t[2].list_next_ = pTVar7" (field_expression "t[2].list_next_" (subscript_expression "t[2]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (labeled_statement "Workqueue::queue_soon(workqueue,t);" statement_identifier : (ERROR ":" :) (expression_statement "queue_soon(workqueue,t);" (call_expression "queue_soon(workqueue,t)" identifier (argument_list "(workqueue,t)" ( identifier , identifier ))) ;)) (if_statement "if (closure.inputs_ == (Input_arguments *)0x0) {\n              closure.inputs_ = (Input_arguments *)operator_new(0x14);\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_start = (pointer)0x0;\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_finish = (pointer)0x0;\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_end_of_storage = (pointer)0x0;\n              (closure.inputs_)->in_group_ = false;\n              (closure.inputs_)->in_lib_ = false;\n              (closure.inputs_)->file_count_ = 0;\n              pIVar8 = (pointer)0x0;\n            }\n            else {\n              pIVar8 = ((closure.inputs_)->input_argument_list_).\n                       super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>\n                       ._M_impl._M_finish;\n            }" if (parenthesized_expression "(closure.inputs_ == (Input_arguments *)0x0)" ( (binary_expression "closure.inputs_ == (Input_arguments *)0x0" (field_expression "closure.inputs_" identifier . field_identifier) == (cast_expression "(Input_arguments *)0x0" ( (type_descriptor "Input_arguments *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              closure.inputs_ = (Input_arguments *)operator_new(0x14);\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_start = (pointer)0x0;\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_finish = (pointer)0x0;\n              ((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_end_of_storage = (pointer)0x0;\n              (closure.inputs_)->in_group_ = false;\n              (closure.inputs_)->in_lib_ = false;\n              (closure.inputs_)->file_count_ = 0;\n              pIVar8 = (pointer)0x0;\n            }" { (expression_statement "closure.inputs_ = (Input_arguments *)operator_new(0x14);" (assignment_expression "closure.inputs_ = (Input_arguments *)operator_new(0x14)" (field_expression "closure.inputs_" identifier . field_identifier) = (cast_expression "(Input_arguments *)operator_new(0x14)" ( (type_descriptor "Input_arguments *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x14)" identifier (argument_list "(0x14)" ( number_literal ))))) ;) (ERROR "((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::" (comma_expression "((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std" (binary_expression "((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold" (field_expression "((closure.inputs_)->input_argument_list_).\n              super__Vector_base" (parenthesized_expression "((closure.inputs_)->input_argument_list_)" ( (field_expression "(closure.inputs_)->input_argument_list_" (parenthesized_expression "(closure.inputs_)" ( (field_expression "closure.inputs_" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Input_argument" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Input_argument>_>.\n              _M_impl._M_start = (pointer)0x0;" (assignment_expression "Input_argument>_>.\n              _M_impl._M_start = (pointer)0x0" (field_expression "Input_argument>_>.\n              _M_impl._M_start" (field_expression "Input_argument>_>.\n              _M_impl" (binary_expression "Input_argument>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (ERROR "((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::" (comma_expression "((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std" (binary_expression "((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold" (field_expression "((closure.inputs_)->input_argument_list_).\n              super__Vector_base" (parenthesized_expression "((closure.inputs_)->input_argument_list_)" ( (field_expression "(closure.inputs_)->input_argument_list_" (parenthesized_expression "(closure.inputs_)" ( (field_expression "closure.inputs_" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Input_argument" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Input_argument>_>.\n              _M_impl._M_finish = (pointer)0x0;" (assignment_expression "Input_argument>_>.\n              _M_impl._M_finish = (pointer)0x0" (field_expression "Input_argument>_>.\n              _M_impl._M_finish" (field_expression "Input_argument>_>.\n              _M_impl" (binary_expression "Input_argument>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (ERROR "((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::" (comma_expression "((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold::Input_argument,_std" (binary_expression "((closure.inputs_)->input_argument_list_).\n              super__Vector_base<gold" (field_expression "((closure.inputs_)->input_argument_list_).\n              super__Vector_base" (parenthesized_expression "((closure.inputs_)->input_argument_list_)" ( (field_expression "(closure.inputs_)->input_argument_list_" (parenthesized_expression "(closure.inputs_)" ( (field_expression "closure.inputs_" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Input_argument" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Input_argument>_>.\n              _M_impl._M_end_of_storage = (pointer)0x0;" (assignment_expression "Input_argument>_>.\n              _M_impl._M_end_of_storage = (pointer)0x0" (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) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "(closure.inputs_)->in_group_ = false;" (assignment_expression "(closure.inputs_)->in_group_ = false" (field_expression "(closure.inputs_)->in_group_" (parenthesized_expression "(closure.inputs_)" ( (field_expression "closure.inputs_" identifier . field_identifier) )) -> field_identifier) = false) ;) (expression_statement "(closure.inputs_)->in_lib_ = false;" (assignment_expression "(closure.inputs_)->in_lib_ = false" (field_expression "(closure.inputs_)->in_lib_" (parenthesized_expression "(closure.inputs_)" ( (field_expression "closure.inputs_" identifier . field_identifier) )) -> field_identifier) = false) ;) (expression_statement "(closure.inputs_)->file_count_ = 0;" (assignment_expression "(closure.inputs_)->file_count_ = 0" (field_expression "(closure.inputs_)->file_count_" (parenthesized_expression "(closure.inputs_)" ( (field_expression "closure.inputs_" identifier . field_identifier) )) -> field_identifier) = number_literal) ;) (expression_statement "pIVar8 = (pointer)0x0;" (assignment_expression "pIVar8 = (pointer)0x0" identifier = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) }) (else_clause "else {\n              pIVar8 = ((closure.inputs_)->input_argument_list_).\n                       super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>\n                       ._M_impl._M_finish;\n            }" else (compound_statement "{\n              pIVar8 = ((closure.inputs_)->input_argument_list_).\n                       super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>\n                       ._M_impl._M_finish;\n            }" { (ERROR "pIVar8 = ((closure.inputs_)->input_argument_list_).\n                       super__Vector_base<gold::Input_argument,_std::allocator<gold::" (comma_expression "pIVar8 = ((closure.inputs_)->input_argument_list_).\n                       super__Vector_base<gold::Input_argument,_std" (assignment_expression "pIVar8 = ((closure.inputs_)->input_argument_list_).\n                       super__Vector_base<gold" identifier = (binary_expression "((closure.inputs_)->input_argument_list_).\n                       super__Vector_base<gold" (field_expression "((closure.inputs_)->input_argument_list_).\n                       super__Vector_base" (parenthesized_expression "((closure.inputs_)->input_argument_list_)" ( (field_expression "(closure.inputs_)->input_argument_list_" (parenthesized_expression "(closure.inputs_)" ( (field_expression "closure.inputs_" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Input_argument" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Input_argument>_>\n                       ._M_impl._M_finish;" (field_expression "Input_argument>_>\n                       ._M_impl._M_finish" (field_expression "Input_argument>_>\n                       ._M_impl" (binary_expression "Input_argument>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) }))) (expression_statement "local_e4 = pTVar7;" (assignment_expression "local_e4 = pTVar7" identifier = identifier) ;) (expression_statement "local_dc = pIVar6;" (assignment_expression "local_dc = pIVar6" identifier = identifier) ;) }) while (parenthesized_expression "(pIVar6 != pIVar8)" ( (binary_expression "pIVar6 != pIVar8" identifier != identifier) )) ;) (expression_statement "*used_next_blocker = true;" (assignment_expression "*used_next_blocker = true" (pointer_expression "*used_next_blocker" * identifier) = true) ;) })) })) }) (else_clause "else {\n      cVar3 = closure.found_incompatible_target_;\n      if (closure.found_incompatible_target_ != false) {\n        Read_symbols::incompatible_warning(input_argument,input_file);\n        Read_symbols::requeue\n                  (workqueue,input_objects,symtab,layout,dirsearch,dirindex,mapfile,input_argument,\n                   input_group,next_blocker);\n        cVar3 = bVar1;\n      }\n    }" else (compound_statement "{\n      cVar3 = closure.found_incompatible_target_;\n      if (closure.found_incompatible_target_ != false) {\n        Read_symbols::incompatible_warning(input_argument,input_file);\n        Read_symbols::requeue\n                  (workqueue,input_objects,symtab,layout,dirsearch,dirindex,mapfile,input_argument,\n                   input_group,next_blocker);\n        cVar3 = bVar1;\n      }\n    }" { (expression_statement "cVar3 = closure.found_incompatible_target_;" (assignment_expression "cVar3 = closure.found_incompatible_target_" identifier = (field_expression "closure.found_incompatible_target_" identifier . field_identifier)) ;) (if_statement "if (closure.found_incompatible_target_ != false) {\n        Read_symbols::incompatible_warning(input_argument,input_file);\n        Read_symbols::requeue\n                  (workqueue,input_objects,symtab,layout,dirsearch,dirindex,mapfile,input_argument,\n                   input_group,next_blocker);\n        cVar3 = bVar1;\n      }" if (parenthesized_expression "(closure.found_incompatible_target_ != false)" ( (binary_expression "closure.found_incompatible_target_ != false" (field_expression "closure.found_incompatible_target_" identifier . field_identifier) != false) )) (compound_statement "{\n        Read_symbols::incompatible_warning(input_argument,input_file);\n        Read_symbols::requeue\n                  (workqueue,input_objects,symtab,layout,dirsearch,dirindex,mapfile,input_argument,\n                   input_group,next_blocker);\n        cVar3 = bVar1;\n      }" { (labeled_statement "Read_symbols::incompatible_warning(input_argument,input_file);" statement_identifier : (ERROR ":" :) (expression_statement "incompatible_warning(input_argument,input_file);" (call_expression "incompatible_warning(input_argument,input_file)" identifier (argument_list "(input_argument,input_file)" ( identifier , identifier ))) ;)) (labeled_statement "Read_symbols::requeue\n                  (workqueue,input_objects,symtab,layout,dirsearch,dirindex,mapfile,input_argument,\n                   input_group,next_blocker);" statement_identifier : (ERROR ":" :) (expression_statement "requeue\n                  (workqueue,input_objects,symtab,layout,dirsearch,dirindex,mapfile,input_argument,\n                   input_group,next_blocker);" (call_expression "requeue\n                  (workqueue,input_objects,symtab,layout,dirsearch,dirindex,mapfile,input_argument,\n                   input_group,next_blocker)" identifier (argument_list "(workqueue,input_objects,symtab,layout,dirsearch,dirindex,mapfile,input_argument,\n                   input_group,next_blocker)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;)) (expression_statement "cVar3 = bVar1;" (assignment_expression "cVar3 = bVar1" identifier = identifier) ;) })) }))) (if_statement "if (closure.language_stack_.\n        super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n        ._M_impl._M_start != (pointer)0x0) {\n      operator_delete(closure.language_stack_.\n                      super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n                      ._M_impl._M_start);\n    }" if (parenthesized_expression "(closure.language_stack_.\n        super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n        ._M_impl._M_start != (pointer)0x0)" ( (ERROR "closure.language_stack_.\n        super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::" (comma_expression "closure.language_stack_.\n        super__Vector_base<gold::Version_script_info::Language,_std" (binary_expression "closure.language_stack_.\n        super__Vector_base<gold" (field_expression "closure.language_stack_.\n        super__Vector_base" (field_expression "closure.language_stack_" identifier . field_identifier) . field_identifier) < identifier) (ERROR "::Version_script_info::Language" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Language>_>\n        ._M_impl._M_start != (pointer)0x0" (field_expression "Language>_>\n        ._M_impl._M_start" (field_expression "Language>_>\n        ._M_impl" (binary_expression "Language>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) != (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n      operator_delete(closure.language_stack_.\n                      super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n                      ._M_impl._M_start);\n    }" { (expression_statement "operator_delete(closure.language_stack_.\n                      super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n                      ._M_impl._M_start);" (call_expression "operator_delete(closure.language_stack_.\n                      super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n                      ._M_impl._M_start)" identifier (argument_list "(closure.language_stack_.\n                      super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n                      ._M_impl._M_start)" ( (binary_expression "closure.language_stack_.\n                      super__Vector_base<gold" (field_expression "closure.language_stack_.\n                      super__Vector_base" (field_expression "closure.language_stack_" identifier . field_identifier) . field_identifier) < identifier) (ERROR "::Version_script_info::Language" : : identifier : : identifier) , (ERROR "_std::allocator<gold::Version_script_info::" identifier : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (field_expression "Language>_>\n                      ._M_impl._M_start" (field_expression "Language>_>\n                      ._M_impl" (binary_expression "Language>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ))) ;) })) (if_statement "if (closure.lex_mode_stack_.\n        super__Vector_base<gold::Lex::Mode,_std::allocator<gold::Lex::Mode>_>._M_impl._M_start !=\n        (pointer)0x0) {\n      operator_delete(closure.lex_mode_stack_.\n                      super__Vector_base<gold::Lex::Mode,_std::allocator<gold::Lex::Mode>_>._M_impl.\n                      _M_start);\n    }" if (parenthesized_expression "(closure.lex_mode_stack_.\n        super__Vector_base<gold::Lex::Mode,_std::allocator<gold::Lex::Mode>_>._M_impl._M_start !=\n        (pointer)0x0)" ( (ERROR "closure.lex_mode_stack_.\n        super__Vector_base<gold::Lex::Mode,_std::allocator<gold::Lex::" (comma_expression "closure.lex_mode_stack_.\n        super__Vector_base<gold::Lex::Mode,_std" (binary_expression "closure.lex_mode_stack_.\n        super__Vector_base<gold" (field_expression "closure.lex_mode_stack_.\n        super__Vector_base" (field_expression "closure.lex_mode_stack_" identifier . field_identifier) . field_identifier) < identifier) (ERROR "::Lex::Mode" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Mode>_>._M_impl._M_start !=\n        (pointer)0x0" (field_expression "Mode>_>._M_impl._M_start" (field_expression "Mode>_>._M_impl" (binary_expression "Mode>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) != (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n      operator_delete(closure.lex_mode_stack_.\n                      super__Vector_base<gold::Lex::Mode,_std::allocator<gold::Lex::Mode>_>._M_impl.\n                      _M_start);\n    }" { (expression_statement "operator_delete(closure.lex_mode_stack_.\n                      super__Vector_base<gold::Lex::Mode,_std::allocator<gold::Lex::Mode>_>._M_impl.\n                      _M_start);" (call_expression "operator_delete(closure.lex_mode_stack_.\n                      super__Vector_base<gold::Lex::Mode,_std::allocator<gold::Lex::Mode>_>._M_impl.\n                      _M_start)" identifier (argument_list "(closure.lex_mode_stack_.\n                      super__Vector_base<gold::Lex::Mode,_std::allocator<gold::Lex::Mode>_>._M_impl.\n                      _M_start)" ( (binary_expression "closure.lex_mode_stack_.\n                      super__Vector_base<gold" (field_expression "closure.lex_mode_stack_.\n                      super__Vector_base" (field_expression "closure.lex_mode_stack_" identifier . field_identifier) . field_identifier) < identifier) (ERROR "::Lex::Mode" : : identifier : : identifier) , (ERROR "_std::allocator<gold::Lex::" identifier : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (field_expression "Mode>_>._M_impl.\n                      _M_start" (field_expression "Mode>_>._M_impl" (binary_expression "Mode>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ))) ;) })) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)input_string._M_dataplus._M_p != &input_string.field_2) {\n      operator_delete(input_string._M_dataplus._M_p);\n    }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)input_string._M_dataplus._M_p != &input_string.field_2)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)input_string._M_dataplus._M_p != &input_string.field_2)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n         *)input_string._M_dataplus._M_p != &input_string.field_2" (binary_expression "allocator<char>_>_9\n         *)input_string._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n         *)input_string._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "input_string._M_dataplus._M_p" (field_expression "input_string._M_dataplus" identifier . field_identifier) . field_identifier))) != (pointer_expression "&input_string.field_2" & (field_expression "input_string.field_2" identifier . field_identifier))) )) )) (compound_statement "{\n      operator_delete(input_string._M_dataplus._M_p);\n    }" { (expression_statement "operator_delete(input_string._M_dataplus._M_p);" (call_expression "operator_delete(input_string._M_dataplus._M_p)" identifier (argument_list "(input_string._M_dataplus._M_p)" ( (field_expression "input_string._M_dataplus._M_p" (field_expression "input_string._M_dataplus" identifier . field_identifier) . field_identifier) ))) ;) })) (return_statement "return (bool)cVar3;" return (cast_expression "(bool)cVar3" ( (type_descriptor "bool" primitive_type) ) identifier) ;) })) comment comment (expression_statement "do_gold_unreachable("../../gold/options.h",0x828,"file");" (call_expression "do_gold_unreachable("../../gold/options.h",0x828,"file")" identifier (argument_list "("../../gold/options.h",0x828,"file")" ( (string_literal ""../../gold/options.h"" " string_content ") , number_literal , (string_literal ""file"" " string_content ") ))) ;) })))
(translation_unit "char FUN_0016d740(undefined4 param_1,int param_2,int param_3,int param_4,undefined4 param_5,\n                 int param_6,int param_7,int param_8,char *param_9,int param_10,undefined1 *param_11\n                 ,undefined1 *param_12)\n\n{\n  char cVar1;\n  undefined4 uVar2;\n  int *piVar3;\n  int iVar4;\n  undefined1 *puVar5;\n  undefined4 uVar6;\n  undefined1 *puVar7;\n  undefined1 auStack_100 [4];\n  undefined1 auStack_fc [4];\n  undefined4 *local_f8;\n  char local_f1;\n  undefined1 *local_f0;\n  undefined **local_ec;\n  int local_e8;\n  undefined1 *local_e4;\n  undefined4 local_e0;\n  int local_dc;\n  undefined **local_d8;\n  undefined1 *local_d4;\n  undefined4 local_d0;\n  undefined4 local_c0;\n  undefined1 *local_bc;\n  undefined4 local_b8;\n  undefined1 local_b4 [16];\n  undefined1 *local_a4;\n  undefined4 local_a0;\n  undefined1 *local_9c;\n  undefined4 local_98;\n  undefined4 local_94;\n  undefined4 local_90;\n  undefined4 local_8c;\n  undefined4 local_88;\n  undefined4 local_84;\n  undefined4 local_80;\n  undefined4 local_7c;\n  undefined4 local_78;\n  undefined1 *local_74;\n  undefined4 local_70;\n  undefined4 local_6c;\n  undefined4 local_68;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined1 local_5c;\n  undefined1 local_5b;\n  byte local_5a;\n  undefined1 local_59;\n  char local_58;\n  undefined4 local_54;\n  int local_50;\n  int local_4c;\n  undefined1 **local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  int local_3c [6];\n  int *local_24;\n  int *local_20;\n  undefined4 uStack_14;\n  \n  local_f0 = local_b4;\n  uStack_14 = 0x16d751;\n  local_d8 = &__DT_PLTGOT;\n  *param_12 = 0;\n  local_b8 = 0;\n  local_b4[0] = 0;\n  local_bc = local_f0;\n                    \n  FUN_00168e00(param_10,&local_bc);\n  puVar7 = auStack_fc;\n  local_98 = 0;\n  local_94 = 0x163;\n  local_a4 = local_bc;\n  local_9c = local_bc;\n  local_74 = local_bc;\n  local_a0 = local_b8;\n  piVar3 = *(int **)(param_3 + 0x1d0);\n  local_90 = 0;\n  local_8c = 0;\n  local_88 = 0;\n  local_84 = 0;\n  local_80 = 0;\n  local_7c = 0;\n  local_78 = 1;\n  if (piVar3 != (int *)0x0) {\n    FUN_00067c30(&local_d4,param_10 + 0x1c);\n    local_e4 = local_d4;\n    local_e0 = local_d0;\n    if (*param_9 == '\0') {\n                    \n      FUN_00069d00((int)local_d8 + -0x106ebb,0x828,local_d8 + -0x3d7a0,local_d4);\n    }\n    local_dc = *(int *)(param_9 + 0x4c);\n    piVar3 = (int *)FUN_001e5200(0x20);\n    *piVar3 = (int)(piVar3 + 2);\n                    \n    FUN_000513a0(piVar3,*(int *)(param_10 + 0x1c),\n                 *(int *)(param_10 + 0x20) + *(int *)(param_10 + 0x1c),0);\n    piVar3[6] = 0;\n    piVar3[7] = 0;\n                    \n    FUN_00072240(*(undefined4 *)(param_3 + 0x1d0),piVar3,local_dc,local_e4,local_e0);\n    puVar7 = auStack_100;\n  }\n  *(int *)(puVar7 + -0x10) = param_10;\n  *(undefined4 *)(puVar7 + -0x14) = 0x16d8d7;\n  local_59 = FUN_00067bf0();\n  local_dc = CONCAT31(local_dc._1_3_,local_59);\n  local_50 = *(int *)(param_3 + 4);\n  local_5b = param_8 != 0;\n  local_5a = *(byte *)(param_10 + 0x8c);\n  local_f1 = *param_9;\n  if (local_f1 != '\0') {\n    local_4c = local_50 + 0x68;\n    local_70 = *(undefined4 *)(param_10 + 0x1c);\n    local_5c = 0;\n    local_6c = *(undefined4 *)(param_9 + 0x3c);\n    local_58 = '\0';\n    local_68 = *(undefined4 *)(param_9 + 0x40);\n    local_54 = 0;\n    local_64 = *(undefined4 *)(param_9 + 0x44);\n    local_60 = *(undefined4 *)(param_9 + 0x48);\n    local_44 = 0;\n    local_40 = 0;\n    local_48 = &local_a4;\n    local_3c[0] = 0;\n    local_3c[1] = 0;\n    local_3c[2] = 0;\n    local_3c[3] = 0;\n    local_3c[4] = 0;\n    local_3c[5] = 0;\n    local_24 = (int *)0x0;\n    local_c0 = 0;\n    *(undefined4 **)(puVar7 + -8) = &local_c0;\n    *(undefined4 *)(puVar7 + -0xc) = 0;\n    *(int **)(puVar7 + -0x10) = local_3c + 3;\n                    \n    *(undefined4 *)(puVar7 + -0x14) = 0x16d9bc;\n    local_20 = piVar3;\n    FUN_0016f460();\n    *(undefined4 **)(puVar7 + -0xc) = &local_c0;\n    local_c0 = local_98;\n    *(int **)(puVar7 + -0x10) = local_3c;\n    *(undefined4 *)(puVar7 + -0x14) = 0x16d9d4;\n    FUN_0016f700();\n    cVar1 = *(char *)(*(int *)(param_3 + 4) + 0xac);\n    local_f8 = &local_70;\n    *(undefined4 **)(puVar7 + -0x10) = local_f8;\n                    \n    *(undefined4 *)(puVar7 + -0x14) = 0x16d9f8;\n    iVar4 = FUN_00191d40();\n    if (iVar4 == 0) {\n      if (((cVar1 == '\0') && (*(char *)(*(int *)(param_3 + 4) + 0xac) != '\0')) &&\n         (*(char *)(param_3 + 0x1c4) != '\0')) {\n        uVar2 = *(undefined4 *)(param_10 + 0x1c);\n        *(undefined ***)(puVar7 + -0x10) = local_d8 + -0x3d6c8;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc5d;\n        uVar6 = gettext();\n        *(undefined4 *)(puVar7 + -0xc) = uVar2;\n        *(undefined4 *)(puVar7 + -0x10) = uVar6;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc66;\n        FUN_000654b0();\n      }\n      cVar1 = local_f1;\n      if (local_24 != (int *)0x0) {\n        local_e4 = (undefined1 *)0x0;\n        iVar4 = local_24[1];\n        local_dc = *local_24;\n        if (iVar4 != local_dc) {\n          local_ec = local_d8 + -0x289c;\n          do {\n            local_e8 = local_dc + 0x5c;\n            puVar5 = param_11;\n            if (local_e8 != iVar4) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;\n              puVar5 = (undefined1 *)FUN_001e5200();\n              *puVar5 = 1;\n              *(undefined4 *)(puVar5 + 8) = 0;\n              *(undefined4 *)(puVar5 + 0xc) = 0;\n              *(undefined4 *)(puVar5 + 0x10) = 0;\n              *(undefined4 *)(puVar5 + 4) = 1;\n            }\n            *(undefined4 *)(puVar7 + -0x10) = 0x50;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16db2d;\n            piVar3 = (int *)FUN_001e5200();\n            piVar3[1] = 0;\n            piVar3[2] = (int)(piVar3 + 4);\n            piVar3[3] = 0;\n            *piVar3 = (int)local_ec;\n            piVar3[0xc] = param_4;\n            piVar3[9] = param_6;\n            piVar3[0xe] = param_7;\n            piVar3[10] = param_2;\n            piVar3[0x12] = (int)local_e4;\n            piVar3[0xb] = param_3;\n            *(undefined1 *)(piVar3 + 4) = 0;\n            *(undefined1 *)(piVar3 + 8) = 0;\n            piVar3[0xd] = 0;\n            piVar3[0xf] = local_dc;\n            piVar3[0x10] = param_8;\n            piVar3[0x11] = 0;\n            piVar3[0x13] = (int)puVar5;\n            *(int **)(puVar7 + -0xc) = piVar3;\n            *(undefined4 *)(puVar7 + -0x10) = param_1;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16dba5;\n            FUN_001906c0();\n            if (local_24 == (int *)0x0) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;\n              local_24 = (int *)FUN_001e5200();\n              *local_24 = 0;\n              local_24[1] = 0;\n              local_24[2] = 0;\n              *(undefined2 *)(local_24 + 3) = 0;\n              local_24[4] = 0;\n              iVar4 = 0;\n            }\n            else {\n              iVar4 = local_24[1];\n            }\n            local_dc = local_e8;\n            local_e4 = puVar5;\n          } while (local_e8 != iVar4);\n          *param_12 = 1;\n          cVar1 = local_f1;\n        }\n      }\n    }\n    else {\n      cVar1 = local_58;\n      if (local_58 != '\0') {\n        *(int *)(puVar7 + -0xc) = param_10;\n        *(char **)(puVar7 + -0x10) = param_9;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc84;\n        FUN_00142200();\n        *(undefined1 **)(puVar7 + -0xc) = param_11;\n        *(int *)(puVar7 + -0x10) = param_8;\n        *(char **)(puVar7 + -0x14) = param_9;\n        *(int *)(puVar7 + -0x18) = param_7;\n        *(undefined4 *)(puVar7 + -0x1c) = param_5;\n        *(int *)(puVar7 + -0x20) = param_4;\n        *(int *)(puVar7 + -0x24) = param_3;\n        *(int *)(puVar7 + -0x28) = param_2;\n        *(int *)(puVar7 + -0x2c) = param_6;\n        *(undefined4 *)(puVar7 + -0x30) = param_1;\n        *(undefined4 *)(puVar7 + -0x34) = 0x16dca7;\n        FUN_00142290();\n        cVar1 = local_f1;\n      }\n    }\n    if (local_3c[3] != 0) {\n      *(int *)(puVar7 + -0x10) = local_3c[3];\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da23;\n      FUN_001e6db0();\n    }\n    if (local_3c[0] != 0) {\n      *(int *)(puVar7 + -0x10) = local_3c[0];\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da3c;\n      FUN_001e6db0();\n    }\n    if (local_bc != local_f0) {\n      *(undefined1 **)(puVar7 + -0x10) = local_bc;\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da5c;\n      FUN_001e6db0();\n    }\n    return cVar1;\n  }\n  *(uint *)(puVar7 + -4) = (uint)local_5a;\n  *(undefined ***)(puVar7 + -8) = local_d8 + -0x3d7a0;\n  *(undefined4 *)(puVar7 + -0xc) = 0x828;\n  *(int *)(puVar7 + -0x10) = (int)local_d8 + -0x106ebb;\n                    \n                    \n  *(undefined4 *)(puVar7 + -0x14) = 0x16dcce;\n  FUN_00069d00();\n}\n\n" (function_definition "char FUN_0016d740(undefined4 param_1,int param_2,int param_3,int param_4,undefined4 param_5,\n                 int param_6,int param_7,int param_8,char *param_9,int param_10,undefined1 *param_11\n                 ,undefined1 *param_12)\n\n{\n  char cVar1;\n  undefined4 uVar2;\n  int *piVar3;\n  int iVar4;\n  undefined1 *puVar5;\n  undefined4 uVar6;\n  undefined1 *puVar7;\n  undefined1 auStack_100 [4];\n  undefined1 auStack_fc [4];\n  undefined4 *local_f8;\n  char local_f1;\n  undefined1 *local_f0;\n  undefined **local_ec;\n  int local_e8;\n  undefined1 *local_e4;\n  undefined4 local_e0;\n  int local_dc;\n  undefined **local_d8;\n  undefined1 *local_d4;\n  undefined4 local_d0;\n  undefined4 local_c0;\n  undefined1 *local_bc;\n  undefined4 local_b8;\n  undefined1 local_b4 [16];\n  undefined1 *local_a4;\n  undefined4 local_a0;\n  undefined1 *local_9c;\n  undefined4 local_98;\n  undefined4 local_94;\n  undefined4 local_90;\n  undefined4 local_8c;\n  undefined4 local_88;\n  undefined4 local_84;\n  undefined4 local_80;\n  undefined4 local_7c;\n  undefined4 local_78;\n  undefined1 *local_74;\n  undefined4 local_70;\n  undefined4 local_6c;\n  undefined4 local_68;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined1 local_5c;\n  undefined1 local_5b;\n  byte local_5a;\n  undefined1 local_59;\n  char local_58;\n  undefined4 local_54;\n  int local_50;\n  int local_4c;\n  undefined1 **local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  int local_3c [6];\n  int *local_24;\n  int *local_20;\n  undefined4 uStack_14;\n  \n  local_f0 = local_b4;\n  uStack_14 = 0x16d751;\n  local_d8 = &__DT_PLTGOT;\n  *param_12 = 0;\n  local_b8 = 0;\n  local_b4[0] = 0;\n  local_bc = local_f0;\n                    \n  FUN_00168e00(param_10,&local_bc);\n  puVar7 = auStack_fc;\n  local_98 = 0;\n  local_94 = 0x163;\n  local_a4 = local_bc;\n  local_9c = local_bc;\n  local_74 = local_bc;\n  local_a0 = local_b8;\n  piVar3 = *(int **)(param_3 + 0x1d0);\n  local_90 = 0;\n  local_8c = 0;\n  local_88 = 0;\n  local_84 = 0;\n  local_80 = 0;\n  local_7c = 0;\n  local_78 = 1;\n  if (piVar3 != (int *)0x0) {\n    FUN_00067c30(&local_d4,param_10 + 0x1c);\n    local_e4 = local_d4;\n    local_e0 = local_d0;\n    if (*param_9 == '\0') {\n                    \n      FUN_00069d00((int)local_d8 + -0x106ebb,0x828,local_d8 + -0x3d7a0,local_d4);\n    }\n    local_dc = *(int *)(param_9 + 0x4c);\n    piVar3 = (int *)FUN_001e5200(0x20);\n    *piVar3 = (int)(piVar3 + 2);\n                    \n    FUN_000513a0(piVar3,*(int *)(param_10 + 0x1c),\n                 *(int *)(param_10 + 0x20) + *(int *)(param_10 + 0x1c),0);\n    piVar3[6] = 0;\n    piVar3[7] = 0;\n                    \n    FUN_00072240(*(undefined4 *)(param_3 + 0x1d0),piVar3,local_dc,local_e4,local_e0);\n    puVar7 = auStack_100;\n  }\n  *(int *)(puVar7 + -0x10) = param_10;\n  *(undefined4 *)(puVar7 + -0x14) = 0x16d8d7;\n  local_59 = FUN_00067bf0();\n  local_dc = CONCAT31(local_dc._1_3_,local_59);\n  local_50 = *(int *)(param_3 + 4);\n  local_5b = param_8 != 0;\n  local_5a = *(byte *)(param_10 + 0x8c);\n  local_f1 = *param_9;\n  if (local_f1 != '\0') {\n    local_4c = local_50 + 0x68;\n    local_70 = *(undefined4 *)(param_10 + 0x1c);\n    local_5c = 0;\n    local_6c = *(undefined4 *)(param_9 + 0x3c);\n    local_58 = '\0';\n    local_68 = *(undefined4 *)(param_9 + 0x40);\n    local_54 = 0;\n    local_64 = *(undefined4 *)(param_9 + 0x44);\n    local_60 = *(undefined4 *)(param_9 + 0x48);\n    local_44 = 0;\n    local_40 = 0;\n    local_48 = &local_a4;\n    local_3c[0] = 0;\n    local_3c[1] = 0;\n    local_3c[2] = 0;\n    local_3c[3] = 0;\n    local_3c[4] = 0;\n    local_3c[5] = 0;\n    local_24 = (int *)0x0;\n    local_c0 = 0;\n    *(undefined4 **)(puVar7 + -8) = &local_c0;\n    *(undefined4 *)(puVar7 + -0xc) = 0;\n    *(int **)(puVar7 + -0x10) = local_3c + 3;\n                    \n    *(undefined4 *)(puVar7 + -0x14) = 0x16d9bc;\n    local_20 = piVar3;\n    FUN_0016f460();\n    *(undefined4 **)(puVar7 + -0xc) = &local_c0;\n    local_c0 = local_98;\n    *(int **)(puVar7 + -0x10) = local_3c;\n    *(undefined4 *)(puVar7 + -0x14) = 0x16d9d4;\n    FUN_0016f700();\n    cVar1 = *(char *)(*(int *)(param_3 + 4) + 0xac);\n    local_f8 = &local_70;\n    *(undefined4 **)(puVar7 + -0x10) = local_f8;\n                    \n    *(undefined4 *)(puVar7 + -0x14) = 0x16d9f8;\n    iVar4 = FUN_00191d40();\n    if (iVar4 == 0) {\n      if (((cVar1 == '\0') && (*(char *)(*(int *)(param_3 + 4) + 0xac) != '\0')) &&\n         (*(char *)(param_3 + 0x1c4) != '\0')) {\n        uVar2 = *(undefined4 *)(param_10 + 0x1c);\n        *(undefined ***)(puVar7 + -0x10) = local_d8 + -0x3d6c8;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc5d;\n        uVar6 = gettext();\n        *(undefined4 *)(puVar7 + -0xc) = uVar2;\n        *(undefined4 *)(puVar7 + -0x10) = uVar6;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc66;\n        FUN_000654b0();\n      }\n      cVar1 = local_f1;\n      if (local_24 != (int *)0x0) {\n        local_e4 = (undefined1 *)0x0;\n        iVar4 = local_24[1];\n        local_dc = *local_24;\n        if (iVar4 != local_dc) {\n          local_ec = local_d8 + -0x289c;\n          do {\n            local_e8 = local_dc + 0x5c;\n            puVar5 = param_11;\n            if (local_e8 != iVar4) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;\n              puVar5 = (undefined1 *)FUN_001e5200();\n              *puVar5 = 1;\n              *(undefined4 *)(puVar5 + 8) = 0;\n              *(undefined4 *)(puVar5 + 0xc) = 0;\n              *(undefined4 *)(puVar5 + 0x10) = 0;\n              *(undefined4 *)(puVar5 + 4) = 1;\n            }\n            *(undefined4 *)(puVar7 + -0x10) = 0x50;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16db2d;\n            piVar3 = (int *)FUN_001e5200();\n            piVar3[1] = 0;\n            piVar3[2] = (int)(piVar3 + 4);\n            piVar3[3] = 0;\n            *piVar3 = (int)local_ec;\n            piVar3[0xc] = param_4;\n            piVar3[9] = param_6;\n            piVar3[0xe] = param_7;\n            piVar3[10] = param_2;\n            piVar3[0x12] = (int)local_e4;\n            piVar3[0xb] = param_3;\n            *(undefined1 *)(piVar3 + 4) = 0;\n            *(undefined1 *)(piVar3 + 8) = 0;\n            piVar3[0xd] = 0;\n            piVar3[0xf] = local_dc;\n            piVar3[0x10] = param_8;\n            piVar3[0x11] = 0;\n            piVar3[0x13] = (int)puVar5;\n            *(int **)(puVar7 + -0xc) = piVar3;\n            *(undefined4 *)(puVar7 + -0x10) = param_1;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16dba5;\n            FUN_001906c0();\n            if (local_24 == (int *)0x0) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;\n              local_24 = (int *)FUN_001e5200();\n              *local_24 = 0;\n              local_24[1] = 0;\n              local_24[2] = 0;\n              *(undefined2 *)(local_24 + 3) = 0;\n              local_24[4] = 0;\n              iVar4 = 0;\n            }\n            else {\n              iVar4 = local_24[1];\n            }\n            local_dc = local_e8;\n            local_e4 = puVar5;\n          } while (local_e8 != iVar4);\n          *param_12 = 1;\n          cVar1 = local_f1;\n        }\n      }\n    }\n    else {\n      cVar1 = local_58;\n      if (local_58 != '\0') {\n        *(int *)(puVar7 + -0xc) = param_10;\n        *(char **)(puVar7 + -0x10) = param_9;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc84;\n        FUN_00142200();\n        *(undefined1 **)(puVar7 + -0xc) = param_11;\n        *(int *)(puVar7 + -0x10) = param_8;\n        *(char **)(puVar7 + -0x14) = param_9;\n        *(int *)(puVar7 + -0x18) = param_7;\n        *(undefined4 *)(puVar7 + -0x1c) = param_5;\n        *(int *)(puVar7 + -0x20) = param_4;\n        *(int *)(puVar7 + -0x24) = param_3;\n        *(int *)(puVar7 + -0x28) = param_2;\n        *(int *)(puVar7 + -0x2c) = param_6;\n        *(undefined4 *)(puVar7 + -0x30) = param_1;\n        *(undefined4 *)(puVar7 + -0x34) = 0x16dca7;\n        FUN_00142290();\n        cVar1 = local_f1;\n      }\n    }\n    if (local_3c[3] != 0) {\n      *(int *)(puVar7 + -0x10) = local_3c[3];\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da23;\n      FUN_001e6db0();\n    }\n    if (local_3c[0] != 0) {\n      *(int *)(puVar7 + -0x10) = local_3c[0];\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da3c;\n      FUN_001e6db0();\n    }\n    if (local_bc != local_f0) {\n      *(undefined1 **)(puVar7 + -0x10) = local_bc;\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da5c;\n      FUN_001e6db0();\n    }\n    return cVar1;\n  }\n  *(uint *)(puVar7 + -4) = (uint)local_5a;\n  *(undefined ***)(puVar7 + -8) = local_d8 + -0x3d7a0;\n  *(undefined4 *)(puVar7 + -0xc) = 0x828;\n  *(int *)(puVar7 + -0x10) = (int)local_d8 + -0x106ebb;\n                    \n                    \n  *(undefined4 *)(puVar7 + -0x14) = 0x16dcce;\n  FUN_00069d00();\n}" primitive_type (function_declarator "FUN_0016d740(undefined4 param_1,int param_2,int param_3,int param_4,undefined4 param_5,\n                 int param_6,int param_7,int param_8,char *param_9,int param_10,undefined1 *param_11\n                 ,undefined1 *param_12)" identifier (parameter_list "(undefined4 param_1,int param_2,int param_3,int param_4,undefined4 param_5,\n                 int param_6,int param_7,int param_8,char *param_9,int param_10,undefined1 *param_11\n                 ,undefined1 *param_12)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "int param_7" primitive_type identifier) , (parameter_declaration "int param_8" primitive_type identifier) , (parameter_declaration "char *param_9" primitive_type (pointer_declarator "*param_9" * identifier)) , (parameter_declaration "int param_10" primitive_type identifier) , (parameter_declaration "undefined1 *param_11" type_identifier (pointer_declarator "*param_11" * identifier)) , (parameter_declaration "undefined1 *param_12" type_identifier (pointer_declarator "*param_12" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  undefined4 uVar2;\n  int *piVar3;\n  int iVar4;\n  undefined1 *puVar5;\n  undefined4 uVar6;\n  undefined1 *puVar7;\n  undefined1 auStack_100 [4];\n  undefined1 auStack_fc [4];\n  undefined4 *local_f8;\n  char local_f1;\n  undefined1 *local_f0;\n  undefined **local_ec;\n  int local_e8;\n  undefined1 *local_e4;\n  undefined4 local_e0;\n  int local_dc;\n  undefined **local_d8;\n  undefined1 *local_d4;\n  undefined4 local_d0;\n  undefined4 local_c0;\n  undefined1 *local_bc;\n  undefined4 local_b8;\n  undefined1 local_b4 [16];\n  undefined1 *local_a4;\n  undefined4 local_a0;\n  undefined1 *local_9c;\n  undefined4 local_98;\n  undefined4 local_94;\n  undefined4 local_90;\n  undefined4 local_8c;\n  undefined4 local_88;\n  undefined4 local_84;\n  undefined4 local_80;\n  undefined4 local_7c;\n  undefined4 local_78;\n  undefined1 *local_74;\n  undefined4 local_70;\n  undefined4 local_6c;\n  undefined4 local_68;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined1 local_5c;\n  undefined1 local_5b;\n  byte local_5a;\n  undefined1 local_59;\n  char local_58;\n  undefined4 local_54;\n  int local_50;\n  int local_4c;\n  undefined1 **local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  int local_3c [6];\n  int *local_24;\n  int *local_20;\n  undefined4 uStack_14;\n  \n  local_f0 = local_b4;\n  uStack_14 = 0x16d751;\n  local_d8 = &__DT_PLTGOT;\n  *param_12 = 0;\n  local_b8 = 0;\n  local_b4[0] = 0;\n  local_bc = local_f0;\n                    \n  FUN_00168e00(param_10,&local_bc);\n  puVar7 = auStack_fc;\n  local_98 = 0;\n  local_94 = 0x163;\n  local_a4 = local_bc;\n  local_9c = local_bc;\n  local_74 = local_bc;\n  local_a0 = local_b8;\n  piVar3 = *(int **)(param_3 + 0x1d0);\n  local_90 = 0;\n  local_8c = 0;\n  local_88 = 0;\n  local_84 = 0;\n  local_80 = 0;\n  local_7c = 0;\n  local_78 = 1;\n  if (piVar3 != (int *)0x0) {\n    FUN_00067c30(&local_d4,param_10 + 0x1c);\n    local_e4 = local_d4;\n    local_e0 = local_d0;\n    if (*param_9 == '\0') {\n                    \n      FUN_00069d00((int)local_d8 + -0x106ebb,0x828,local_d8 + -0x3d7a0,local_d4);\n    }\n    local_dc = *(int *)(param_9 + 0x4c);\n    piVar3 = (int *)FUN_001e5200(0x20);\n    *piVar3 = (int)(piVar3 + 2);\n                    \n    FUN_000513a0(piVar3,*(int *)(param_10 + 0x1c),\n                 *(int *)(param_10 + 0x20) + *(int *)(param_10 + 0x1c),0);\n    piVar3[6] = 0;\n    piVar3[7] = 0;\n                    \n    FUN_00072240(*(undefined4 *)(param_3 + 0x1d0),piVar3,local_dc,local_e4,local_e0);\n    puVar7 = auStack_100;\n  }\n  *(int *)(puVar7 + -0x10) = param_10;\n  *(undefined4 *)(puVar7 + -0x14) = 0x16d8d7;\n  local_59 = FUN_00067bf0();\n  local_dc = CONCAT31(local_dc._1_3_,local_59);\n  local_50 = *(int *)(param_3 + 4);\n  local_5b = param_8 != 0;\n  local_5a = *(byte *)(param_10 + 0x8c);\n  local_f1 = *param_9;\n  if (local_f1 != '\0') {\n    local_4c = local_50 + 0x68;\n    local_70 = *(undefined4 *)(param_10 + 0x1c);\n    local_5c = 0;\n    local_6c = *(undefined4 *)(param_9 + 0x3c);\n    local_58 = '\0';\n    local_68 = *(undefined4 *)(param_9 + 0x40);\n    local_54 = 0;\n    local_64 = *(undefined4 *)(param_9 + 0x44);\n    local_60 = *(undefined4 *)(param_9 + 0x48);\n    local_44 = 0;\n    local_40 = 0;\n    local_48 = &local_a4;\n    local_3c[0] = 0;\n    local_3c[1] = 0;\n    local_3c[2] = 0;\n    local_3c[3] = 0;\n    local_3c[4] = 0;\n    local_3c[5] = 0;\n    local_24 = (int *)0x0;\n    local_c0 = 0;\n    *(undefined4 **)(puVar7 + -8) = &local_c0;\n    *(undefined4 *)(puVar7 + -0xc) = 0;\n    *(int **)(puVar7 + -0x10) = local_3c + 3;\n                    \n    *(undefined4 *)(puVar7 + -0x14) = 0x16d9bc;\n    local_20 = piVar3;\n    FUN_0016f460();\n    *(undefined4 **)(puVar7 + -0xc) = &local_c0;\n    local_c0 = local_98;\n    *(int **)(puVar7 + -0x10) = local_3c;\n    *(undefined4 *)(puVar7 + -0x14) = 0x16d9d4;\n    FUN_0016f700();\n    cVar1 = *(char *)(*(int *)(param_3 + 4) + 0xac);\n    local_f8 = &local_70;\n    *(undefined4 **)(puVar7 + -0x10) = local_f8;\n                    \n    *(undefined4 *)(puVar7 + -0x14) = 0x16d9f8;\n    iVar4 = FUN_00191d40();\n    if (iVar4 == 0) {\n      if (((cVar1 == '\0') && (*(char *)(*(int *)(param_3 + 4) + 0xac) != '\0')) &&\n         (*(char *)(param_3 + 0x1c4) != '\0')) {\n        uVar2 = *(undefined4 *)(param_10 + 0x1c);\n        *(undefined ***)(puVar7 + -0x10) = local_d8 + -0x3d6c8;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc5d;\n        uVar6 = gettext();\n        *(undefined4 *)(puVar7 + -0xc) = uVar2;\n        *(undefined4 *)(puVar7 + -0x10) = uVar6;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc66;\n        FUN_000654b0();\n      }\n      cVar1 = local_f1;\n      if (local_24 != (int *)0x0) {\n        local_e4 = (undefined1 *)0x0;\n        iVar4 = local_24[1];\n        local_dc = *local_24;\n        if (iVar4 != local_dc) {\n          local_ec = local_d8 + -0x289c;\n          do {\n            local_e8 = local_dc + 0x5c;\n            puVar5 = param_11;\n            if (local_e8 != iVar4) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;\n              puVar5 = (undefined1 *)FUN_001e5200();\n              *puVar5 = 1;\n              *(undefined4 *)(puVar5 + 8) = 0;\n              *(undefined4 *)(puVar5 + 0xc) = 0;\n              *(undefined4 *)(puVar5 + 0x10) = 0;\n              *(undefined4 *)(puVar5 + 4) = 1;\n            }\n            *(undefined4 *)(puVar7 + -0x10) = 0x50;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16db2d;\n            piVar3 = (int *)FUN_001e5200();\n            piVar3[1] = 0;\n            piVar3[2] = (int)(piVar3 + 4);\n            piVar3[3] = 0;\n            *piVar3 = (int)local_ec;\n            piVar3[0xc] = param_4;\n            piVar3[9] = param_6;\n            piVar3[0xe] = param_7;\n            piVar3[10] = param_2;\n            piVar3[0x12] = (int)local_e4;\n            piVar3[0xb] = param_3;\n            *(undefined1 *)(piVar3 + 4) = 0;\n            *(undefined1 *)(piVar3 + 8) = 0;\n            piVar3[0xd] = 0;\n            piVar3[0xf] = local_dc;\n            piVar3[0x10] = param_8;\n            piVar3[0x11] = 0;\n            piVar3[0x13] = (int)puVar5;\n            *(int **)(puVar7 + -0xc) = piVar3;\n            *(undefined4 *)(puVar7 + -0x10) = param_1;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16dba5;\n            FUN_001906c0();\n            if (local_24 == (int *)0x0) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;\n              local_24 = (int *)FUN_001e5200();\n              *local_24 = 0;\n              local_24[1] = 0;\n              local_24[2] = 0;\n              *(undefined2 *)(local_24 + 3) = 0;\n              local_24[4] = 0;\n              iVar4 = 0;\n            }\n            else {\n              iVar4 = local_24[1];\n            }\n            local_dc = local_e8;\n            local_e4 = puVar5;\n          } while (local_e8 != iVar4);\n          *param_12 = 1;\n          cVar1 = local_f1;\n        }\n      }\n    }\n    else {\n      cVar1 = local_58;\n      if (local_58 != '\0') {\n        *(int *)(puVar7 + -0xc) = param_10;\n        *(char **)(puVar7 + -0x10) = param_9;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc84;\n        FUN_00142200();\n        *(undefined1 **)(puVar7 + -0xc) = param_11;\n        *(int *)(puVar7 + -0x10) = param_8;\n        *(char **)(puVar7 + -0x14) = param_9;\n        *(int *)(puVar7 + -0x18) = param_7;\n        *(undefined4 *)(puVar7 + -0x1c) = param_5;\n        *(int *)(puVar7 + -0x20) = param_4;\n        *(int *)(puVar7 + -0x24) = param_3;\n        *(int *)(puVar7 + -0x28) = param_2;\n        *(int *)(puVar7 + -0x2c) = param_6;\n        *(undefined4 *)(puVar7 + -0x30) = param_1;\n        *(undefined4 *)(puVar7 + -0x34) = 0x16dca7;\n        FUN_00142290();\n        cVar1 = local_f1;\n      }\n    }\n    if (local_3c[3] != 0) {\n      *(int *)(puVar7 + -0x10) = local_3c[3];\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da23;\n      FUN_001e6db0();\n    }\n    if (local_3c[0] != 0) {\n      *(int *)(puVar7 + -0x10) = local_3c[0];\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da3c;\n      FUN_001e6db0();\n    }\n    if (local_bc != local_f0) {\n      *(undefined1 **)(puVar7 + -0x10) = local_bc;\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da5c;\n      FUN_001e6db0();\n    }\n    return cVar1;\n  }\n  *(uint *)(puVar7 + -4) = (uint)local_5a;\n  *(undefined ***)(puVar7 + -8) = local_d8 + -0x3d7a0;\n  *(undefined4 *)(puVar7 + -0xc) = 0x828;\n  *(int *)(puVar7 + -0x10) = (int)local_d8 + -0x106ebb;\n                    \n                    \n  *(undefined4 *)(puVar7 + -0x14) = 0x16dcce;\n  FUN_00069d00();\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined1 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined1 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined1 auStack_100 [4];" type_identifier (array_declarator "auStack_100 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_fc [4];" type_identifier (array_declarator "auStack_fc [4]" identifier [ number_literal ]) ;) (declaration "undefined4 *local_f8;" type_identifier (pointer_declarator "*local_f8" * identifier) ;) (declaration "char local_f1;" primitive_type identifier ;) (declaration "undefined1 *local_f0;" type_identifier (pointer_declarator "*local_f0" * identifier) ;) (declaration "undefined **local_ec;" type_identifier (pointer_declarator "**local_ec" * (pointer_declarator "*local_ec" * identifier)) ;) (declaration "int local_e8;" primitive_type identifier ;) (declaration "undefined1 *local_e4;" type_identifier (pointer_declarator "*local_e4" * identifier) ;) (declaration "undefined4 local_e0;" type_identifier identifier ;) (declaration "int local_dc;" primitive_type identifier ;) (declaration "undefined **local_d8;" type_identifier (pointer_declarator "**local_d8" * (pointer_declarator "*local_d8" * identifier)) ;) (declaration "undefined1 *local_d4;" type_identifier (pointer_declarator "*local_d4" * identifier) ;) (declaration "undefined4 local_d0;" type_identifier identifier ;) (declaration "undefined4 local_c0;" type_identifier identifier ;) (declaration "undefined1 *local_bc;" type_identifier (pointer_declarator "*local_bc" * identifier) ;) (declaration "undefined4 local_b8;" type_identifier identifier ;) (declaration "undefined1 local_b4 [16];" type_identifier (array_declarator "local_b4 [16]" identifier [ number_literal ]) ;) (declaration "undefined1 *local_a4;" type_identifier (pointer_declarator "*local_a4" * identifier) ;) (declaration "undefined4 local_a0;" type_identifier identifier ;) (declaration "undefined1 *local_9c;" type_identifier (pointer_declarator "*local_9c" * identifier) ;) (declaration "undefined4 local_98;" type_identifier identifier ;) (declaration "undefined4 local_94;" type_identifier identifier ;) (declaration "undefined4 local_90;" type_identifier identifier ;) (declaration "undefined4 local_8c;" type_identifier identifier ;) (declaration "undefined4 local_88;" type_identifier identifier ;) (declaration "undefined4 local_84;" type_identifier identifier ;) (declaration "undefined4 local_80;" type_identifier identifier ;) (declaration "undefined4 local_7c;" type_identifier identifier ;) (declaration "undefined4 local_78;" type_identifier identifier ;) (declaration "undefined1 *local_74;" type_identifier (pointer_declarator "*local_74" * identifier) ;) (declaration "undefined4 local_70;" type_identifier identifier ;) (declaration "undefined4 local_6c;" type_identifier identifier ;) (declaration "undefined4 local_68;" type_identifier identifier ;) (declaration "undefined4 local_64;" type_identifier identifier ;) (declaration "undefined4 local_60;" type_identifier identifier ;) (declaration "undefined1 local_5c;" type_identifier identifier ;) (declaration "undefined1 local_5b;" type_identifier identifier ;) (declaration "byte local_5a;" type_identifier identifier ;) (declaration "undefined1 local_59;" type_identifier identifier ;) (declaration "char local_58;" primitive_type identifier ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "undefined1 **local_48;" type_identifier (pointer_declarator "**local_48" * (pointer_declarator "*local_48" * identifier)) ;) (declaration "undefined4 local_44;" type_identifier identifier ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (declaration "int local_3c [6];" primitive_type (array_declarator "local_3c [6]" identifier [ number_literal ]) ;) (declaration "int *local_24;" primitive_type (pointer_declarator "*local_24" * identifier) ;) (declaration "int *local_20;" primitive_type (pointer_declarator "*local_20" * identifier) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "local_f0 = local_b4;" (assignment_expression "local_f0 = local_b4" identifier = identifier) ;) (expression_statement "uStack_14 = 0x16d751;" (assignment_expression "uStack_14 = 0x16d751" identifier = number_literal) ;) (expression_statement "local_d8 = &__DT_PLTGOT;" (assignment_expression "local_d8 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "*param_12 = 0;" (assignment_expression "*param_12 = 0" (pointer_expression "*param_12" * identifier) = number_literal) ;) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (expression_statement "local_b4[0] = 0;" (assignment_expression "local_b4[0] = 0" (subscript_expression "local_b4[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_bc = local_f0;" (assignment_expression "local_bc = local_f0" identifier = identifier) ;) (expression_statement "FUN_00168e00(param_10,&local_bc);" (call_expression "FUN_00168e00(param_10,&local_bc)" identifier (argument_list "(param_10,&local_bc)" ( identifier , (pointer_expression "&local_bc" & identifier) ))) ;) (expression_statement "puVar7 = auStack_fc;" (assignment_expression "puVar7 = auStack_fc" identifier = identifier) ;) (expression_statement "local_98 = 0;" (assignment_expression "local_98 = 0" identifier = number_literal) ;) (expression_statement "local_94 = 0x163;" (assignment_expression "local_94 = 0x163" identifier = number_literal) ;) (expression_statement "local_a4 = local_bc;" (assignment_expression "local_a4 = local_bc" identifier = identifier) ;) (expression_statement "local_9c = local_bc;" (assignment_expression "local_9c = local_bc" identifier = identifier) ;) (expression_statement "local_74 = local_bc;" (assignment_expression "local_74 = local_bc" identifier = identifier) ;) (expression_statement "local_a0 = local_b8;" (assignment_expression "local_a0 = local_b8" identifier = identifier) ;) (expression_statement "piVar3 = *(int **)(param_3 + 0x1d0);" (assignment_expression "piVar3 = *(int **)(param_3 + 0x1d0)" identifier = (pointer_expression "*(int **)(param_3 + 0x1d0)" * (cast_expression "(int **)(param_3 + 0x1d0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x1d0)" ( (binary_expression "param_3 + 0x1d0" identifier + number_literal) ))))) ;) (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" identifier = number_literal) ;) (expression_statement "local_8c = 0;" (assignment_expression "local_8c = 0" identifier = number_literal) ;) (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" identifier = number_literal) ;) (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" identifier = number_literal) ;) (expression_statement "local_80 = 0;" (assignment_expression "local_80 = 0" identifier = number_literal) ;) (expression_statement "local_7c = 0;" (assignment_expression "local_7c = 0" identifier = number_literal) ;) (expression_statement "local_78 = 1;" (assignment_expression "local_78 = 1" identifier = number_literal) ;) (if_statement "if (piVar3 != (int *)0x0) {\n    FUN_00067c30(&local_d4,param_10 + 0x1c);\n    local_e4 = local_d4;\n    local_e0 = local_d0;\n    if (*param_9 == '\0') {\n                    \n      FUN_00069d00((int)local_d8 + -0x106ebb,0x828,local_d8 + -0x3d7a0,local_d4);\n    }\n    local_dc = *(int *)(param_9 + 0x4c);\n    piVar3 = (int *)FUN_001e5200(0x20);\n    *piVar3 = (int)(piVar3 + 2);\n                    \n    FUN_000513a0(piVar3,*(int *)(param_10 + 0x1c),\n                 *(int *)(param_10 + 0x20) + *(int *)(param_10 + 0x1c),0);\n    piVar3[6] = 0;\n    piVar3[7] = 0;\n                    \n    FUN_00072240(*(undefined4 *)(param_3 + 0x1d0),piVar3,local_dc,local_e4,local_e0);\n    puVar7 = auStack_100;\n  }" if (parenthesized_expression "(piVar3 != (int *)0x0)" ( (binary_expression "piVar3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    FUN_00067c30(&local_d4,param_10 + 0x1c);\n    local_e4 = local_d4;\n    local_e0 = local_d0;\n    if (*param_9 == '\0') {\n                    \n      FUN_00069d00((int)local_d8 + -0x106ebb,0x828,local_d8 + -0x3d7a0,local_d4);\n    }\n    local_dc = *(int *)(param_9 + 0x4c);\n    piVar3 = (int *)FUN_001e5200(0x20);\n    *piVar3 = (int)(piVar3 + 2);\n                    \n    FUN_000513a0(piVar3,*(int *)(param_10 + 0x1c),\n                 *(int *)(param_10 + 0x20) + *(int *)(param_10 + 0x1c),0);\n    piVar3[6] = 0;\n    piVar3[7] = 0;\n                    \n    FUN_00072240(*(undefined4 *)(param_3 + 0x1d0),piVar3,local_dc,local_e4,local_e0);\n    puVar7 = auStack_100;\n  }" { (expression_statement "FUN_00067c30(&local_d4,param_10 + 0x1c);" (call_expression "FUN_00067c30(&local_d4,param_10 + 0x1c)" identifier (argument_list "(&local_d4,param_10 + 0x1c)" ( (pointer_expression "&local_d4" & identifier) , (binary_expression "param_10 + 0x1c" identifier + number_literal) ))) ;) (expression_statement "local_e4 = local_d4;" (assignment_expression "local_e4 = local_d4" identifier = identifier) ;) (expression_statement "local_e0 = local_d0;" (assignment_expression "local_e0 = local_d0" identifier = identifier) ;) (if_statement "if (*param_9 == '\0') {\n                    \n      FUN_00069d00((int)local_d8 + -0x106ebb,0x828,local_d8 + -0x3d7a0,local_d4);\n    }" if (parenthesized_expression "(*param_9 == '\0')" ( (binary_expression "*param_9 == '\0'" (pointer_expression "*param_9" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    \n      FUN_00069d00((int)local_d8 + -0x106ebb,0x828,local_d8 + -0x3d7a0,local_d4);\n    }" { (expression_statement "FUN_00069d00((int)local_d8 + -0x106ebb,0x828,local_d8 + -0x3d7a0,local_d4);" (call_expression "FUN_00069d00((int)local_d8 + -0x106ebb,0x828,local_d8 + -0x3d7a0,local_d4)" identifier (argument_list "((int)local_d8 + -0x106ebb,0x828,local_d8 + -0x3d7a0,local_d4)" ( (binary_expression "(int)local_d8 + -0x106ebb" (cast_expression "(int)local_d8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal , (binary_expression "local_d8 + -0x3d7a0" identifier + number_literal) , identifier ))) ;) })) (expression_statement "local_dc = *(int *)(param_9 + 0x4c);" (assignment_expression "local_dc = *(int *)(param_9 + 0x4c)" identifier = (pointer_expression "*(int *)(param_9 + 0x4c)" * (cast_expression "(int *)(param_9 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_9 + 0x4c)" ( (binary_expression "param_9 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "piVar3 = (int *)FUN_001e5200(0x20);" (assignment_expression "piVar3 = (int *)FUN_001e5200(0x20)" identifier = (cast_expression "(int *)FUN_001e5200(0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e5200(0x20)" identifier (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "*piVar3 = (int)(piVar3 + 2);" (assignment_expression "*piVar3 = (int)(piVar3 + 2)" (pointer_expression "*piVar3" * identifier) = (cast_expression "(int)(piVar3 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar3 + 2)" ( (binary_expression "piVar3 + 2" identifier + number_literal) )))) ;) (expression_statement "FUN_000513a0(piVar3,*(int *)(param_10 + 0x1c),\n                 *(int *)(param_10 + 0x20) + *(int *)(param_10 + 0x1c),0);" (call_expression "FUN_000513a0(piVar3,*(int *)(param_10 + 0x1c),\n                 *(int *)(param_10 + 0x20) + *(int *)(param_10 + 0x1c),0)" identifier (argument_list "(piVar3,*(int *)(param_10 + 0x1c),\n                 *(int *)(param_10 + 0x20) + *(int *)(param_10 + 0x1c),0)" ( identifier , (pointer_expression "*(int *)(param_10 + 0x1c)" * (cast_expression "(int *)(param_10 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_10 + 0x1c)" ( (binary_expression "param_10 + 0x1c" identifier + number_literal) )))) , (binary_expression "*(int *)(param_10 + 0x20) + *(int *)(param_10 + 0x1c)" (pointer_expression "*(int *)(param_10 + 0x20)" * (cast_expression "(int *)(param_10 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_10 + 0x20)" ( (binary_expression "param_10 + 0x20" identifier + number_literal) )))) + (pointer_expression "*(int *)(param_10 + 0x1c)" * (cast_expression "(int *)(param_10 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_10 + 0x1c)" ( (binary_expression "param_10 + 0x1c" identifier + number_literal) ))))) , number_literal ))) ;) (expression_statement "piVar3[6] = 0;" (assignment_expression "piVar3[6] = 0" (subscript_expression "piVar3[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar3[7] = 0;" (assignment_expression "piVar3[7] = 0" (subscript_expression "piVar3[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_00072240(*(undefined4 *)(param_3 + 0x1d0),piVar3,local_dc,local_e4,local_e0);" (call_expression "FUN_00072240(*(undefined4 *)(param_3 + 0x1d0),piVar3,local_dc,local_e4,local_e0)" identifier (argument_list "(*(undefined4 *)(param_3 + 0x1d0),piVar3,local_dc,local_e4,local_e0)" ( (pointer_expression "*(undefined4 *)(param_3 + 0x1d0)" * (cast_expression "(undefined4 *)(param_3 + 0x1d0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x1d0)" ( (binary_expression "param_3 + 0x1d0" identifier + number_literal) )))) , identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar7 = auStack_100;" (assignment_expression "puVar7 = auStack_100" identifier = identifier) ;) })) (expression_statement "*(int *)(puVar7 + -0x10) = param_10;" (assignment_expression "*(int *)(puVar7 + -0x10) = param_10" (pointer_expression "*(int *)(puVar7 + -0x10)" * (cast_expression "(int *)(puVar7 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x10)" ( (binary_expression "puVar7 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16d8d7;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16d8d7" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" * (cast_expression "(undefined4 *)(puVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x14)" ( (binary_expression "puVar7 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_59 = FUN_00067bf0();" (assignment_expression "local_59 = FUN_00067bf0()" identifier = (call_expression "FUN_00067bf0()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_dc = CONCAT31(local_dc._1_3_,local_59);" (assignment_expression "local_dc = CONCAT31(local_dc._1_3_,local_59)" identifier = (call_expression "CONCAT31(local_dc._1_3_,local_59)" identifier (argument_list "(local_dc._1_3_,local_59)" ( (field_expression "local_dc._1_3_" identifier . field_identifier) , identifier )))) ;) (expression_statement "local_50 = *(int *)(param_3 + 4);" (assignment_expression "local_50 = *(int *)(param_3 + 4)" identifier = (pointer_expression "*(int *)(param_3 + 4)" * (cast_expression "(int *)(param_3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_5b = param_8 != 0;" (assignment_expression "local_5b = param_8 != 0" identifier = (binary_expression "param_8 != 0" identifier != number_literal)) ;) (expression_statement "local_5a = *(byte *)(param_10 + 0x8c);" (assignment_expression "local_5a = *(byte *)(param_10 + 0x8c)" identifier = (pointer_expression "*(byte *)(param_10 + 0x8c)" * (cast_expression "(byte *)(param_10 + 0x8c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_10 + 0x8c)" ( (binary_expression "param_10 + 0x8c" identifier + number_literal) ))))) ;) (expression_statement "local_f1 = *param_9;" (assignment_expression "local_f1 = *param_9" identifier = (pointer_expression "*param_9" * identifier)) ;) (if_statement "if (local_f1 != '\0') {\n    local_4c = local_50 + 0x68;\n    local_70 = *(undefined4 *)(param_10 + 0x1c);\n    local_5c = 0;\n    local_6c = *(undefined4 *)(param_9 + 0x3c);\n    local_58 = '\0';\n    local_68 = *(undefined4 *)(param_9 + 0x40);\n    local_54 = 0;\n    local_64 = *(undefined4 *)(param_9 + 0x44);\n    local_60 = *(undefined4 *)(param_9 + 0x48);\n    local_44 = 0;\n    local_40 = 0;\n    local_48 = &local_a4;\n    local_3c[0] = 0;\n    local_3c[1] = 0;\n    local_3c[2] = 0;\n    local_3c[3] = 0;\n    local_3c[4] = 0;\n    local_3c[5] = 0;\n    local_24 = (int *)0x0;\n    local_c0 = 0;\n    *(undefined4 **)(puVar7 + -8) = &local_c0;\n    *(undefined4 *)(puVar7 + -0xc) = 0;\n    *(int **)(puVar7 + -0x10) = local_3c + 3;\n                    \n    *(undefined4 *)(puVar7 + -0x14) = 0x16d9bc;\n    local_20 = piVar3;\n    FUN_0016f460();\n    *(undefined4 **)(puVar7 + -0xc) = &local_c0;\n    local_c0 = local_98;\n    *(int **)(puVar7 + -0x10) = local_3c;\n    *(undefined4 *)(puVar7 + -0x14) = 0x16d9d4;\n    FUN_0016f700();\n    cVar1 = *(char *)(*(int *)(param_3 + 4) + 0xac);\n    local_f8 = &local_70;\n    *(undefined4 **)(puVar7 + -0x10) = local_f8;\n                    \n    *(undefined4 *)(puVar7 + -0x14) = 0x16d9f8;\n    iVar4 = FUN_00191d40();\n    if (iVar4 == 0) {\n      if (((cVar1 == '\0') && (*(char *)(*(int *)(param_3 + 4) + 0xac) != '\0')) &&\n         (*(char *)(param_3 + 0x1c4) != '\0')) {\n        uVar2 = *(undefined4 *)(param_10 + 0x1c);\n        *(undefined ***)(puVar7 + -0x10) = local_d8 + -0x3d6c8;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc5d;\n        uVar6 = gettext();\n        *(undefined4 *)(puVar7 + -0xc) = uVar2;\n        *(undefined4 *)(puVar7 + -0x10) = uVar6;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc66;\n        FUN_000654b0();\n      }\n      cVar1 = local_f1;\n      if (local_24 != (int *)0x0) {\n        local_e4 = (undefined1 *)0x0;\n        iVar4 = local_24[1];\n        local_dc = *local_24;\n        if (iVar4 != local_dc) {\n          local_ec = local_d8 + -0x289c;\n          do {\n            local_e8 = local_dc + 0x5c;\n            puVar5 = param_11;\n            if (local_e8 != iVar4) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;\n              puVar5 = (undefined1 *)FUN_001e5200();\n              *puVar5 = 1;\n              *(undefined4 *)(puVar5 + 8) = 0;\n              *(undefined4 *)(puVar5 + 0xc) = 0;\n              *(undefined4 *)(puVar5 + 0x10) = 0;\n              *(undefined4 *)(puVar5 + 4) = 1;\n            }\n            *(undefined4 *)(puVar7 + -0x10) = 0x50;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16db2d;\n            piVar3 = (int *)FUN_001e5200();\n            piVar3[1] = 0;\n            piVar3[2] = (int)(piVar3 + 4);\n            piVar3[3] = 0;\n            *piVar3 = (int)local_ec;\n            piVar3[0xc] = param_4;\n            piVar3[9] = param_6;\n            piVar3[0xe] = param_7;\n            piVar3[10] = param_2;\n            piVar3[0x12] = (int)local_e4;\n            piVar3[0xb] = param_3;\n            *(undefined1 *)(piVar3 + 4) = 0;\n            *(undefined1 *)(piVar3 + 8) = 0;\n            piVar3[0xd] = 0;\n            piVar3[0xf] = local_dc;\n            piVar3[0x10] = param_8;\n            piVar3[0x11] = 0;\n            piVar3[0x13] = (int)puVar5;\n            *(int **)(puVar7 + -0xc) = piVar3;\n            *(undefined4 *)(puVar7 + -0x10) = param_1;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16dba5;\n            FUN_001906c0();\n            if (local_24 == (int *)0x0) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;\n              local_24 = (int *)FUN_001e5200();\n              *local_24 = 0;\n              local_24[1] = 0;\n              local_24[2] = 0;\n              *(undefined2 *)(local_24 + 3) = 0;\n              local_24[4] = 0;\n              iVar4 = 0;\n            }\n            else {\n              iVar4 = local_24[1];\n            }\n            local_dc = local_e8;\n            local_e4 = puVar5;\n          } while (local_e8 != iVar4);\n          *param_12 = 1;\n          cVar1 = local_f1;\n        }\n      }\n    }\n    else {\n      cVar1 = local_58;\n      if (local_58 != '\0') {\n        *(int *)(puVar7 + -0xc) = param_10;\n        *(char **)(puVar7 + -0x10) = param_9;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc84;\n        FUN_00142200();\n        *(undefined1 **)(puVar7 + -0xc) = param_11;\n        *(int *)(puVar7 + -0x10) = param_8;\n        *(char **)(puVar7 + -0x14) = param_9;\n        *(int *)(puVar7 + -0x18) = param_7;\n        *(undefined4 *)(puVar7 + -0x1c) = param_5;\n        *(int *)(puVar7 + -0x20) = param_4;\n        *(int *)(puVar7 + -0x24) = param_3;\n        *(int *)(puVar7 + -0x28) = param_2;\n        *(int *)(puVar7 + -0x2c) = param_6;\n        *(undefined4 *)(puVar7 + -0x30) = param_1;\n        *(undefined4 *)(puVar7 + -0x34) = 0x16dca7;\n        FUN_00142290();\n        cVar1 = local_f1;\n      }\n    }\n    if (local_3c[3] != 0) {\n      *(int *)(puVar7 + -0x10) = local_3c[3];\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da23;\n      FUN_001e6db0();\n    }\n    if (local_3c[0] != 0) {\n      *(int *)(puVar7 + -0x10) = local_3c[0];\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da3c;\n      FUN_001e6db0();\n    }\n    if (local_bc != local_f0) {\n      *(undefined1 **)(puVar7 + -0x10) = local_bc;\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da5c;\n      FUN_001e6db0();\n    }\n    return cVar1;\n  }" if (parenthesized_expression "(local_f1 != '\0')" ( (binary_expression "local_f1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    local_4c = local_50 + 0x68;\n    local_70 = *(undefined4 *)(param_10 + 0x1c);\n    local_5c = 0;\n    local_6c = *(undefined4 *)(param_9 + 0x3c);\n    local_58 = '\0';\n    local_68 = *(undefined4 *)(param_9 + 0x40);\n    local_54 = 0;\n    local_64 = *(undefined4 *)(param_9 + 0x44);\n    local_60 = *(undefined4 *)(param_9 + 0x48);\n    local_44 = 0;\n    local_40 = 0;\n    local_48 = &local_a4;\n    local_3c[0] = 0;\n    local_3c[1] = 0;\n    local_3c[2] = 0;\n    local_3c[3] = 0;\n    local_3c[4] = 0;\n    local_3c[5] = 0;\n    local_24 = (int *)0x0;\n    local_c0 = 0;\n    *(undefined4 **)(puVar7 + -8) = &local_c0;\n    *(undefined4 *)(puVar7 + -0xc) = 0;\n    *(int **)(puVar7 + -0x10) = local_3c + 3;\n                    \n    *(undefined4 *)(puVar7 + -0x14) = 0x16d9bc;\n    local_20 = piVar3;\n    FUN_0016f460();\n    *(undefined4 **)(puVar7 + -0xc) = &local_c0;\n    local_c0 = local_98;\n    *(int **)(puVar7 + -0x10) = local_3c;\n    *(undefined4 *)(puVar7 + -0x14) = 0x16d9d4;\n    FUN_0016f700();\n    cVar1 = *(char *)(*(int *)(param_3 + 4) + 0xac);\n    local_f8 = &local_70;\n    *(undefined4 **)(puVar7 + -0x10) = local_f8;\n                    \n    *(undefined4 *)(puVar7 + -0x14) = 0x16d9f8;\n    iVar4 = FUN_00191d40();\n    if (iVar4 == 0) {\n      if (((cVar1 == '\0') && (*(char *)(*(int *)(param_3 + 4) + 0xac) != '\0')) &&\n         (*(char *)(param_3 + 0x1c4) != '\0')) {\n        uVar2 = *(undefined4 *)(param_10 + 0x1c);\n        *(undefined ***)(puVar7 + -0x10) = local_d8 + -0x3d6c8;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc5d;\n        uVar6 = gettext();\n        *(undefined4 *)(puVar7 + -0xc) = uVar2;\n        *(undefined4 *)(puVar7 + -0x10) = uVar6;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc66;\n        FUN_000654b0();\n      }\n      cVar1 = local_f1;\n      if (local_24 != (int *)0x0) {\n        local_e4 = (undefined1 *)0x0;\n        iVar4 = local_24[1];\n        local_dc = *local_24;\n        if (iVar4 != local_dc) {\n          local_ec = local_d8 + -0x289c;\n          do {\n            local_e8 = local_dc + 0x5c;\n            puVar5 = param_11;\n            if (local_e8 != iVar4) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;\n              puVar5 = (undefined1 *)FUN_001e5200();\n              *puVar5 = 1;\n              *(undefined4 *)(puVar5 + 8) = 0;\n              *(undefined4 *)(puVar5 + 0xc) = 0;\n              *(undefined4 *)(puVar5 + 0x10) = 0;\n              *(undefined4 *)(puVar5 + 4) = 1;\n            }\n            *(undefined4 *)(puVar7 + -0x10) = 0x50;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16db2d;\n            piVar3 = (int *)FUN_001e5200();\n            piVar3[1] = 0;\n            piVar3[2] = (int)(piVar3 + 4);\n            piVar3[3] = 0;\n            *piVar3 = (int)local_ec;\n            piVar3[0xc] = param_4;\n            piVar3[9] = param_6;\n            piVar3[0xe] = param_7;\n            piVar3[10] = param_2;\n            piVar3[0x12] = (int)local_e4;\n            piVar3[0xb] = param_3;\n            *(undefined1 *)(piVar3 + 4) = 0;\n            *(undefined1 *)(piVar3 + 8) = 0;\n            piVar3[0xd] = 0;\n            piVar3[0xf] = local_dc;\n            piVar3[0x10] = param_8;\n            piVar3[0x11] = 0;\n            piVar3[0x13] = (int)puVar5;\n            *(int **)(puVar7 + -0xc) = piVar3;\n            *(undefined4 *)(puVar7 + -0x10) = param_1;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16dba5;\n            FUN_001906c0();\n            if (local_24 == (int *)0x0) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;\n              local_24 = (int *)FUN_001e5200();\n              *local_24 = 0;\n              local_24[1] = 0;\n              local_24[2] = 0;\n              *(undefined2 *)(local_24 + 3) = 0;\n              local_24[4] = 0;\n              iVar4 = 0;\n            }\n            else {\n              iVar4 = local_24[1];\n            }\n            local_dc = local_e8;\n            local_e4 = puVar5;\n          } while (local_e8 != iVar4);\n          *param_12 = 1;\n          cVar1 = local_f1;\n        }\n      }\n    }\n    else {\n      cVar1 = local_58;\n      if (local_58 != '\0') {\n        *(int *)(puVar7 + -0xc) = param_10;\n        *(char **)(puVar7 + -0x10) = param_9;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc84;\n        FUN_00142200();\n        *(undefined1 **)(puVar7 + -0xc) = param_11;\n        *(int *)(puVar7 + -0x10) = param_8;\n        *(char **)(puVar7 + -0x14) = param_9;\n        *(int *)(puVar7 + -0x18) = param_7;\n        *(undefined4 *)(puVar7 + -0x1c) = param_5;\n        *(int *)(puVar7 + -0x20) = param_4;\n        *(int *)(puVar7 + -0x24) = param_3;\n        *(int *)(puVar7 + -0x28) = param_2;\n        *(int *)(puVar7 + -0x2c) = param_6;\n        *(undefined4 *)(puVar7 + -0x30) = param_1;\n        *(undefined4 *)(puVar7 + -0x34) = 0x16dca7;\n        FUN_00142290();\n        cVar1 = local_f1;\n      }\n    }\n    if (local_3c[3] != 0) {\n      *(int *)(puVar7 + -0x10) = local_3c[3];\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da23;\n      FUN_001e6db0();\n    }\n    if (local_3c[0] != 0) {\n      *(int *)(puVar7 + -0x10) = local_3c[0];\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da3c;\n      FUN_001e6db0();\n    }\n    if (local_bc != local_f0) {\n      *(undefined1 **)(puVar7 + -0x10) = local_bc;\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da5c;\n      FUN_001e6db0();\n    }\n    return cVar1;\n  }" { (expression_statement "local_4c = local_50 + 0x68;" (assignment_expression "local_4c = local_50 + 0x68" identifier = (binary_expression "local_50 + 0x68" identifier + number_literal)) ;) (expression_statement "local_70 = *(undefined4 *)(param_10 + 0x1c);" (assignment_expression "local_70 = *(undefined4 *)(param_10 + 0x1c)" identifier = (pointer_expression "*(undefined4 *)(param_10 + 0x1c)" * (cast_expression "(undefined4 *)(param_10 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_10 + 0x1c)" ( (binary_expression "param_10 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (expression_statement "local_6c = *(undefined4 *)(param_9 + 0x3c);" (assignment_expression "local_6c = *(undefined4 *)(param_9 + 0x3c)" identifier = (pointer_expression "*(undefined4 *)(param_9 + 0x3c)" * (cast_expression "(undefined4 *)(param_9 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_9 + 0x3c)" ( (binary_expression "param_9 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "local_58 = '\0';" (assignment_expression "local_58 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_68 = *(undefined4 *)(param_9 + 0x40);" (assignment_expression "local_68 = *(undefined4 *)(param_9 + 0x40)" identifier = (pointer_expression "*(undefined4 *)(param_9 + 0x40)" * (cast_expression "(undefined4 *)(param_9 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_9 + 0x40)" ( (binary_expression "param_9 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "local_64 = *(undefined4 *)(param_9 + 0x44);" (assignment_expression "local_64 = *(undefined4 *)(param_9 + 0x44)" identifier = (pointer_expression "*(undefined4 *)(param_9 + 0x44)" * (cast_expression "(undefined4 *)(param_9 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_9 + 0x44)" ( (binary_expression "param_9 + 0x44" identifier + number_literal) ))))) ;) (expression_statement "local_60 = *(undefined4 *)(param_9 + 0x48);" (assignment_expression "local_60 = *(undefined4 *)(param_9 + 0x48)" identifier = (pointer_expression "*(undefined4 *)(param_9 + 0x48)" * (cast_expression "(undefined4 *)(param_9 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_9 + 0x48)" ( (binary_expression "param_9 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "local_48 = &local_a4;" (assignment_expression "local_48 = &local_a4" identifier = (pointer_expression "&local_a4" & identifier)) ;) (expression_statement "local_3c[0] = 0;" (assignment_expression "local_3c[0] = 0" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_3c[1] = 0;" (assignment_expression "local_3c[1] = 0" (subscript_expression "local_3c[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_3c[2] = 0;" (assignment_expression "local_3c[2] = 0" (subscript_expression "local_3c[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_3c[3] = 0;" (assignment_expression "local_3c[3] = 0" (subscript_expression "local_3c[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_3c[4] = 0;" (assignment_expression "local_3c[4] = 0" (subscript_expression "local_3c[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_3c[5] = 0;" (assignment_expression "local_3c[5] = 0" (subscript_expression "local_3c[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_24 = (int *)0x0;" (assignment_expression "local_24 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_c0 = 0;" (assignment_expression "local_c0 = 0" identifier = number_literal) ;) (expression_statement "*(undefined4 **)(puVar7 + -8) = &local_c0;" (assignment_expression "*(undefined4 **)(puVar7 + -8) = &local_c0" (pointer_expression "*(undefined4 **)(puVar7 + -8)" * (cast_expression "(undefined4 **)(puVar7 + -8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + -8)" ( (binary_expression "puVar7 + -8" identifier + number_literal) )))) = (pointer_expression "&local_c0" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar7 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar7 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar7 + -0xc)" * (cast_expression "(undefined4 *)(puVar7 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0xc)" ( (binary_expression "puVar7 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int **)(puVar7 + -0x10) = local_3c + 3;" (assignment_expression "*(int **)(puVar7 + -0x10) = local_3c + 3" (pointer_expression "*(int **)(puVar7 + -0x10)" * (cast_expression "(int **)(puVar7 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + -0x10)" ( (binary_expression "puVar7 + -0x10" identifier + number_literal) )))) = (binary_expression "local_3c + 3" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16d9bc;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16d9bc" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" * (cast_expression "(undefined4 *)(puVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x14)" ( (binary_expression "puVar7 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_20 = piVar3;" (assignment_expression "local_20 = piVar3" identifier = identifier) ;) (expression_statement "FUN_0016f460();" (call_expression "FUN_0016f460()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 **)(puVar7 + -0xc) = &local_c0;" (assignment_expression "*(undefined4 **)(puVar7 + -0xc) = &local_c0" (pointer_expression "*(undefined4 **)(puVar7 + -0xc)" * (cast_expression "(undefined4 **)(puVar7 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + -0xc)" ( (binary_expression "puVar7 + -0xc" identifier + number_literal) )))) = (pointer_expression "&local_c0" & identifier)) ;) (expression_statement "local_c0 = local_98;" (assignment_expression "local_c0 = local_98" identifier = identifier) ;) (expression_statement "*(int **)(puVar7 + -0x10) = local_3c;" (assignment_expression "*(int **)(puVar7 + -0x10) = local_3c" (pointer_expression "*(int **)(puVar7 + -0x10)" * (cast_expression "(int **)(puVar7 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + -0x10)" ( (binary_expression "puVar7 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16d9d4;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16d9d4" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" * (cast_expression "(undefined4 *)(puVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x14)" ( (binary_expression "puVar7 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0016f700();" (call_expression "FUN_0016f700()" identifier (argument_list "()" ( ))) ;) (expression_statement "cVar1 = *(char *)(*(int *)(param_3 + 4) + 0xac);" (assignment_expression "cVar1 = *(char *)(*(int *)(param_3 + 4) + 0xac)" identifier = (pointer_expression "*(char *)(*(int *)(param_3 + 4) + 0xac)" * (cast_expression "(char *)(*(int *)(param_3 + 4) + 0xac)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_3 + 4) + 0xac)" ( (binary_expression "*(int *)(param_3 + 4) + 0xac" (pointer_expression "*(int *)(param_3 + 4)" * (cast_expression "(int *)(param_3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "local_f8 = &local_70;" (assignment_expression "local_f8 = &local_70" identifier = (pointer_expression "&local_70" & identifier)) ;) (expression_statement "*(undefined4 **)(puVar7 + -0x10) = local_f8;" (assignment_expression "*(undefined4 **)(puVar7 + -0x10) = local_f8" (pointer_expression "*(undefined4 **)(puVar7 + -0x10)" * (cast_expression "(undefined4 **)(puVar7 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + -0x10)" ( (binary_expression "puVar7 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16d9f8;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16d9f8" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" * (cast_expression "(undefined4 *)(puVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x14)" ( (binary_expression "puVar7 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar4 = FUN_00191d40();" (assignment_expression "iVar4 = FUN_00191d40()" identifier = (call_expression "FUN_00191d40()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar4 == 0) {\n      if (((cVar1 == '\0') && (*(char *)(*(int *)(param_3 + 4) + 0xac) != '\0')) &&\n         (*(char *)(param_3 + 0x1c4) != '\0')) {\n        uVar2 = *(undefined4 *)(param_10 + 0x1c);\n        *(undefined ***)(puVar7 + -0x10) = local_d8 + -0x3d6c8;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc5d;\n        uVar6 = gettext();\n        *(undefined4 *)(puVar7 + -0xc) = uVar2;\n        *(undefined4 *)(puVar7 + -0x10) = uVar6;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc66;\n        FUN_000654b0();\n      }\n      cVar1 = local_f1;\n      if (local_24 != (int *)0x0) {\n        local_e4 = (undefined1 *)0x0;\n        iVar4 = local_24[1];\n        local_dc = *local_24;\n        if (iVar4 != local_dc) {\n          local_ec = local_d8 + -0x289c;\n          do {\n            local_e8 = local_dc + 0x5c;\n            puVar5 = param_11;\n            if (local_e8 != iVar4) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;\n              puVar5 = (undefined1 *)FUN_001e5200();\n              *puVar5 = 1;\n              *(undefined4 *)(puVar5 + 8) = 0;\n              *(undefined4 *)(puVar5 + 0xc) = 0;\n              *(undefined4 *)(puVar5 + 0x10) = 0;\n              *(undefined4 *)(puVar5 + 4) = 1;\n            }\n            *(undefined4 *)(puVar7 + -0x10) = 0x50;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16db2d;\n            piVar3 = (int *)FUN_001e5200();\n            piVar3[1] = 0;\n            piVar3[2] = (int)(piVar3 + 4);\n            piVar3[3] = 0;\n            *piVar3 = (int)local_ec;\n            piVar3[0xc] = param_4;\n            piVar3[9] = param_6;\n            piVar3[0xe] = param_7;\n            piVar3[10] = param_2;\n            piVar3[0x12] = (int)local_e4;\n            piVar3[0xb] = param_3;\n            *(undefined1 *)(piVar3 + 4) = 0;\n            *(undefined1 *)(piVar3 + 8) = 0;\n            piVar3[0xd] = 0;\n            piVar3[0xf] = local_dc;\n            piVar3[0x10] = param_8;\n            piVar3[0x11] = 0;\n            piVar3[0x13] = (int)puVar5;\n            *(int **)(puVar7 + -0xc) = piVar3;\n            *(undefined4 *)(puVar7 + -0x10) = param_1;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16dba5;\n            FUN_001906c0();\n            if (local_24 == (int *)0x0) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;\n              local_24 = (int *)FUN_001e5200();\n              *local_24 = 0;\n              local_24[1] = 0;\n              local_24[2] = 0;\n              *(undefined2 *)(local_24 + 3) = 0;\n              local_24[4] = 0;\n              iVar4 = 0;\n            }\n            else {\n              iVar4 = local_24[1];\n            }\n            local_dc = local_e8;\n            local_e4 = puVar5;\n          } while (local_e8 != iVar4);\n          *param_12 = 1;\n          cVar1 = local_f1;\n        }\n      }\n    }\n    else {\n      cVar1 = local_58;\n      if (local_58 != '\0') {\n        *(int *)(puVar7 + -0xc) = param_10;\n        *(char **)(puVar7 + -0x10) = param_9;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc84;\n        FUN_00142200();\n        *(undefined1 **)(puVar7 + -0xc) = param_11;\n        *(int *)(puVar7 + -0x10) = param_8;\n        *(char **)(puVar7 + -0x14) = param_9;\n        *(int *)(puVar7 + -0x18) = param_7;\n        *(undefined4 *)(puVar7 + -0x1c) = param_5;\n        *(int *)(puVar7 + -0x20) = param_4;\n        *(int *)(puVar7 + -0x24) = param_3;\n        *(int *)(puVar7 + -0x28) = param_2;\n        *(int *)(puVar7 + -0x2c) = param_6;\n        *(undefined4 *)(puVar7 + -0x30) = param_1;\n        *(undefined4 *)(puVar7 + -0x34) = 0x16dca7;\n        FUN_00142290();\n        cVar1 = local_f1;\n      }\n    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      if (((cVar1 == '\0') && (*(char *)(*(int *)(param_3 + 4) + 0xac) != '\0')) &&\n         (*(char *)(param_3 + 0x1c4) != '\0')) {\n        uVar2 = *(undefined4 *)(param_10 + 0x1c);\n        *(undefined ***)(puVar7 + -0x10) = local_d8 + -0x3d6c8;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc5d;\n        uVar6 = gettext();\n        *(undefined4 *)(puVar7 + -0xc) = uVar2;\n        *(undefined4 *)(puVar7 + -0x10) = uVar6;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc66;\n        FUN_000654b0();\n      }\n      cVar1 = local_f1;\n      if (local_24 != (int *)0x0) {\n        local_e4 = (undefined1 *)0x0;\n        iVar4 = local_24[1];\n        local_dc = *local_24;\n        if (iVar4 != local_dc) {\n          local_ec = local_d8 + -0x289c;\n          do {\n            local_e8 = local_dc + 0x5c;\n            puVar5 = param_11;\n            if (local_e8 != iVar4) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;\n              puVar5 = (undefined1 *)FUN_001e5200();\n              *puVar5 = 1;\n              *(undefined4 *)(puVar5 + 8) = 0;\n              *(undefined4 *)(puVar5 + 0xc) = 0;\n              *(undefined4 *)(puVar5 + 0x10) = 0;\n              *(undefined4 *)(puVar5 + 4) = 1;\n            }\n            *(undefined4 *)(puVar7 + -0x10) = 0x50;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16db2d;\n            piVar3 = (int *)FUN_001e5200();\n            piVar3[1] = 0;\n            piVar3[2] = (int)(piVar3 + 4);\n            piVar3[3] = 0;\n            *piVar3 = (int)local_ec;\n            piVar3[0xc] = param_4;\n            piVar3[9] = param_6;\n            piVar3[0xe] = param_7;\n            piVar3[10] = param_2;\n            piVar3[0x12] = (int)local_e4;\n            piVar3[0xb] = param_3;\n            *(undefined1 *)(piVar3 + 4) = 0;\n            *(undefined1 *)(piVar3 + 8) = 0;\n            piVar3[0xd] = 0;\n            piVar3[0xf] = local_dc;\n            piVar3[0x10] = param_8;\n            piVar3[0x11] = 0;\n            piVar3[0x13] = (int)puVar5;\n            *(int **)(puVar7 + -0xc) = piVar3;\n            *(undefined4 *)(puVar7 + -0x10) = param_1;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16dba5;\n            FUN_001906c0();\n            if (local_24 == (int *)0x0) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;\n              local_24 = (int *)FUN_001e5200();\n              *local_24 = 0;\n              local_24[1] = 0;\n              local_24[2] = 0;\n              *(undefined2 *)(local_24 + 3) = 0;\n              local_24[4] = 0;\n              iVar4 = 0;\n            }\n            else {\n              iVar4 = local_24[1];\n            }\n            local_dc = local_e8;\n            local_e4 = puVar5;\n          } while (local_e8 != iVar4);\n          *param_12 = 1;\n          cVar1 = local_f1;\n        }\n      }\n    }" { (if_statement "if (((cVar1 == '\0') && (*(char *)(*(int *)(param_3 + 4) + 0xac) != '\0')) &&\n         (*(char *)(param_3 + 0x1c4) != '\0')) {\n        uVar2 = *(undefined4 *)(param_10 + 0x1c);\n        *(undefined ***)(puVar7 + -0x10) = local_d8 + -0x3d6c8;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc5d;\n        uVar6 = gettext();\n        *(undefined4 *)(puVar7 + -0xc) = uVar2;\n        *(undefined4 *)(puVar7 + -0x10) = uVar6;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc66;\n        FUN_000654b0();\n      }" if (parenthesized_expression "(((cVar1 == '\0') && (*(char *)(*(int *)(param_3 + 4) + 0xac) != '\0')) &&\n         (*(char *)(param_3 + 0x1c4) != '\0'))" ( (binary_expression "((cVar1 == '\0') && (*(char *)(*(int *)(param_3 + 4) + 0xac) != '\0')) &&\n         (*(char *)(param_3 + 0x1c4) != '\0')" (parenthesized_expression "((cVar1 == '\0') && (*(char *)(*(int *)(param_3 + 4) + 0xac) != '\0'))" ( (binary_expression "(cVar1 == '\0') && (*(char *)(*(int *)(param_3 + 4) + 0xac) != '\0')" (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(*(int *)(param_3 + 4) + 0xac) != '\0')" ( (binary_expression "*(char *)(*(int *)(param_3 + 4) + 0xac) != '\0'" (pointer_expression "*(char *)(*(int *)(param_3 + 4) + 0xac)" * (cast_expression "(char *)(*(int *)(param_3 + 4) + 0xac)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_3 + 4) + 0xac)" ( (binary_expression "*(int *)(param_3 + 4) + 0xac" (pointer_expression "*(int *)(param_3 + 4)" * (cast_expression "(int *)(param_3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(*(char *)(param_3 + 0x1c4) != '\0')" ( (binary_expression "*(char *)(param_3 + 0x1c4) != '\0'" (pointer_expression "*(char *)(param_3 + 0x1c4)" * (cast_expression "(char *)(param_3 + 0x1c4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x1c4)" ( (binary_expression "param_3 + 0x1c4" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        uVar2 = *(undefined4 *)(param_10 + 0x1c);\n        *(undefined ***)(puVar7 + -0x10) = local_d8 + -0x3d6c8;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc5d;\n        uVar6 = gettext();\n        *(undefined4 *)(puVar7 + -0xc) = uVar2;\n        *(undefined4 *)(puVar7 + -0x10) = uVar6;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc66;\n        FUN_000654b0();\n      }" { (expression_statement "uVar2 = *(undefined4 *)(param_10 + 0x1c);" (assignment_expression "uVar2 = *(undefined4 *)(param_10 + 0x1c)" identifier = (pointer_expression "*(undefined4 *)(param_10 + 0x1c)" * (cast_expression "(undefined4 *)(param_10 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_10 + 0x1c)" ( (binary_expression "param_10 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined ***)(puVar7 + -0x10) = local_d8 + -0x3d6c8;" (assignment_expression "*(undefined ***)(puVar7 + -0x10) = local_d8 + -0x3d6c8" (pointer_expression "*(undefined ***)(puVar7 + -0x10)" * (cast_expression "(undefined ***)(puVar7 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar7 + -0x10)" ( (binary_expression "puVar7 + -0x10" identifier + number_literal) )))) = (binary_expression "local_d8 + -0x3d6c8" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16dc5d;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16dc5d" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" * (cast_expression "(undefined4 *)(puVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x14)" ( (binary_expression "puVar7 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar6 = gettext();" (assignment_expression "uVar6 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar7 + -0xc) = uVar2;" (assignment_expression "*(undefined4 *)(puVar7 + -0xc) = uVar2" (pointer_expression "*(undefined4 *)(puVar7 + -0xc)" * (cast_expression "(undefined4 *)(puVar7 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0xc)" ( (binary_expression "puVar7 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x10) = uVar6;" (assignment_expression "*(undefined4 *)(puVar7 + -0x10) = uVar6" (pointer_expression "*(undefined4 *)(puVar7 + -0x10)" * (cast_expression "(undefined4 *)(puVar7 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x10)" ( (binary_expression "puVar7 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16dc66;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16dc66" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" * (cast_expression "(undefined4 *)(puVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x14)" ( (binary_expression "puVar7 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000654b0();" (call_expression "FUN_000654b0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "cVar1 = local_f1;" (assignment_expression "cVar1 = local_f1" identifier = identifier) ;) (if_statement "if (local_24 != (int *)0x0) {\n        local_e4 = (undefined1 *)0x0;\n        iVar4 = local_24[1];\n        local_dc = *local_24;\n        if (iVar4 != local_dc) {\n          local_ec = local_d8 + -0x289c;\n          do {\n            local_e8 = local_dc + 0x5c;\n            puVar5 = param_11;\n            if (local_e8 != iVar4) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;\n              puVar5 = (undefined1 *)FUN_001e5200();\n              *puVar5 = 1;\n              *(undefined4 *)(puVar5 + 8) = 0;\n              *(undefined4 *)(puVar5 + 0xc) = 0;\n              *(undefined4 *)(puVar5 + 0x10) = 0;\n              *(undefined4 *)(puVar5 + 4) = 1;\n            }\n            *(undefined4 *)(puVar7 + -0x10) = 0x50;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16db2d;\n            piVar3 = (int *)FUN_001e5200();\n            piVar3[1] = 0;\n            piVar3[2] = (int)(piVar3 + 4);\n            piVar3[3] = 0;\n            *piVar3 = (int)local_ec;\n            piVar3[0xc] = param_4;\n            piVar3[9] = param_6;\n            piVar3[0xe] = param_7;\n            piVar3[10] = param_2;\n            piVar3[0x12] = (int)local_e4;\n            piVar3[0xb] = param_3;\n            *(undefined1 *)(piVar3 + 4) = 0;\n            *(undefined1 *)(piVar3 + 8) = 0;\n            piVar3[0xd] = 0;\n            piVar3[0xf] = local_dc;\n            piVar3[0x10] = param_8;\n            piVar3[0x11] = 0;\n            piVar3[0x13] = (int)puVar5;\n            *(int **)(puVar7 + -0xc) = piVar3;\n            *(undefined4 *)(puVar7 + -0x10) = param_1;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16dba5;\n            FUN_001906c0();\n            if (local_24 == (int *)0x0) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;\n              local_24 = (int *)FUN_001e5200();\n              *local_24 = 0;\n              local_24[1] = 0;\n              local_24[2] = 0;\n              *(undefined2 *)(local_24 + 3) = 0;\n              local_24[4] = 0;\n              iVar4 = 0;\n            }\n            else {\n              iVar4 = local_24[1];\n            }\n            local_dc = local_e8;\n            local_e4 = puVar5;\n          } while (local_e8 != iVar4);\n          *param_12 = 1;\n          cVar1 = local_f1;\n        }\n      }" if (parenthesized_expression "(local_24 != (int *)0x0)" ( (binary_expression "local_24 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_e4 = (undefined1 *)0x0;\n        iVar4 = local_24[1];\n        local_dc = *local_24;\n        if (iVar4 != local_dc) {\n          local_ec = local_d8 + -0x289c;\n          do {\n            local_e8 = local_dc + 0x5c;\n            puVar5 = param_11;\n            if (local_e8 != iVar4) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;\n              puVar5 = (undefined1 *)FUN_001e5200();\n              *puVar5 = 1;\n              *(undefined4 *)(puVar5 + 8) = 0;\n              *(undefined4 *)(puVar5 + 0xc) = 0;\n              *(undefined4 *)(puVar5 + 0x10) = 0;\n              *(undefined4 *)(puVar5 + 4) = 1;\n            }\n            *(undefined4 *)(puVar7 + -0x10) = 0x50;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16db2d;\n            piVar3 = (int *)FUN_001e5200();\n            piVar3[1] = 0;\n            piVar3[2] = (int)(piVar3 + 4);\n            piVar3[3] = 0;\n            *piVar3 = (int)local_ec;\n            piVar3[0xc] = param_4;\n            piVar3[9] = param_6;\n            piVar3[0xe] = param_7;\n            piVar3[10] = param_2;\n            piVar3[0x12] = (int)local_e4;\n            piVar3[0xb] = param_3;\n            *(undefined1 *)(piVar3 + 4) = 0;\n            *(undefined1 *)(piVar3 + 8) = 0;\n            piVar3[0xd] = 0;\n            piVar3[0xf] = local_dc;\n            piVar3[0x10] = param_8;\n            piVar3[0x11] = 0;\n            piVar3[0x13] = (int)puVar5;\n            *(int **)(puVar7 + -0xc) = piVar3;\n            *(undefined4 *)(puVar7 + -0x10) = param_1;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16dba5;\n            FUN_001906c0();\n            if (local_24 == (int *)0x0) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;\n              local_24 = (int *)FUN_001e5200();\n              *local_24 = 0;\n              local_24[1] = 0;\n              local_24[2] = 0;\n              *(undefined2 *)(local_24 + 3) = 0;\n              local_24[4] = 0;\n              iVar4 = 0;\n            }\n            else {\n              iVar4 = local_24[1];\n            }\n            local_dc = local_e8;\n            local_e4 = puVar5;\n          } while (local_e8 != iVar4);\n          *param_12 = 1;\n          cVar1 = local_f1;\n        }\n      }" { (expression_statement "local_e4 = (undefined1 *)0x0;" (assignment_expression "local_e4 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar4 = local_24[1];" (assignment_expression "iVar4 = local_24[1]" identifier = (subscript_expression "local_24[1]" identifier [ number_literal ])) ;) (expression_statement "local_dc = *local_24;" (assignment_expression "local_dc = *local_24" identifier = (pointer_expression "*local_24" * identifier)) ;) (if_statement "if (iVar4 != local_dc) {\n          local_ec = local_d8 + -0x289c;\n          do {\n            local_e8 = local_dc + 0x5c;\n            puVar5 = param_11;\n            if (local_e8 != iVar4) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;\n              puVar5 = (undefined1 *)FUN_001e5200();\n              *puVar5 = 1;\n              *(undefined4 *)(puVar5 + 8) = 0;\n              *(undefined4 *)(puVar5 + 0xc) = 0;\n              *(undefined4 *)(puVar5 + 0x10) = 0;\n              *(undefined4 *)(puVar5 + 4) = 1;\n            }\n            *(undefined4 *)(puVar7 + -0x10) = 0x50;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16db2d;\n            piVar3 = (int *)FUN_001e5200();\n            piVar3[1] = 0;\n            piVar3[2] = (int)(piVar3 + 4);\n            piVar3[3] = 0;\n            *piVar3 = (int)local_ec;\n            piVar3[0xc] = param_4;\n            piVar3[9] = param_6;\n            piVar3[0xe] = param_7;\n            piVar3[10] = param_2;\n            piVar3[0x12] = (int)local_e4;\n            piVar3[0xb] = param_3;\n            *(undefined1 *)(piVar3 + 4) = 0;\n            *(undefined1 *)(piVar3 + 8) = 0;\n            piVar3[0xd] = 0;\n            piVar3[0xf] = local_dc;\n            piVar3[0x10] = param_8;\n            piVar3[0x11] = 0;\n            piVar3[0x13] = (int)puVar5;\n            *(int **)(puVar7 + -0xc) = piVar3;\n            *(undefined4 *)(puVar7 + -0x10) = param_1;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16dba5;\n            FUN_001906c0();\n            if (local_24 == (int *)0x0) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;\n              local_24 = (int *)FUN_001e5200();\n              *local_24 = 0;\n              local_24[1] = 0;\n              local_24[2] = 0;\n              *(undefined2 *)(local_24 + 3) = 0;\n              local_24[4] = 0;\n              iVar4 = 0;\n            }\n            else {\n              iVar4 = local_24[1];\n            }\n            local_dc = local_e8;\n            local_e4 = puVar5;\n          } while (local_e8 != iVar4);\n          *param_12 = 1;\n          cVar1 = local_f1;\n        }" if (parenthesized_expression "(iVar4 != local_dc)" ( (binary_expression "iVar4 != local_dc" identifier != identifier) )) (compound_statement "{\n          local_ec = local_d8 + -0x289c;\n          do {\n            local_e8 = local_dc + 0x5c;\n            puVar5 = param_11;\n            if (local_e8 != iVar4) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;\n              puVar5 = (undefined1 *)FUN_001e5200();\n              *puVar5 = 1;\n              *(undefined4 *)(puVar5 + 8) = 0;\n              *(undefined4 *)(puVar5 + 0xc) = 0;\n              *(undefined4 *)(puVar5 + 0x10) = 0;\n              *(undefined4 *)(puVar5 + 4) = 1;\n            }\n            *(undefined4 *)(puVar7 + -0x10) = 0x50;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16db2d;\n            piVar3 = (int *)FUN_001e5200();\n            piVar3[1] = 0;\n            piVar3[2] = (int)(piVar3 + 4);\n            piVar3[3] = 0;\n            *piVar3 = (int)local_ec;\n            piVar3[0xc] = param_4;\n            piVar3[9] = param_6;\n            piVar3[0xe] = param_7;\n            piVar3[10] = param_2;\n            piVar3[0x12] = (int)local_e4;\n            piVar3[0xb] = param_3;\n            *(undefined1 *)(piVar3 + 4) = 0;\n            *(undefined1 *)(piVar3 + 8) = 0;\n            piVar3[0xd] = 0;\n            piVar3[0xf] = local_dc;\n            piVar3[0x10] = param_8;\n            piVar3[0x11] = 0;\n            piVar3[0x13] = (int)puVar5;\n            *(int **)(puVar7 + -0xc) = piVar3;\n            *(undefined4 *)(puVar7 + -0x10) = param_1;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16dba5;\n            FUN_001906c0();\n            if (local_24 == (int *)0x0) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;\n              local_24 = (int *)FUN_001e5200();\n              *local_24 = 0;\n              local_24[1] = 0;\n              local_24[2] = 0;\n              *(undefined2 *)(local_24 + 3) = 0;\n              local_24[4] = 0;\n              iVar4 = 0;\n            }\n            else {\n              iVar4 = local_24[1];\n            }\n            local_dc = local_e8;\n            local_e4 = puVar5;\n          } while (local_e8 != iVar4);\n          *param_12 = 1;\n          cVar1 = local_f1;\n        }" { (expression_statement "local_ec = local_d8 + -0x289c;" (assignment_expression "local_ec = local_d8 + -0x289c" identifier = (binary_expression "local_d8 + -0x289c" identifier + number_literal)) ;) (do_statement "do {\n            local_e8 = local_dc + 0x5c;\n            puVar5 = param_11;\n            if (local_e8 != iVar4) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;\n              puVar5 = (undefined1 *)FUN_001e5200();\n              *puVar5 = 1;\n              *(undefined4 *)(puVar5 + 8) = 0;\n              *(undefined4 *)(puVar5 + 0xc) = 0;\n              *(undefined4 *)(puVar5 + 0x10) = 0;\n              *(undefined4 *)(puVar5 + 4) = 1;\n            }\n            *(undefined4 *)(puVar7 + -0x10) = 0x50;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16db2d;\n            piVar3 = (int *)FUN_001e5200();\n            piVar3[1] = 0;\n            piVar3[2] = (int)(piVar3 + 4);\n            piVar3[3] = 0;\n            *piVar3 = (int)local_ec;\n            piVar3[0xc] = param_4;\n            piVar3[9] = param_6;\n            piVar3[0xe] = param_7;\n            piVar3[10] = param_2;\n            piVar3[0x12] = (int)local_e4;\n            piVar3[0xb] = param_3;\n            *(undefined1 *)(piVar3 + 4) = 0;\n            *(undefined1 *)(piVar3 + 8) = 0;\n            piVar3[0xd] = 0;\n            piVar3[0xf] = local_dc;\n            piVar3[0x10] = param_8;\n            piVar3[0x11] = 0;\n            piVar3[0x13] = (int)puVar5;\n            *(int **)(puVar7 + -0xc) = piVar3;\n            *(undefined4 *)(puVar7 + -0x10) = param_1;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16dba5;\n            FUN_001906c0();\n            if (local_24 == (int *)0x0) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;\n              local_24 = (int *)FUN_001e5200();\n              *local_24 = 0;\n              local_24[1] = 0;\n              local_24[2] = 0;\n              *(undefined2 *)(local_24 + 3) = 0;\n              local_24[4] = 0;\n              iVar4 = 0;\n            }\n            else {\n              iVar4 = local_24[1];\n            }\n            local_dc = local_e8;\n            local_e4 = puVar5;\n          } while (local_e8 != iVar4);" do (compound_statement "{\n            local_e8 = local_dc + 0x5c;\n            puVar5 = param_11;\n            if (local_e8 != iVar4) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;\n              puVar5 = (undefined1 *)FUN_001e5200();\n              *puVar5 = 1;\n              *(undefined4 *)(puVar5 + 8) = 0;\n              *(undefined4 *)(puVar5 + 0xc) = 0;\n              *(undefined4 *)(puVar5 + 0x10) = 0;\n              *(undefined4 *)(puVar5 + 4) = 1;\n            }\n            *(undefined4 *)(puVar7 + -0x10) = 0x50;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16db2d;\n            piVar3 = (int *)FUN_001e5200();\n            piVar3[1] = 0;\n            piVar3[2] = (int)(piVar3 + 4);\n            piVar3[3] = 0;\n            *piVar3 = (int)local_ec;\n            piVar3[0xc] = param_4;\n            piVar3[9] = param_6;\n            piVar3[0xe] = param_7;\n            piVar3[10] = param_2;\n            piVar3[0x12] = (int)local_e4;\n            piVar3[0xb] = param_3;\n            *(undefined1 *)(piVar3 + 4) = 0;\n            *(undefined1 *)(piVar3 + 8) = 0;\n            piVar3[0xd] = 0;\n            piVar3[0xf] = local_dc;\n            piVar3[0x10] = param_8;\n            piVar3[0x11] = 0;\n            piVar3[0x13] = (int)puVar5;\n            *(int **)(puVar7 + -0xc) = piVar3;\n            *(undefined4 *)(puVar7 + -0x10) = param_1;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16dba5;\n            FUN_001906c0();\n            if (local_24 == (int *)0x0) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;\n              local_24 = (int *)FUN_001e5200();\n              *local_24 = 0;\n              local_24[1] = 0;\n              local_24[2] = 0;\n              *(undefined2 *)(local_24 + 3) = 0;\n              local_24[4] = 0;\n              iVar4 = 0;\n            }\n            else {\n              iVar4 = local_24[1];\n            }\n            local_dc = local_e8;\n            local_e4 = puVar5;\n          }" { (expression_statement "local_e8 = local_dc + 0x5c;" (assignment_expression "local_e8 = local_dc + 0x5c" identifier = (binary_expression "local_dc + 0x5c" identifier + number_literal)) ;) (expression_statement "puVar5 = param_11;" (assignment_expression "puVar5 = param_11" identifier = identifier) ;) (if_statement "if (local_e8 != iVar4) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;\n              puVar5 = (undefined1 *)FUN_001e5200();\n              *puVar5 = 1;\n              *(undefined4 *)(puVar5 + 8) = 0;\n              *(undefined4 *)(puVar5 + 0xc) = 0;\n              *(undefined4 *)(puVar5 + 0x10) = 0;\n              *(undefined4 *)(puVar5 + 4) = 1;\n            }" if (parenthesized_expression "(local_e8 != iVar4)" ( (binary_expression "local_e8 != iVar4" identifier != identifier) )) (compound_statement "{\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;\n              puVar5 = (undefined1 *)FUN_001e5200();\n              *puVar5 = 1;\n              *(undefined4 *)(puVar5 + 8) = 0;\n              *(undefined4 *)(puVar5 + 0xc) = 0;\n              *(undefined4 *)(puVar5 + 0x10) = 0;\n              *(undefined4 *)(puVar5 + 4) = 1;\n            }" { (expression_statement "*(undefined4 *)(puVar7 + -0x10) = 0x14;" (assignment_expression "*(undefined4 *)(puVar7 + -0x10) = 0x14" (pointer_expression "*(undefined4 *)(puVar7 + -0x10)" * (cast_expression "(undefined4 *)(puVar7 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x10)" ( (binary_expression "puVar7 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16daf7;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16daf7" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" * (cast_expression "(undefined4 *)(puVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x14)" ( (binary_expression "puVar7 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar5 = (undefined1 *)FUN_001e5200();" (assignment_expression "puVar5 = (undefined1 *)FUN_001e5200()" identifier = (cast_expression "(undefined1 *)FUN_001e5200()" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e5200()" identifier (argument_list "()" ( ))))) ;) (expression_statement "*puVar5 = 1;" (assignment_expression "*puVar5 = 1" (pointer_expression "*puVar5" * identifier) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar5 + 8) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + 8) = 0" (pointer_expression "*(undefined4 *)(puVar5 + 8)" * (cast_expression "(undefined4 *)(puVar5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 8)" ( (binary_expression "puVar5 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(puVar5 + 0xc)" * (cast_expression "(undefined4 *)(puVar5 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0xc)" ( (binary_expression "puVar5 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar5 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + 0x10) = 0" (pointer_expression "*(undefined4 *)(puVar5 + 0x10)" * (cast_expression "(undefined4 *)(puVar5 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x10)" ( (binary_expression "puVar5 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar5 + 4) = 1;" (assignment_expression "*(undefined4 *)(puVar5 + 4) = 1" (pointer_expression "*(undefined4 *)(puVar5 + 4)" * (cast_expression "(undefined4 *)(puVar5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 4)" ( (binary_expression "puVar5 + 4" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "*(undefined4 *)(puVar7 + -0x10) = 0x50;" (assignment_expression "*(undefined4 *)(puVar7 + -0x10) = 0x50" (pointer_expression "*(undefined4 *)(puVar7 + -0x10)" * (cast_expression "(undefined4 *)(puVar7 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x10)" ( (binary_expression "puVar7 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16db2d;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16db2d" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" * (cast_expression "(undefined4 *)(puVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x14)" ( (binary_expression "puVar7 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar3 = (int *)FUN_001e5200();" (assignment_expression "piVar3 = (int *)FUN_001e5200()" identifier = (cast_expression "(int *)FUN_001e5200()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e5200()" identifier (argument_list "()" ( ))))) ;) (expression_statement "piVar3[1] = 0;" (assignment_expression "piVar3[1] = 0" (subscript_expression "piVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar3[2] = (int)(piVar3 + 4);" (assignment_expression "piVar3[2] = (int)(piVar3 + 4)" (subscript_expression "piVar3[2]" identifier [ number_literal ]) = (cast_expression "(int)(piVar3 + 4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar3 + 4)" ( (binary_expression "piVar3 + 4" identifier + number_literal) )))) ;) (expression_statement "piVar3[3] = 0;" (assignment_expression "piVar3[3] = 0" (subscript_expression "piVar3[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*piVar3 = (int)local_ec;" (assignment_expression "*piVar3 = (int)local_ec" (pointer_expression "*piVar3" * identifier) = (cast_expression "(int)local_ec" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar3[0xc] = param_4;" (assignment_expression "piVar3[0xc] = param_4" (subscript_expression "piVar3[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar3[9] = param_6;" (assignment_expression "piVar3[9] = param_6" (subscript_expression "piVar3[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar3[0xe] = param_7;" (assignment_expression "piVar3[0xe] = param_7" (subscript_expression "piVar3[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar3[10] = param_2;" (assignment_expression "piVar3[10] = param_2" (subscript_expression "piVar3[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar3[0x12] = (int)local_e4;" (assignment_expression "piVar3[0x12] = (int)local_e4" (subscript_expression "piVar3[0x12]" identifier [ number_literal ]) = (cast_expression "(int)local_e4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar3[0xb] = param_3;" (assignment_expression "piVar3[0xb] = param_3" (subscript_expression "piVar3[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(piVar3 + 4) = 0;" (assignment_expression "*(undefined1 *)(piVar3 + 4) = 0" (pointer_expression "*(undefined1 *)(piVar3 + 4)" * (cast_expression "(undefined1 *)(piVar3 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 4)" ( (binary_expression "piVar3 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(piVar3 + 8) = 0;" (assignment_expression "*(undefined1 *)(piVar3 + 8) = 0" (pointer_expression "*(undefined1 *)(piVar3 + 8)" * (cast_expression "(undefined1 *)(piVar3 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 8)" ( (binary_expression "piVar3 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar3[0xd] = 0;" (assignment_expression "piVar3[0xd] = 0" (subscript_expression "piVar3[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar3[0xf] = local_dc;" (assignment_expression "piVar3[0xf] = local_dc" (subscript_expression "piVar3[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar3[0x10] = param_8;" (assignment_expression "piVar3[0x10] = param_8" (subscript_expression "piVar3[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar3[0x11] = 0;" (assignment_expression "piVar3[0x11] = 0" (subscript_expression "piVar3[0x11]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar3[0x13] = (int)puVar5;" (assignment_expression "piVar3[0x13] = (int)puVar5" (subscript_expression "piVar3[0x13]" identifier [ number_literal ]) = (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*(int **)(puVar7 + -0xc) = piVar3;" (assignment_expression "*(int **)(puVar7 + -0xc) = piVar3" (pointer_expression "*(int **)(puVar7 + -0xc)" * (cast_expression "(int **)(puVar7 + -0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + -0xc)" ( (binary_expression "puVar7 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x10) = param_1;" (assignment_expression "*(undefined4 *)(puVar7 + -0x10) = param_1" (pointer_expression "*(undefined4 *)(puVar7 + -0x10)" * (cast_expression "(undefined4 *)(puVar7 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x10)" ( (binary_expression "puVar7 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16dba5;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16dba5" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" * (cast_expression "(undefined4 *)(puVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x14)" ( (binary_expression "puVar7 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001906c0();" (call_expression "FUN_001906c0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (local_24 == (int *)0x0) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;\n              local_24 = (int *)FUN_001e5200();\n              *local_24 = 0;\n              local_24[1] = 0;\n              local_24[2] = 0;\n              *(undefined2 *)(local_24 + 3) = 0;\n              local_24[4] = 0;\n              iVar4 = 0;\n            }\n            else {\n              iVar4 = local_24[1];\n            }" if (parenthesized_expression "(local_24 == (int *)0x0)" ( (binary_expression "local_24 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;\n              local_24 = (int *)FUN_001e5200();\n              *local_24 = 0;\n              local_24[1] = 0;\n              local_24[2] = 0;\n              *(undefined2 *)(local_24 + 3) = 0;\n              local_24[4] = 0;\n              iVar4 = 0;\n            }" { (expression_statement "*(undefined4 *)(puVar7 + -0x10) = 0x14;" (assignment_expression "*(undefined4 *)(puVar7 + -0x10) = 0x14" (pointer_expression "*(undefined4 *)(puVar7 + -0x10)" * (cast_expression "(undefined4 *)(puVar7 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x10)" ( (binary_expression "puVar7 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16dc00;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16dc00" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" * (cast_expression "(undefined4 *)(puVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x14)" ( (binary_expression "puVar7 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_24 = (int *)FUN_001e5200();" (assignment_expression "local_24 = (int *)FUN_001e5200()" identifier = (cast_expression "(int *)FUN_001e5200()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e5200()" identifier (argument_list "()" ( ))))) ;) (expression_statement "*local_24 = 0;" (assignment_expression "*local_24 = 0" (pointer_expression "*local_24" * identifier) = number_literal) ;) (expression_statement "local_24[1] = 0;" (assignment_expression "local_24[1] = 0" (subscript_expression "local_24[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_24[2] = 0;" (assignment_expression "local_24[2] = 0" (subscript_expression "local_24[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined2 *)(local_24 + 3) = 0;" (assignment_expression "*(undefined2 *)(local_24 + 3) = 0" (pointer_expression "*(undefined2 *)(local_24 + 3)" * (cast_expression "(undefined2 *)(local_24 + 3)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_24 + 3)" ( (binary_expression "local_24 + 3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_24[4] = 0;" (assignment_expression "local_24[4] = 0" (subscript_expression "local_24[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n              iVar4 = local_24[1];\n            }" else (compound_statement "{\n              iVar4 = local_24[1];\n            }" { (expression_statement "iVar4 = local_24[1];" (assignment_expression "iVar4 = local_24[1]" identifier = (subscript_expression "local_24[1]" identifier [ number_literal ])) ;) }))) (expression_statement "local_dc = local_e8;" (assignment_expression "local_dc = local_e8" identifier = identifier) ;) (expression_statement "local_e4 = puVar5;" (assignment_expression "local_e4 = puVar5" identifier = identifier) ;) }) while (parenthesized_expression "(local_e8 != iVar4)" ( (binary_expression "local_e8 != iVar4" identifier != identifier) )) ;) (expression_statement "*param_12 = 1;" (assignment_expression "*param_12 = 1" (pointer_expression "*param_12" * identifier) = number_literal) ;) (expression_statement "cVar1 = local_f1;" (assignment_expression "cVar1 = local_f1" identifier = identifier) ;) })) })) }) (else_clause "else {\n      cVar1 = local_58;\n      if (local_58 != '\0') {\n        *(int *)(puVar7 + -0xc) = param_10;\n        *(char **)(puVar7 + -0x10) = param_9;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc84;\n        FUN_00142200();\n        *(undefined1 **)(puVar7 + -0xc) = param_11;\n        *(int *)(puVar7 + -0x10) = param_8;\n        *(char **)(puVar7 + -0x14) = param_9;\n        *(int *)(puVar7 + -0x18) = param_7;\n        *(undefined4 *)(puVar7 + -0x1c) = param_5;\n        *(int *)(puVar7 + -0x20) = param_4;\n        *(int *)(puVar7 + -0x24) = param_3;\n        *(int *)(puVar7 + -0x28) = param_2;\n        *(int *)(puVar7 + -0x2c) = param_6;\n        *(undefined4 *)(puVar7 + -0x30) = param_1;\n        *(undefined4 *)(puVar7 + -0x34) = 0x16dca7;\n        FUN_00142290();\n        cVar1 = local_f1;\n      }\n    }" else (compound_statement "{\n      cVar1 = local_58;\n      if (local_58 != '\0') {\n        *(int *)(puVar7 + -0xc) = param_10;\n        *(char **)(puVar7 + -0x10) = param_9;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc84;\n        FUN_00142200();\n        *(undefined1 **)(puVar7 + -0xc) = param_11;\n        *(int *)(puVar7 + -0x10) = param_8;\n        *(char **)(puVar7 + -0x14) = param_9;\n        *(int *)(puVar7 + -0x18) = param_7;\n        *(undefined4 *)(puVar7 + -0x1c) = param_5;\n        *(int *)(puVar7 + -0x20) = param_4;\n        *(int *)(puVar7 + -0x24) = param_3;\n        *(int *)(puVar7 + -0x28) = param_2;\n        *(int *)(puVar7 + -0x2c) = param_6;\n        *(undefined4 *)(puVar7 + -0x30) = param_1;\n        *(undefined4 *)(puVar7 + -0x34) = 0x16dca7;\n        FUN_00142290();\n        cVar1 = local_f1;\n      }\n    }" { (expression_statement "cVar1 = local_58;" (assignment_expression "cVar1 = local_58" identifier = identifier) ;) (if_statement "if (local_58 != '\0') {\n        *(int *)(puVar7 + -0xc) = param_10;\n        *(char **)(puVar7 + -0x10) = param_9;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc84;\n        FUN_00142200();\n        *(undefined1 **)(puVar7 + -0xc) = param_11;\n        *(int *)(puVar7 + -0x10) = param_8;\n        *(char **)(puVar7 + -0x14) = param_9;\n        *(int *)(puVar7 + -0x18) = param_7;\n        *(undefined4 *)(puVar7 + -0x1c) = param_5;\n        *(int *)(puVar7 + -0x20) = param_4;\n        *(int *)(puVar7 + -0x24) = param_3;\n        *(int *)(puVar7 + -0x28) = param_2;\n        *(int *)(puVar7 + -0x2c) = param_6;\n        *(undefined4 *)(puVar7 + -0x30) = param_1;\n        *(undefined4 *)(puVar7 + -0x34) = 0x16dca7;\n        FUN_00142290();\n        cVar1 = local_f1;\n      }" if (parenthesized_expression "(local_58 != '\0')" ( (binary_expression "local_58 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        *(int *)(puVar7 + -0xc) = param_10;\n        *(char **)(puVar7 + -0x10) = param_9;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc84;\n        FUN_00142200();\n        *(undefined1 **)(puVar7 + -0xc) = param_11;\n        *(int *)(puVar7 + -0x10) = param_8;\n        *(char **)(puVar7 + -0x14) = param_9;\n        *(int *)(puVar7 + -0x18) = param_7;\n        *(undefined4 *)(puVar7 + -0x1c) = param_5;\n        *(int *)(puVar7 + -0x20) = param_4;\n        *(int *)(puVar7 + -0x24) = param_3;\n        *(int *)(puVar7 + -0x28) = param_2;\n        *(int *)(puVar7 + -0x2c) = param_6;\n        *(undefined4 *)(puVar7 + -0x30) = param_1;\n        *(undefined4 *)(puVar7 + -0x34) = 0x16dca7;\n        FUN_00142290();\n        cVar1 = local_f1;\n      }" { (expression_statement "*(int *)(puVar7 + -0xc) = param_10;" (assignment_expression "*(int *)(puVar7 + -0xc) = param_10" (pointer_expression "*(int *)(puVar7 + -0xc)" * (cast_expression "(int *)(puVar7 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0xc)" ( (binary_expression "puVar7 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(puVar7 + -0x10) = param_9;" (assignment_expression "*(char **)(puVar7 + -0x10) = param_9" (pointer_expression "*(char **)(puVar7 + -0x10)" * (cast_expression "(char **)(puVar7 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + -0x10)" ( (binary_expression "puVar7 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16dc84;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16dc84" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" * (cast_expression "(undefined4 *)(puVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x14)" ( (binary_expression "puVar7 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00142200();" (call_expression "FUN_00142200()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined1 **)(puVar7 + -0xc) = param_11;" (assignment_expression "*(undefined1 **)(puVar7 + -0xc) = param_11" (pointer_expression "*(undefined1 **)(puVar7 + -0xc)" * (cast_expression "(undefined1 **)(puVar7 + -0xc)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + -0xc)" ( (binary_expression "puVar7 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar7 + -0x10) = param_8;" (assignment_expression "*(int *)(puVar7 + -0x10) = param_8" (pointer_expression "*(int *)(puVar7 + -0x10)" * (cast_expression "(int *)(puVar7 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x10)" ( (binary_expression "puVar7 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(puVar7 + -0x14) = param_9;" (assignment_expression "*(char **)(puVar7 + -0x14) = param_9" (pointer_expression "*(char **)(puVar7 + -0x14)" * (cast_expression "(char **)(puVar7 + -0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + -0x14)" ( (binary_expression "puVar7 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar7 + -0x18) = param_7;" (assignment_expression "*(int *)(puVar7 + -0x18) = param_7" (pointer_expression "*(int *)(puVar7 + -0x18)" * (cast_expression "(int *)(puVar7 + -0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x18)" ( (binary_expression "puVar7 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x1c) = param_5;" (assignment_expression "*(undefined4 *)(puVar7 + -0x1c) = param_5" (pointer_expression "*(undefined4 *)(puVar7 + -0x1c)" * (cast_expression "(undefined4 *)(puVar7 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x1c)" ( (binary_expression "puVar7 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar7 + -0x20) = param_4;" (assignment_expression "*(int *)(puVar7 + -0x20) = param_4" (pointer_expression "*(int *)(puVar7 + -0x20)" * (cast_expression "(int *)(puVar7 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x20)" ( (binary_expression "puVar7 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar7 + -0x24) = param_3;" (assignment_expression "*(int *)(puVar7 + -0x24) = param_3" (pointer_expression "*(int *)(puVar7 + -0x24)" * (cast_expression "(int *)(puVar7 + -0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x24)" ( (binary_expression "puVar7 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar7 + -0x28) = param_2;" (assignment_expression "*(int *)(puVar7 + -0x28) = param_2" (pointer_expression "*(int *)(puVar7 + -0x28)" * (cast_expression "(int *)(puVar7 + -0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x28)" ( (binary_expression "puVar7 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar7 + -0x2c) = param_6;" (assignment_expression "*(int *)(puVar7 + -0x2c) = param_6" (pointer_expression "*(int *)(puVar7 + -0x2c)" * (cast_expression "(int *)(puVar7 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x2c)" ( (binary_expression "puVar7 + -0x2c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x30) = param_1;" (assignment_expression "*(undefined4 *)(puVar7 + -0x30) = param_1" (pointer_expression "*(undefined4 *)(puVar7 + -0x30)" * (cast_expression "(undefined4 *)(puVar7 + -0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x30)" ( (binary_expression "puVar7 + -0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x34) = 0x16dca7;" (assignment_expression "*(undefined4 *)(puVar7 + -0x34) = 0x16dca7" (pointer_expression "*(undefined4 *)(puVar7 + -0x34)" * (cast_expression "(undefined4 *)(puVar7 + -0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x34)" ( (binary_expression "puVar7 + -0x34" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00142290();" (call_expression "FUN_00142290()" identifier (argument_list "()" ( ))) ;) (expression_statement "cVar1 = local_f1;" (assignment_expression "cVar1 = local_f1" identifier = identifier) ;) })) }))) (if_statement "if (local_3c[3] != 0) {\n      *(int *)(puVar7 + -0x10) = local_3c[3];\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da23;\n      FUN_001e6db0();\n    }" if (parenthesized_expression "(local_3c[3] != 0)" ( (binary_expression "local_3c[3] != 0" (subscript_expression "local_3c[3]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      *(int *)(puVar7 + -0x10) = local_3c[3];\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da23;\n      FUN_001e6db0();\n    }" { (expression_statement "*(int *)(puVar7 + -0x10) = local_3c[3];" (assignment_expression "*(int *)(puVar7 + -0x10) = local_3c[3]" (pointer_expression "*(int *)(puVar7 + -0x10)" * (cast_expression "(int *)(puVar7 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x10)" ( (binary_expression "puVar7 + -0x10" identifier + number_literal) )))) = (subscript_expression "local_3c[3]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16da23;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16da23" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" * (cast_expression "(undefined4 *)(puVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x14)" ( (binary_expression "puVar7 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (local_3c[0] != 0) {\n      *(int *)(puVar7 + -0x10) = local_3c[0];\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da3c;\n      FUN_001e6db0();\n    }" if (parenthesized_expression "(local_3c[0] != 0)" ( (binary_expression "local_3c[0] != 0" (subscript_expression "local_3c[0]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      *(int *)(puVar7 + -0x10) = local_3c[0];\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da3c;\n      FUN_001e6db0();\n    }" { (expression_statement "*(int *)(puVar7 + -0x10) = local_3c[0];" (assignment_expression "*(int *)(puVar7 + -0x10) = local_3c[0]" (pointer_expression "*(int *)(puVar7 + -0x10)" * (cast_expression "(int *)(puVar7 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x10)" ( (binary_expression "puVar7 + -0x10" identifier + number_literal) )))) = (subscript_expression "local_3c[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16da3c;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16da3c" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" * (cast_expression "(undefined4 *)(puVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x14)" ( (binary_expression "puVar7 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (local_bc != local_f0) {\n      *(undefined1 **)(puVar7 + -0x10) = local_bc;\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da5c;\n      FUN_001e6db0();\n    }" if (parenthesized_expression "(local_bc != local_f0)" ( (binary_expression "local_bc != local_f0" identifier != identifier) )) (compound_statement "{\n      *(undefined1 **)(puVar7 + -0x10) = local_bc;\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da5c;\n      FUN_001e6db0();\n    }" { (expression_statement "*(undefined1 **)(puVar7 + -0x10) = local_bc;" (assignment_expression "*(undefined1 **)(puVar7 + -0x10) = local_bc" (pointer_expression "*(undefined1 **)(puVar7 + -0x10)" * (cast_expression "(undefined1 **)(puVar7 + -0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + -0x10)" ( (binary_expression "puVar7 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16da5c;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16da5c" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" * (cast_expression "(undefined4 *)(puVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x14)" ( (binary_expression "puVar7 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return cVar1;" return identifier ;) })) (expression_statement "*(uint *)(puVar7 + -4) = (uint)local_5a;" (assignment_expression "*(uint *)(puVar7 + -4) = (uint)local_5a" (pointer_expression "*(uint *)(puVar7 + -4)" * (cast_expression "(uint *)(puVar7 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -4)" ( (binary_expression "puVar7 + -4" identifier + number_literal) )))) = (cast_expression "(uint)local_5a" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(undefined ***)(puVar7 + -8) = local_d8 + -0x3d7a0;" (assignment_expression "*(undefined ***)(puVar7 + -8) = local_d8 + -0x3d7a0" (pointer_expression "*(undefined ***)(puVar7 + -8)" * (cast_expression "(undefined ***)(puVar7 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar7 + -8)" ( (binary_expression "puVar7 + -8" identifier + number_literal) )))) = (binary_expression "local_d8 + -0x3d7a0" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar7 + -0xc) = 0x828;" (assignment_expression "*(undefined4 *)(puVar7 + -0xc) = 0x828" (pointer_expression "*(undefined4 *)(puVar7 + -0xc)" * (cast_expression "(undefined4 *)(puVar7 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0xc)" ( (binary_expression "puVar7 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar7 + -0x10) = (int)local_d8 + -0x106ebb;" (assignment_expression "*(int *)(puVar7 + -0x10) = (int)local_d8 + -0x106ebb" (pointer_expression "*(int *)(puVar7 + -0x10)" * (cast_expression "(int *)(puVar7 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x10)" ( (binary_expression "puVar7 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_d8 + -0x106ebb" (cast_expression "(int)local_d8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16dcce;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16dcce" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" * (cast_expression "(undefined4 *)(puVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x14)" ( (binary_expression "puVar7 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00069d00();" (call_expression "FUN_00069d00()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) , LIT , (binary_expression IDENT + LIT) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , LIT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , 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 = (binary_expression IDENT != LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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 = (char_literal ' escape_sequence ')) ;) (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 = LIT) ;) (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_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 (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) != (char_literal ' escape_sequence ')) ))) )) && (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) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (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 = IDENT) ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (return_statement return IDENT ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "char FUN_0016d740(undefined4 param_1,int param_2,int param_3,int param_4,undefined4 param_5,\n                 int param_6,int param_7,int param_8,char *param_9,int param_10,undefined1 *param_11\n                 ,undefined1 *param_12)\n\n{\n  char cVar1;\n  undefined4 uVar2;\n  int *piVar3;\n  int iVar4;\n  undefined1 *puVar5;\n  undefined4 uVar6;\n  undefined1 *puVar7;\n  undefined1 auStack_100 [4];\n  undefined1 auStack_fc [4];\n  undefined4 *local_f8;\n  char local_f1;\n  undefined1 *local_f0;\n  undefined **local_ec;\n  int local_e8;\n  undefined1 *local_e4;\n  undefined4 local_e0;\n  int local_dc;\n  undefined **local_d8;\n  undefined1 *local_d4;\n  undefined4 local_d0;\n  undefined4 local_c0;\n  undefined1 *local_bc;\n  undefined4 local_b8;\n  undefined1 local_b4 [16];\n  undefined1 *local_a4;\n  undefined4 local_a0;\n  undefined1 *local_9c;\n  undefined4 local_98;\n  undefined4 local_94;\n  undefined4 local_90;\n  undefined4 local_8c;\n  undefined4 local_88;\n  undefined4 local_84;\n  undefined4 local_80;\n  undefined4 local_7c;\n  undefined4 local_78;\n  undefined1 *local_74;\n  undefined4 local_70;\n  undefined4 local_6c;\n  undefined4 local_68;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined1 local_5c;\n  undefined1 local_5b;\n  byte local_5a;\n  undefined1 local_59;\n  char local_58;\n  undefined4 local_54;\n  int local_50;\n  int local_4c;\n  undefined1 **local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  int local_3c [6];\n  int *local_24;\n  int *local_20;\n  undefined4 uStack_14;\n  \n  local_f0 = local_b4;\n  uStack_14 = 0x16d751;\n  local_d8 = &__DT_PLTGOT;\n  *param_12 = 0;\n  local_b8 = 0;\n  local_b4[0] = 0;\n  local_bc = local_f0;\n                    \n  FUN_00168e00(param_10,&local_bc);\n  puVar7 = auStack_fc;\n  local_98 = 0;\n  local_94 = 0x163;\n  local_a4 = local_bc;\n  local_9c = local_bc;\n  local_74 = local_bc;\n  local_a0 = local_b8;\n  piVar3 = *(int **)(param_3 + 0x1d0);\n  local_90 = 0;\n  local_8c = 0;\n  local_88 = 0;\n  local_84 = 0;\n  local_80 = 0;\n  local_7c = 0;\n  local_78 = 1;\n  if (piVar3 != (int *)0x0) {\n    FUN_00067c30(&local_d4,param_10 + 0x1c);\n    local_e4 = local_d4;\n    local_e0 = local_d0;\n    if (*param_9 == '\0') {\n                    \n      FUN_00069d00((int)local_d8 + -0x106ebb,0x828,local_d8 + -0x3d7a0,local_d4);\n    }\n    local_dc = *(int *)(param_9 + 0x4c);\n    piVar3 = (int *)FUN_001e5200(0x20);\n    *piVar3 = (int)(piVar3 + 2);\n                    \n    FUN_000513a0(piVar3,*(int *)(param_10 + 0x1c),\n                 *(int *)(param_10 + 0x20) + *(int *)(param_10 + 0x1c),0);\n    piVar3[6] = 0;\n    piVar3[7] = 0;\n                    \n    FUN_00072240(*(undefined4 *)(param_3 + 0x1d0),piVar3,local_dc,local_e4,local_e0);\n    puVar7 = auStack_100;\n  }\n  *(int *)(puVar7 + -0x10) = param_10;\n  *(undefined4 *)(puVar7 + -0x14) = 0x16d8d7;\n  local_59 = FUN_00067bf0();\n  local_dc = CONCAT31(local_dc._1_3_,local_59);\n  local_50 = *(int *)(param_3 + 4);\n  local_5b = param_8 != 0;\n  local_5a = *(byte *)(param_10 + 0x8c);\n  local_f1 = *param_9;\n  if (local_f1 != '\0') {\n    local_4c = local_50 + 0x68;\n    local_70 = *(undefined4 *)(param_10 + 0x1c);\n    local_5c = 0;\n    local_6c = *(undefined4 *)(param_9 + 0x3c);\n    local_58 = '\0';\n    local_68 = *(undefined4 *)(param_9 + 0x40);\n    local_54 = 0;\n    local_64 = *(undefined4 *)(param_9 + 0x44);\n    local_60 = *(undefined4 *)(param_9 + 0x48);\n    local_44 = 0;\n    local_40 = 0;\n    local_48 = &local_a4;\n    local_3c[0] = 0;\n    local_3c[1] = 0;\n    local_3c[2] = 0;\n    local_3c[3] = 0;\n    local_3c[4] = 0;\n    local_3c[5] = 0;\n    local_24 = (int *)0x0;\n    local_c0 = 0;\n    *(undefined4 **)(puVar7 + -8) = &local_c0;\n    *(undefined4 *)(puVar7 + -0xc) = 0;\n    *(int **)(puVar7 + -0x10) = local_3c + 3;\n                    \n    *(undefined4 *)(puVar7 + -0x14) = 0x16d9bc;\n    local_20 = piVar3;\n    FUN_0016f460();\n    *(undefined4 **)(puVar7 + -0xc) = &local_c0;\n    local_c0 = local_98;\n    *(int **)(puVar7 + -0x10) = local_3c;\n    *(undefined4 *)(puVar7 + -0x14) = 0x16d9d4;\n    FUN_0016f700();\n    cVar1 = *(char *)(*(int *)(param_3 + 4) + 0xac);\n    local_f8 = &local_70;\n    *(undefined4 **)(puVar7 + -0x10) = local_f8;\n                    \n    *(undefined4 *)(puVar7 + -0x14) = 0x16d9f8;\n    iVar4 = FUN_00191d40();\n    if (iVar4 == 0) {\n      if (((cVar1 == '\0') && (*(char *)(*(int *)(param_3 + 4) + 0xac) != '\0')) &&\n         (*(char *)(param_3 + 0x1c4) != '\0')) {\n        uVar2 = *(undefined4 *)(param_10 + 0x1c);\n        *(undefined ***)(puVar7 + -0x10) = local_d8 + -0x3d6c8;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc5d;\n        uVar6 = gettext();\n        *(undefined4 *)(puVar7 + -0xc) = uVar2;\n        *(undefined4 *)(puVar7 + -0x10) = uVar6;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc66;\n        FUN_000654b0();\n      }\n      cVar1 = local_f1;\n      if (local_24 != (int *)0x0) {\n        local_e4 = (undefined1 *)0x0;\n        iVar4 = local_24[1];\n        local_dc = *local_24;\n        if (iVar4 != local_dc) {\n          local_ec = local_d8 + -0x289c;\n          do {\n            local_e8 = local_dc + 0x5c;\n            puVar5 = param_11;\n            if (local_e8 != iVar4) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;\n              puVar5 = (undefined1 *)FUN_001e5200();\n              *puVar5 = 1;\n              *(undefined4 *)(puVar5 + 8) = 0;\n              *(undefined4 *)(puVar5 + 0xc) = 0;\n              *(undefined4 *)(puVar5 + 0x10) = 0;\n              *(undefined4 *)(puVar5 + 4) = 1;\n            }\n            *(undefined4 *)(puVar7 + -0x10) = 0x50;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16db2d;\n            piVar3 = (int *)FUN_001e5200();\n            piVar3[1] = 0;\n            piVar3[2] = (int)(piVar3 + 4);\n            piVar3[3] = 0;\n            *piVar3 = (int)local_ec;\n            piVar3[0xc] = param_4;\n            piVar3[9] = param_6;\n            piVar3[0xe] = param_7;\n            piVar3[10] = param_2;\n            piVar3[0x12] = (int)local_e4;\n            piVar3[0xb] = param_3;\n            *(undefined1 *)(piVar3 + 4) = 0;\n            *(undefined1 *)(piVar3 + 8) = 0;\n            piVar3[0xd] = 0;\n            piVar3[0xf] = local_dc;\n            piVar3[0x10] = param_8;\n            piVar3[0x11] = 0;\n            piVar3[0x13] = (int)puVar5;\n            *(int **)(puVar7 + -0xc) = piVar3;\n            *(undefined4 *)(puVar7 + -0x10) = param_1;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16dba5;\n            FUN_001906c0();\n            if (local_24 == (int *)0x0) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;\n              local_24 = (int *)FUN_001e5200();\n              *local_24 = 0;\n              local_24[1] = 0;\n              local_24[2] = 0;\n              *(undefined2 *)(local_24 + 3) = 0;\n              local_24[4] = 0;\n              iVar4 = 0;\n            }\n            else {\n              iVar4 = local_24[1];\n            }\n            local_dc = local_e8;\n            local_e4 = puVar5;\n          } while (local_e8 != iVar4);\n          *param_12 = 1;\n          cVar1 = local_f1;\n        }\n      }\n    }\n    else {\n      cVar1 = local_58;\n      if (local_58 != '\0') {\n        *(int *)(puVar7 + -0xc) = param_10;\n        *(char **)(puVar7 + -0x10) = param_9;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc84;\n        FUN_00142200();\n        *(undefined1 **)(puVar7 + -0xc) = param_11;\n        *(int *)(puVar7 + -0x10) = param_8;\n        *(char **)(puVar7 + -0x14) = param_9;\n        *(int *)(puVar7 + -0x18) = param_7;\n        *(undefined4 *)(puVar7 + -0x1c) = param_5;\n        *(int *)(puVar7 + -0x20) = param_4;\n        *(int *)(puVar7 + -0x24) = param_3;\n        *(int *)(puVar7 + -0x28) = param_2;\n        *(int *)(puVar7 + -0x2c) = param_6;\n        *(undefined4 *)(puVar7 + -0x30) = param_1;\n        *(undefined4 *)(puVar7 + -0x34) = 0x16dca7;\n        FUN_00142290();\n        cVar1 = local_f1;\n      }\n    }\n    if (local_3c[3] != 0) {\n      *(int *)(puVar7 + -0x10) = local_3c[3];\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da23;\n      FUN_001e6db0();\n    }\n    if (local_3c[0] != 0) {\n      *(int *)(puVar7 + -0x10) = local_3c[0];\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da3c;\n      FUN_001e6db0();\n    }\n    if (local_bc != local_f0) {\n      *(undefined1 **)(puVar7 + -0x10) = local_bc;\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da5c;\n      FUN_001e6db0();\n    }\n    return cVar1;\n  }\n  *(uint *)(puVar7 + -4) = (uint)local_5a;\n  *(undefined ***)(puVar7 + -8) = local_d8 + -0x3d7a0;\n  *(undefined4 *)(puVar7 + -0xc) = 0x828;\n  *(int *)(puVar7 + -0x10) = (int)local_d8 + -0x106ebb;\n                    \n                    \n  *(undefined4 *)(puVar7 + -0x14) = 0x16dcce;\n  FUN_00069d00();\n}" (primitive_type "char") (function_declarator "FUN_0016d740(undefined4 param_1,int param_2,int param_3,int param_4,undefined4 param_5,\n                 int param_6,int param_7,int param_8,char *param_9,int param_10,undefined1 *param_11\n                 ,undefined1 *param_12)" (identifier "FUN_0016d740") (parameter_list "(undefined4 param_1,int param_2,int param_3,int param_4,undefined4 param_5,\n                 int param_6,int param_7,int param_8,char *param_9,int param_10,undefined1 *param_11\n                 ,undefined1 *param_12)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) (, ",") (parameter_declaration "undefined4 param_5" (type_identifier "undefined4") (identifier "param_5")) (, ",") (parameter_declaration "int param_6" (primitive_type "int") (identifier "param_6")) (, ",") (parameter_declaration "int param_7" (primitive_type "int") (identifier "param_7")) (, ",") (parameter_declaration "int param_8" (primitive_type "int") (identifier "param_8")) (, ",") (parameter_declaration "char *param_9" (primitive_type "char") (pointer_declarator "*param_9" (* "*") (identifier "param_9"))) (, ",") (parameter_declaration "int param_10" (primitive_type "int") (identifier "param_10")) (, ",") (parameter_declaration "undefined1 *param_11" (type_identifier "undefined1") (pointer_declarator "*param_11" (* "*") (identifier "param_11"))) (, ",") (parameter_declaration "undefined1 *param_12" (type_identifier "undefined1") (pointer_declarator "*param_12" (* "*") (identifier "param_12"))) () ")"))) (compound_statement "{\n  char cVar1;\n  undefined4 uVar2;\n  int *piVar3;\n  int iVar4;\n  undefined1 *puVar5;\n  undefined4 uVar6;\n  undefined1 *puVar7;\n  undefined1 auStack_100 [4];\n  undefined1 auStack_fc [4];\n  undefined4 *local_f8;\n  char local_f1;\n  undefined1 *local_f0;\n  undefined **local_ec;\n  int local_e8;\n  undefined1 *local_e4;\n  undefined4 local_e0;\n  int local_dc;\n  undefined **local_d8;\n  undefined1 *local_d4;\n  undefined4 local_d0;\n  undefined4 local_c0;\n  undefined1 *local_bc;\n  undefined4 local_b8;\n  undefined1 local_b4 [16];\n  undefined1 *local_a4;\n  undefined4 local_a0;\n  undefined1 *local_9c;\n  undefined4 local_98;\n  undefined4 local_94;\n  undefined4 local_90;\n  undefined4 local_8c;\n  undefined4 local_88;\n  undefined4 local_84;\n  undefined4 local_80;\n  undefined4 local_7c;\n  undefined4 local_78;\n  undefined1 *local_74;\n  undefined4 local_70;\n  undefined4 local_6c;\n  undefined4 local_68;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined1 local_5c;\n  undefined1 local_5b;\n  byte local_5a;\n  undefined1 local_59;\n  char local_58;\n  undefined4 local_54;\n  int local_50;\n  int local_4c;\n  undefined1 **local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  int local_3c [6];\n  int *local_24;\n  int *local_20;\n  undefined4 uStack_14;\n  \n  local_f0 = local_b4;\n  uStack_14 = 0x16d751;\n  local_d8 = &__DT_PLTGOT;\n  *param_12 = 0;\n  local_b8 = 0;\n  local_b4[0] = 0;\n  local_bc = local_f0;\n                    \n  FUN_00168e00(param_10,&local_bc);\n  puVar7 = auStack_fc;\n  local_98 = 0;\n  local_94 = 0x163;\n  local_a4 = local_bc;\n  local_9c = local_bc;\n  local_74 = local_bc;\n  local_a0 = local_b8;\n  piVar3 = *(int **)(param_3 + 0x1d0);\n  local_90 = 0;\n  local_8c = 0;\n  local_88 = 0;\n  local_84 = 0;\n  local_80 = 0;\n  local_7c = 0;\n  local_78 = 1;\n  if (piVar3 != (int *)0x0) {\n    FUN_00067c30(&local_d4,param_10 + 0x1c);\n    local_e4 = local_d4;\n    local_e0 = local_d0;\n    if (*param_9 == '\0') {\n                    \n      FUN_00069d00((int)local_d8 + -0x106ebb,0x828,local_d8 + -0x3d7a0,local_d4);\n    }\n    local_dc = *(int *)(param_9 + 0x4c);\n    piVar3 = (int *)FUN_001e5200(0x20);\n    *piVar3 = (int)(piVar3 + 2);\n                    \n    FUN_000513a0(piVar3,*(int *)(param_10 + 0x1c),\n                 *(int *)(param_10 + 0x20) + *(int *)(param_10 + 0x1c),0);\n    piVar3[6] = 0;\n    piVar3[7] = 0;\n                    \n    FUN_00072240(*(undefined4 *)(param_3 + 0x1d0),piVar3,local_dc,local_e4,local_e0);\n    puVar7 = auStack_100;\n  }\n  *(int *)(puVar7 + -0x10) = param_10;\n  *(undefined4 *)(puVar7 + -0x14) = 0x16d8d7;\n  local_59 = FUN_00067bf0();\n  local_dc = CONCAT31(local_dc._1_3_,local_59);\n  local_50 = *(int *)(param_3 + 4);\n  local_5b = param_8 != 0;\n  local_5a = *(byte *)(param_10 + 0x8c);\n  local_f1 = *param_9;\n  if (local_f1 != '\0') {\n    local_4c = local_50 + 0x68;\n    local_70 = *(undefined4 *)(param_10 + 0x1c);\n    local_5c = 0;\n    local_6c = *(undefined4 *)(param_9 + 0x3c);\n    local_58 = '\0';\n    local_68 = *(undefined4 *)(param_9 + 0x40);\n    local_54 = 0;\n    local_64 = *(undefined4 *)(param_9 + 0x44);\n    local_60 = *(undefined4 *)(param_9 + 0x48);\n    local_44 = 0;\n    local_40 = 0;\n    local_48 = &local_a4;\n    local_3c[0] = 0;\n    local_3c[1] = 0;\n    local_3c[2] = 0;\n    local_3c[3] = 0;\n    local_3c[4] = 0;\n    local_3c[5] = 0;\n    local_24 = (int *)0x0;\n    local_c0 = 0;\n    *(undefined4 **)(puVar7 + -8) = &local_c0;\n    *(undefined4 *)(puVar7 + -0xc) = 0;\n    *(int **)(puVar7 + -0x10) = local_3c + 3;\n                    \n    *(undefined4 *)(puVar7 + -0x14) = 0x16d9bc;\n    local_20 = piVar3;\n    FUN_0016f460();\n    *(undefined4 **)(puVar7 + -0xc) = &local_c0;\n    local_c0 = local_98;\n    *(int **)(puVar7 + -0x10) = local_3c;\n    *(undefined4 *)(puVar7 + -0x14) = 0x16d9d4;\n    FUN_0016f700();\n    cVar1 = *(char *)(*(int *)(param_3 + 4) + 0xac);\n    local_f8 = &local_70;\n    *(undefined4 **)(puVar7 + -0x10) = local_f8;\n                    \n    *(undefined4 *)(puVar7 + -0x14) = 0x16d9f8;\n    iVar4 = FUN_00191d40();\n    if (iVar4 == 0) {\n      if (((cVar1 == '\0') && (*(char *)(*(int *)(param_3 + 4) + 0xac) != '\0')) &&\n         (*(char *)(param_3 + 0x1c4) != '\0')) {\n        uVar2 = *(undefined4 *)(param_10 + 0x1c);\n        *(undefined ***)(puVar7 + -0x10) = local_d8 + -0x3d6c8;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc5d;\n        uVar6 = gettext();\n        *(undefined4 *)(puVar7 + -0xc) = uVar2;\n        *(undefined4 *)(puVar7 + -0x10) = uVar6;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc66;\n        FUN_000654b0();\n      }\n      cVar1 = local_f1;\n      if (local_24 != (int *)0x0) {\n        local_e4 = (undefined1 *)0x0;\n        iVar4 = local_24[1];\n        local_dc = *local_24;\n        if (iVar4 != local_dc) {\n          local_ec = local_d8 + -0x289c;\n          do {\n            local_e8 = local_dc + 0x5c;\n            puVar5 = param_11;\n            if (local_e8 != iVar4) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;\n              puVar5 = (undefined1 *)FUN_001e5200();\n              *puVar5 = 1;\n              *(undefined4 *)(puVar5 + 8) = 0;\n              *(undefined4 *)(puVar5 + 0xc) = 0;\n              *(undefined4 *)(puVar5 + 0x10) = 0;\n              *(undefined4 *)(puVar5 + 4) = 1;\n            }\n            *(undefined4 *)(puVar7 + -0x10) = 0x50;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16db2d;\n            piVar3 = (int *)FUN_001e5200();\n            piVar3[1] = 0;\n            piVar3[2] = (int)(piVar3 + 4);\n            piVar3[3] = 0;\n            *piVar3 = (int)local_ec;\n            piVar3[0xc] = param_4;\n            piVar3[9] = param_6;\n            piVar3[0xe] = param_7;\n            piVar3[10] = param_2;\n            piVar3[0x12] = (int)local_e4;\n            piVar3[0xb] = param_3;\n            *(undefined1 *)(piVar3 + 4) = 0;\n            *(undefined1 *)(piVar3 + 8) = 0;\n            piVar3[0xd] = 0;\n            piVar3[0xf] = local_dc;\n            piVar3[0x10] = param_8;\n            piVar3[0x11] = 0;\n            piVar3[0x13] = (int)puVar5;\n            *(int **)(puVar7 + -0xc) = piVar3;\n            *(undefined4 *)(puVar7 + -0x10) = param_1;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16dba5;\n            FUN_001906c0();\n            if (local_24 == (int *)0x0) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;\n              local_24 = (int *)FUN_001e5200();\n              *local_24 = 0;\n              local_24[1] = 0;\n              local_24[2] = 0;\n              *(undefined2 *)(local_24 + 3) = 0;\n              local_24[4] = 0;\n              iVar4 = 0;\n            }\n            else {\n              iVar4 = local_24[1];\n            }\n            local_dc = local_e8;\n            local_e4 = puVar5;\n          } while (local_e8 != iVar4);\n          *param_12 = 1;\n          cVar1 = local_f1;\n        }\n      }\n    }\n    else {\n      cVar1 = local_58;\n      if (local_58 != '\0') {\n        *(int *)(puVar7 + -0xc) = param_10;\n        *(char **)(puVar7 + -0x10) = param_9;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc84;\n        FUN_00142200();\n        *(undefined1 **)(puVar7 + -0xc) = param_11;\n        *(int *)(puVar7 + -0x10) = param_8;\n        *(char **)(puVar7 + -0x14) = param_9;\n        *(int *)(puVar7 + -0x18) = param_7;\n        *(undefined4 *)(puVar7 + -0x1c) = param_5;\n        *(int *)(puVar7 + -0x20) = param_4;\n        *(int *)(puVar7 + -0x24) = param_3;\n        *(int *)(puVar7 + -0x28) = param_2;\n        *(int *)(puVar7 + -0x2c) = param_6;\n        *(undefined4 *)(puVar7 + -0x30) = param_1;\n        *(undefined4 *)(puVar7 + -0x34) = 0x16dca7;\n        FUN_00142290();\n        cVar1 = local_f1;\n      }\n    }\n    if (local_3c[3] != 0) {\n      *(int *)(puVar7 + -0x10) = local_3c[3];\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da23;\n      FUN_001e6db0();\n    }\n    if (local_3c[0] != 0) {\n      *(int *)(puVar7 + -0x10) = local_3c[0];\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da3c;\n      FUN_001e6db0();\n    }\n    if (local_bc != local_f0) {\n      *(undefined1 **)(puVar7 + -0x10) = local_bc;\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da5c;\n      FUN_001e6db0();\n    }\n    return cVar1;\n  }\n  *(uint *)(puVar7 + -4) = (uint)local_5a;\n  *(undefined ***)(puVar7 + -8) = local_d8 + -0x3d7a0;\n  *(undefined4 *)(puVar7 + -0xc) = 0x828;\n  *(int *)(puVar7 + -0x10) = (int)local_d8 + -0x106ebb;\n                    \n                    \n  *(undefined4 *)(puVar7 + -0x14) = 0x16dcce;\n  FUN_00069d00();\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "undefined1 *puVar5;" (type_identifier "undefined1") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "undefined1 *puVar7;" (type_identifier "undefined1") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "undefined1 auStack_100 [4];" (type_identifier "undefined1") (array_declarator "auStack_100 [4]" (identifier "auStack_100") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined1 auStack_fc [4];" (type_identifier "undefined1") (array_declarator "auStack_fc [4]" (identifier "auStack_fc") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined4 *local_f8;" (type_identifier "undefined4") (pointer_declarator "*local_f8" (* "*") (identifier "local_f8")) (; ";")) (declaration "char local_f1;" (primitive_type "char") (identifier "local_f1") (; ";")) (declaration "undefined1 *local_f0;" (type_identifier "undefined1") (pointer_declarator "*local_f0" (* "*") (identifier "local_f0")) (; ";")) (declaration "undefined **local_ec;" (type_identifier "undefined") (pointer_declarator "**local_ec" (* "*") (pointer_declarator "*local_ec" (* "*") (identifier "local_ec"))) (; ";")) (declaration "int local_e8;" (primitive_type "int") (identifier "local_e8") (; ";")) (declaration "undefined1 *local_e4;" (type_identifier "undefined1") (pointer_declarator "*local_e4" (* "*") (identifier "local_e4")) (; ";")) (declaration "undefined4 local_e0;" (type_identifier "undefined4") (identifier "local_e0") (; ";")) (declaration "int local_dc;" (primitive_type "int") (identifier "local_dc") (; ";")) (declaration "undefined **local_d8;" (type_identifier "undefined") (pointer_declarator "**local_d8" (* "*") (pointer_declarator "*local_d8" (* "*") (identifier "local_d8"))) (; ";")) (declaration "undefined1 *local_d4;" (type_identifier "undefined1") (pointer_declarator "*local_d4" (* "*") (identifier "local_d4")) (; ";")) (declaration "undefined4 local_d0;" (type_identifier "undefined4") (identifier "local_d0") (; ";")) (declaration "undefined4 local_c0;" (type_identifier "undefined4") (identifier "local_c0") (; ";")) (declaration "undefined1 *local_bc;" (type_identifier "undefined1") (pointer_declarator "*local_bc" (* "*") (identifier "local_bc")) (; ";")) (declaration "undefined4 local_b8;" (type_identifier "undefined4") (identifier "local_b8") (; ";")) (declaration "undefined1 local_b4 [16];" (type_identifier "undefined1") (array_declarator "local_b4 [16]" (identifier "local_b4") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "undefined1 *local_a4;" (type_identifier "undefined1") (pointer_declarator "*local_a4" (* "*") (identifier "local_a4")) (; ";")) (declaration "undefined4 local_a0;" (type_identifier "undefined4") (identifier "local_a0") (; ";")) (declaration "undefined1 *local_9c;" (type_identifier "undefined1") (pointer_declarator "*local_9c" (* "*") (identifier "local_9c")) (; ";")) (declaration "undefined4 local_98;" (type_identifier "undefined4") (identifier "local_98") (; ";")) (declaration "undefined4 local_94;" (type_identifier "undefined4") (identifier "local_94") (; ";")) (declaration "undefined4 local_90;" (type_identifier "undefined4") (identifier "local_90") (; ";")) (declaration "undefined4 local_8c;" (type_identifier "undefined4") (identifier "local_8c") (; ";")) (declaration "undefined4 local_88;" (type_identifier "undefined4") (identifier "local_88") (; ";")) (declaration "undefined4 local_84;" (type_identifier "undefined4") (identifier "local_84") (; ";")) (declaration "undefined4 local_80;" (type_identifier "undefined4") (identifier "local_80") (; ";")) (declaration "undefined4 local_7c;" (type_identifier "undefined4") (identifier "local_7c") (; ";")) (declaration "undefined4 local_78;" (type_identifier "undefined4") (identifier "local_78") (; ";")) (declaration "undefined1 *local_74;" (type_identifier "undefined1") (pointer_declarator "*local_74" (* "*") (identifier "local_74")) (; ";")) (declaration "undefined4 local_70;" (type_identifier "undefined4") (identifier "local_70") (; ";")) (declaration "undefined4 local_6c;" (type_identifier "undefined4") (identifier "local_6c") (; ";")) (declaration "undefined4 local_68;" (type_identifier "undefined4") (identifier "local_68") (; ";")) (declaration "undefined4 local_64;" (type_identifier "undefined4") (identifier "local_64") (; ";")) (declaration "undefined4 local_60;" (type_identifier "undefined4") (identifier "local_60") (; ";")) (declaration "undefined1 local_5c;" (type_identifier "undefined1") (identifier "local_5c") (; ";")) (declaration "undefined1 local_5b;" (type_identifier "undefined1") (identifier "local_5b") (; ";")) (declaration "byte local_5a;" (type_identifier "byte") (identifier "local_5a") (; ";")) (declaration "undefined1 local_59;" (type_identifier "undefined1") (identifier "local_59") (; ";")) (declaration "char local_58;" (primitive_type "char") (identifier "local_58") (; ";")) (declaration "undefined4 local_54;" (type_identifier "undefined4") (identifier "local_54") (; ";")) (declaration "int local_50;" (primitive_type "int") (identifier "local_50") (; ";")) (declaration "int local_4c;" (primitive_type "int") (identifier "local_4c") (; ";")) (declaration "undefined1 **local_48;" (type_identifier "undefined1") (pointer_declarator "**local_48" (* "*") (pointer_declarator "*local_48" (* "*") (identifier "local_48"))) (; ";")) (declaration "undefined4 local_44;" (type_identifier "undefined4") (identifier "local_44") (; ";")) (declaration "undefined4 local_40;" (type_identifier "undefined4") (identifier "local_40") (; ";")) (declaration "int local_3c [6];" (primitive_type "int") (array_declarator "local_3c [6]" (identifier "local_3c") ([ "[") (number_literal "6") (] "]")) (; ";")) (declaration "int *local_24;" (primitive_type "int") (pointer_declarator "*local_24" (* "*") (identifier "local_24")) (; ";")) (declaration "int *local_20;" (primitive_type "int") (pointer_declarator "*local_20" (* "*") (identifier "local_20")) (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "local_f0 = local_b4;" (assignment_expression "local_f0 = local_b4" (identifier "local_f0") (= "=") (identifier "local_b4")) (; ";")) (expression_statement "uStack_14 = 0x16d751;" (assignment_expression "uStack_14 = 0x16d751" (identifier "uStack_14") (= "=") (number_literal "0x16d751")) (; ";")) (expression_statement "local_d8 = &__DT_PLTGOT;" (assignment_expression "local_d8 = &__DT_PLTGOT" (identifier "local_d8") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (expression_statement "*param_12 = 0;" (assignment_expression "*param_12 = 0" (pointer_expression "*param_12" (* "*") (identifier "param_12")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" (identifier "local_b8") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_b4[0] = 0;" (assignment_expression "local_b4[0] = 0" (subscript_expression "local_b4[0]" (identifier "local_b4") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_bc = local_f0;" (assignment_expression "local_bc = local_f0" (identifier "local_bc") (= "=") (identifier "local_f0")) (; ";")) (expression_statement "FUN_00168e00(param_10,&local_bc);" (call_expression "FUN_00168e00(param_10,&local_bc)" (identifier "FUN_00168e00") (argument_list "(param_10,&local_bc)" (( "(") (identifier "param_10") (, ",") (pointer_expression "&local_bc" (& "&") (identifier "local_bc")) () ")"))) (; ";")) (expression_statement "puVar7 = auStack_fc;" (assignment_expression "puVar7 = auStack_fc" (identifier "puVar7") (= "=") (identifier "auStack_fc")) (; ";")) (expression_statement "local_98 = 0;" (assignment_expression "local_98 = 0" (identifier "local_98") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_94 = 0x163;" (assignment_expression "local_94 = 0x163" (identifier "local_94") (= "=") (number_literal "0x163")) (; ";")) (expression_statement "local_a4 = local_bc;" (assignment_expression "local_a4 = local_bc" (identifier "local_a4") (= "=") (identifier "local_bc")) (; ";")) (expression_statement "local_9c = local_bc;" (assignment_expression "local_9c = local_bc" (identifier "local_9c") (= "=") (identifier "local_bc")) (; ";")) (expression_statement "local_74 = local_bc;" (assignment_expression "local_74 = local_bc" (identifier "local_74") (= "=") (identifier "local_bc")) (; ";")) (expression_statement "local_a0 = local_b8;" (assignment_expression "local_a0 = local_b8" (identifier "local_a0") (= "=") (identifier "local_b8")) (; ";")) (expression_statement "piVar3 = *(int **)(param_3 + 0x1d0);" (assignment_expression "piVar3 = *(int **)(param_3 + 0x1d0)" (identifier "piVar3") (= "=") (pointer_expression "*(int **)(param_3 + 0x1d0)" (* "*") (cast_expression "(int **)(param_3 + 0x1d0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_3 + 0x1d0)" (( "(") (binary_expression "param_3 + 0x1d0" (identifier "param_3") (+ "+") (number_literal "0x1d0")) () ")"))))) (; ";")) (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" (identifier "local_90") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_8c = 0;" (assignment_expression "local_8c = 0" (identifier "local_8c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" (identifier "local_88") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" (identifier "local_84") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_80 = 0;" (assignment_expression "local_80 = 0" (identifier "local_80") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_7c = 0;" (assignment_expression "local_7c = 0" (identifier "local_7c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_78 = 1;" (assignment_expression "local_78 = 1" (identifier "local_78") (= "=") (number_literal "1")) (; ";")) (if_statement "if (piVar3 != (int *)0x0) {\n    FUN_00067c30(&local_d4,param_10 + 0x1c);\n    local_e4 = local_d4;\n    local_e0 = local_d0;\n    if (*param_9 == '\0') {\n                    \n      FUN_00069d00((int)local_d8 + -0x106ebb,0x828,local_d8 + -0x3d7a0,local_d4);\n    }\n    local_dc = *(int *)(param_9 + 0x4c);\n    piVar3 = (int *)FUN_001e5200(0x20);\n    *piVar3 = (int)(piVar3 + 2);\n                    \n    FUN_000513a0(piVar3,*(int *)(param_10 + 0x1c),\n                 *(int *)(param_10 + 0x20) + *(int *)(param_10 + 0x1c),0);\n    piVar3[6] = 0;\n    piVar3[7] = 0;\n                    \n    FUN_00072240(*(undefined4 *)(param_3 + 0x1d0),piVar3,local_dc,local_e4,local_e0);\n    puVar7 = auStack_100;\n  }" (if "if") (parenthesized_expression "(piVar3 != (int *)0x0)" (( "(") (binary_expression "piVar3 != (int *)0x0" (identifier "piVar3") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    FUN_00067c30(&local_d4,param_10 + 0x1c);\n    local_e4 = local_d4;\n    local_e0 = local_d0;\n    if (*param_9 == '\0') {\n                    \n      FUN_00069d00((int)local_d8 + -0x106ebb,0x828,local_d8 + -0x3d7a0,local_d4);\n    }\n    local_dc = *(int *)(param_9 + 0x4c);\n    piVar3 = (int *)FUN_001e5200(0x20);\n    *piVar3 = (int)(piVar3 + 2);\n                    \n    FUN_000513a0(piVar3,*(int *)(param_10 + 0x1c),\n                 *(int *)(param_10 + 0x20) + *(int *)(param_10 + 0x1c),0);\n    piVar3[6] = 0;\n    piVar3[7] = 0;\n                    \n    FUN_00072240(*(undefined4 *)(param_3 + 0x1d0),piVar3,local_dc,local_e4,local_e0);\n    puVar7 = auStack_100;\n  }" ({ "{") (expression_statement "FUN_00067c30(&local_d4,param_10 + 0x1c);" (call_expression "FUN_00067c30(&local_d4,param_10 + 0x1c)" (identifier "FUN_00067c30") (argument_list "(&local_d4,param_10 + 0x1c)" (( "(") (pointer_expression "&local_d4" (& "&") (identifier "local_d4")) (, ",") (binary_expression "param_10 + 0x1c" (identifier "param_10") (+ "+") (number_literal "0x1c")) () ")"))) (; ";")) (expression_statement "local_e4 = local_d4;" (assignment_expression "local_e4 = local_d4" (identifier "local_e4") (= "=") (identifier "local_d4")) (; ";")) (expression_statement "local_e0 = local_d0;" (assignment_expression "local_e0 = local_d0" (identifier "local_e0") (= "=") (identifier "local_d0")) (; ";")) (if_statement "if (*param_9 == '\0') {\n                    \n      FUN_00069d00((int)local_d8 + -0x106ebb,0x828,local_d8 + -0x3d7a0,local_d4);\n    }" (if "if") (parenthesized_expression "(*param_9 == '\0')" (( "(") (binary_expression "*param_9 == '\0'" (pointer_expression "*param_9" (* "*") (identifier "param_9")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                    \n      FUN_00069d00((int)local_d8 + -0x106ebb,0x828,local_d8 + -0x3d7a0,local_d4);\n    }" ({ "{") (expression_statement "FUN_00069d00((int)local_d8 + -0x106ebb,0x828,local_d8 + -0x3d7a0,local_d4);" (call_expression "FUN_00069d00((int)local_d8 + -0x106ebb,0x828,local_d8 + -0x3d7a0,local_d4)" (identifier "FUN_00069d00") (argument_list "((int)local_d8 + -0x106ebb,0x828,local_d8 + -0x3d7a0,local_d4)" (( "(") (binary_expression "(int)local_d8 + -0x106ebb" (cast_expression "(int)local_d8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_d8")) (+ "+") (number_literal "-0x106ebb")) (, ",") (number_literal "0x828") (, ",") (binary_expression "local_d8 + -0x3d7a0" (identifier "local_d8") (+ "+") (number_literal "-0x3d7a0")) (, ",") (identifier "local_d4") () ")"))) (; ";")) (} "}"))) (expression_statement "local_dc = *(int *)(param_9 + 0x4c);" (assignment_expression "local_dc = *(int *)(param_9 + 0x4c)" (identifier "local_dc") (= "=") (pointer_expression "*(int *)(param_9 + 0x4c)" (* "*") (cast_expression "(int *)(param_9 + 0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_9 + 0x4c)" (( "(") (binary_expression "param_9 + 0x4c" (identifier "param_9") (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (expression_statement "piVar3 = (int *)FUN_001e5200(0x20);" (assignment_expression "piVar3 = (int *)FUN_001e5200(0x20)" (identifier "piVar3") (= "=") (cast_expression "(int *)FUN_001e5200(0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001e5200(0x20)" (identifier "FUN_001e5200") (argument_list "(0x20)" (( "(") (number_literal "0x20") () ")"))))) (; ";")) (expression_statement "*piVar3 = (int)(piVar3 + 2);" (assignment_expression "*piVar3 = (int)(piVar3 + 2)" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (= "=") (cast_expression "(int)(piVar3 + 2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(piVar3 + 2)" (( "(") (binary_expression "piVar3 + 2" (identifier "piVar3") (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "FUN_000513a0(piVar3,*(int *)(param_10 + 0x1c),\n                 *(int *)(param_10 + 0x20) + *(int *)(param_10 + 0x1c),0);" (call_expression "FUN_000513a0(piVar3,*(int *)(param_10 + 0x1c),\n                 *(int *)(param_10 + 0x20) + *(int *)(param_10 + 0x1c),0)" (identifier "FUN_000513a0") (argument_list "(piVar3,*(int *)(param_10 + 0x1c),\n                 *(int *)(param_10 + 0x20) + *(int *)(param_10 + 0x1c),0)" (( "(") (identifier "piVar3") (, ",") (pointer_expression "*(int *)(param_10 + 0x1c)" (* "*") (cast_expression "(int *)(param_10 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_10 + 0x1c)" (( "(") (binary_expression "param_10 + 0x1c" (identifier "param_10") (+ "+") (number_literal "0x1c")) () ")")))) (, ",") (binary_expression "*(int *)(param_10 + 0x20) + *(int *)(param_10 + 0x1c)" (pointer_expression "*(int *)(param_10 + 0x20)" (* "*") (cast_expression "(int *)(param_10 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_10 + 0x20)" (( "(") (binary_expression "param_10 + 0x20" (identifier "param_10") (+ "+") (number_literal "0x20")) () ")")))) (+ "+") (pointer_expression "*(int *)(param_10 + 0x1c)" (* "*") (cast_expression "(int *)(param_10 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_10 + 0x1c)" (( "(") (binary_expression "param_10 + 0x1c" (identifier "param_10") (+ "+") (number_literal "0x1c")) () ")"))))) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "piVar3[6] = 0;" (assignment_expression "piVar3[6] = 0" (subscript_expression "piVar3[6]" (identifier "piVar3") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar3[7] = 0;" (assignment_expression "piVar3[7] = 0" (subscript_expression "piVar3[7]" (identifier "piVar3") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00072240(*(undefined4 *)(param_3 + 0x1d0),piVar3,local_dc,local_e4,local_e0);" (call_expression "FUN_00072240(*(undefined4 *)(param_3 + 0x1d0),piVar3,local_dc,local_e4,local_e0)" (identifier "FUN_00072240") (argument_list "(*(undefined4 *)(param_3 + 0x1d0),piVar3,local_dc,local_e4,local_e0)" (( "(") (pointer_expression "*(undefined4 *)(param_3 + 0x1d0)" (* "*") (cast_expression "(undefined4 *)(param_3 + 0x1d0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x1d0)" (( "(") (binary_expression "param_3 + 0x1d0" (identifier "param_3") (+ "+") (number_literal "0x1d0")) () ")")))) (, ",") (identifier "piVar3") (, ",") (identifier "local_dc") (, ",") (identifier "local_e4") (, ",") (identifier "local_e0") () ")"))) (; ";")) (expression_statement "puVar7 = auStack_100;" (assignment_expression "puVar7 = auStack_100" (identifier "puVar7") (= "=") (identifier "auStack_100")) (; ";")) (} "}"))) (expression_statement "*(int *)(puVar7 + -0x10) = param_10;" (assignment_expression "*(int *)(puVar7 + -0x10) = param_10" (pointer_expression "*(int *)(puVar7 + -0x10)" (* "*") (cast_expression "(int *)(puVar7 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x10)" (( "(") (binary_expression "puVar7 + -0x10" (identifier "puVar7") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "param_10")) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16d8d7;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16d8d7" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar7 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x14)" (( "(") (binary_expression "puVar7 + -0x14" (identifier "puVar7") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x16d8d7")) (; ";")) (expression_statement "local_59 = FUN_00067bf0();" (assignment_expression "local_59 = FUN_00067bf0()" (identifier "local_59") (= "=") (call_expression "FUN_00067bf0()" (identifier "FUN_00067bf0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_dc = CONCAT31(local_dc._1_3_,local_59);" (assignment_expression "local_dc = CONCAT31(local_dc._1_3_,local_59)" (identifier "local_dc") (= "=") (call_expression "CONCAT31(local_dc._1_3_,local_59)" (identifier "CONCAT31") (argument_list "(local_dc._1_3_,local_59)" (( "(") (field_expression "local_dc._1_3_" (identifier "local_dc") (. ".") (field_identifier "_1_3_")) (, ",") (identifier "local_59") () ")")))) (; ";")) (expression_statement "local_50 = *(int *)(param_3 + 4);" (assignment_expression "local_50 = *(int *)(param_3 + 4)" (identifier "local_50") (= "=") (pointer_expression "*(int *)(param_3 + 4)" (* "*") (cast_expression "(int *)(param_3 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 4)" (( "(") (binary_expression "param_3 + 4" (identifier "param_3") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "local_5b = param_8 != 0;" (assignment_expression "local_5b = param_8 != 0" (identifier "local_5b") (= "=") (binary_expression "param_8 != 0" (identifier "param_8") (!= "!=") (number_literal "0"))) (; ";")) (expression_statement "local_5a = *(byte *)(param_10 + 0x8c);" (assignment_expression "local_5a = *(byte *)(param_10 + 0x8c)" (identifier "local_5a") (= "=") (pointer_expression "*(byte *)(param_10 + 0x8c)" (* "*") (cast_expression "(byte *)(param_10 + 0x8c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_10 + 0x8c)" (( "(") (binary_expression "param_10 + 0x8c" (identifier "param_10") (+ "+") (number_literal "0x8c")) () ")"))))) (; ";")) (expression_statement "local_f1 = *param_9;" (assignment_expression "local_f1 = *param_9" (identifier "local_f1") (= "=") (pointer_expression "*param_9" (* "*") (identifier "param_9"))) (; ";")) (if_statement "if (local_f1 != '\0') {\n    local_4c = local_50 + 0x68;\n    local_70 = *(undefined4 *)(param_10 + 0x1c);\n    local_5c = 0;\n    local_6c = *(undefined4 *)(param_9 + 0x3c);\n    local_58 = '\0';\n    local_68 = *(undefined4 *)(param_9 + 0x40);\n    local_54 = 0;\n    local_64 = *(undefined4 *)(param_9 + 0x44);\n    local_60 = *(undefined4 *)(param_9 + 0x48);\n    local_44 = 0;\n    local_40 = 0;\n    local_48 = &local_a4;\n    local_3c[0] = 0;\n    local_3c[1] = 0;\n    local_3c[2] = 0;\n    local_3c[3] = 0;\n    local_3c[4] = 0;\n    local_3c[5] = 0;\n    local_24 = (int *)0x0;\n    local_c0 = 0;\n    *(undefined4 **)(puVar7 + -8) = &local_c0;\n    *(undefined4 *)(puVar7 + -0xc) = 0;\n    *(int **)(puVar7 + -0x10) = local_3c + 3;\n                    \n    *(undefined4 *)(puVar7 + -0x14) = 0x16d9bc;\n    local_20 = piVar3;\n    FUN_0016f460();\n    *(undefined4 **)(puVar7 + -0xc) = &local_c0;\n    local_c0 = local_98;\n    *(int **)(puVar7 + -0x10) = local_3c;\n    *(undefined4 *)(puVar7 + -0x14) = 0x16d9d4;\n    FUN_0016f700();\n    cVar1 = *(char *)(*(int *)(param_3 + 4) + 0xac);\n    local_f8 = &local_70;\n    *(undefined4 **)(puVar7 + -0x10) = local_f8;\n                    \n    *(undefined4 *)(puVar7 + -0x14) = 0x16d9f8;\n    iVar4 = FUN_00191d40();\n    if (iVar4 == 0) {\n      if (((cVar1 == '\0') && (*(char *)(*(int *)(param_3 + 4) + 0xac) != '\0')) &&\n         (*(char *)(param_3 + 0x1c4) != '\0')) {\n        uVar2 = *(undefined4 *)(param_10 + 0x1c);\n        *(undefined ***)(puVar7 + -0x10) = local_d8 + -0x3d6c8;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc5d;\n        uVar6 = gettext();\n        *(undefined4 *)(puVar7 + -0xc) = uVar2;\n        *(undefined4 *)(puVar7 + -0x10) = uVar6;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc66;\n        FUN_000654b0();\n      }\n      cVar1 = local_f1;\n      if (local_24 != (int *)0x0) {\n        local_e4 = (undefined1 *)0x0;\n        iVar4 = local_24[1];\n        local_dc = *local_24;\n        if (iVar4 != local_dc) {\n          local_ec = local_d8 + -0x289c;\n          do {\n            local_e8 = local_dc + 0x5c;\n            puVar5 = param_11;\n            if (local_e8 != iVar4) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;\n              puVar5 = (undefined1 *)FUN_001e5200();\n              *puVar5 = 1;\n              *(undefined4 *)(puVar5 + 8) = 0;\n              *(undefined4 *)(puVar5 + 0xc) = 0;\n              *(undefined4 *)(puVar5 + 0x10) = 0;\n              *(undefined4 *)(puVar5 + 4) = 1;\n            }\n            *(undefined4 *)(puVar7 + -0x10) = 0x50;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16db2d;\n            piVar3 = (int *)FUN_001e5200();\n            piVar3[1] = 0;\n            piVar3[2] = (int)(piVar3 + 4);\n            piVar3[3] = 0;\n            *piVar3 = (int)local_ec;\n            piVar3[0xc] = param_4;\n            piVar3[9] = param_6;\n            piVar3[0xe] = param_7;\n            piVar3[10] = param_2;\n            piVar3[0x12] = (int)local_e4;\n            piVar3[0xb] = param_3;\n            *(undefined1 *)(piVar3 + 4) = 0;\n            *(undefined1 *)(piVar3 + 8) = 0;\n            piVar3[0xd] = 0;\n            piVar3[0xf] = local_dc;\n            piVar3[0x10] = param_8;\n            piVar3[0x11] = 0;\n            piVar3[0x13] = (int)puVar5;\n            *(int **)(puVar7 + -0xc) = piVar3;\n            *(undefined4 *)(puVar7 + -0x10) = param_1;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16dba5;\n            FUN_001906c0();\n            if (local_24 == (int *)0x0) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;\n              local_24 = (int *)FUN_001e5200();\n              *local_24 = 0;\n              local_24[1] = 0;\n              local_24[2] = 0;\n              *(undefined2 *)(local_24 + 3) = 0;\n              local_24[4] = 0;\n              iVar4 = 0;\n            }\n            else {\n              iVar4 = local_24[1];\n            }\n            local_dc = local_e8;\n            local_e4 = puVar5;\n          } while (local_e8 != iVar4);\n          *param_12 = 1;\n          cVar1 = local_f1;\n        }\n      }\n    }\n    else {\n      cVar1 = local_58;\n      if (local_58 != '\0') {\n        *(int *)(puVar7 + -0xc) = param_10;\n        *(char **)(puVar7 + -0x10) = param_9;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc84;\n        FUN_00142200();\n        *(undefined1 **)(puVar7 + -0xc) = param_11;\n        *(int *)(puVar7 + -0x10) = param_8;\n        *(char **)(puVar7 + -0x14) = param_9;\n        *(int *)(puVar7 + -0x18) = param_7;\n        *(undefined4 *)(puVar7 + -0x1c) = param_5;\n        *(int *)(puVar7 + -0x20) = param_4;\n        *(int *)(puVar7 + -0x24) = param_3;\n        *(int *)(puVar7 + -0x28) = param_2;\n        *(int *)(puVar7 + -0x2c) = param_6;\n        *(undefined4 *)(puVar7 + -0x30) = param_1;\n        *(undefined4 *)(puVar7 + -0x34) = 0x16dca7;\n        FUN_00142290();\n        cVar1 = local_f1;\n      }\n    }\n    if (local_3c[3] != 0) {\n      *(int *)(puVar7 + -0x10) = local_3c[3];\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da23;\n      FUN_001e6db0();\n    }\n    if (local_3c[0] != 0) {\n      *(int *)(puVar7 + -0x10) = local_3c[0];\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da3c;\n      FUN_001e6db0();\n    }\n    if (local_bc != local_f0) {\n      *(undefined1 **)(puVar7 + -0x10) = local_bc;\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da5c;\n      FUN_001e6db0();\n    }\n    return cVar1;\n  }" (if "if") (parenthesized_expression "(local_f1 != '\0')" (( "(") (binary_expression "local_f1 != '\0'" (identifier "local_f1") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    local_4c = local_50 + 0x68;\n    local_70 = *(undefined4 *)(param_10 + 0x1c);\n    local_5c = 0;\n    local_6c = *(undefined4 *)(param_9 + 0x3c);\n    local_58 = '\0';\n    local_68 = *(undefined4 *)(param_9 + 0x40);\n    local_54 = 0;\n    local_64 = *(undefined4 *)(param_9 + 0x44);\n    local_60 = *(undefined4 *)(param_9 + 0x48);\n    local_44 = 0;\n    local_40 = 0;\n    local_48 = &local_a4;\n    local_3c[0] = 0;\n    local_3c[1] = 0;\n    local_3c[2] = 0;\n    local_3c[3] = 0;\n    local_3c[4] = 0;\n    local_3c[5] = 0;\n    local_24 = (int *)0x0;\n    local_c0 = 0;\n    *(undefined4 **)(puVar7 + -8) = &local_c0;\n    *(undefined4 *)(puVar7 + -0xc) = 0;\n    *(int **)(puVar7 + -0x10) = local_3c + 3;\n                    \n    *(undefined4 *)(puVar7 + -0x14) = 0x16d9bc;\n    local_20 = piVar3;\n    FUN_0016f460();\n    *(undefined4 **)(puVar7 + -0xc) = &local_c0;\n    local_c0 = local_98;\n    *(int **)(puVar7 + -0x10) = local_3c;\n    *(undefined4 *)(puVar7 + -0x14) = 0x16d9d4;\n    FUN_0016f700();\n    cVar1 = *(char *)(*(int *)(param_3 + 4) + 0xac);\n    local_f8 = &local_70;\n    *(undefined4 **)(puVar7 + -0x10) = local_f8;\n                    \n    *(undefined4 *)(puVar7 + -0x14) = 0x16d9f8;\n    iVar4 = FUN_00191d40();\n    if (iVar4 == 0) {\n      if (((cVar1 == '\0') && (*(char *)(*(int *)(param_3 + 4) + 0xac) != '\0')) &&\n         (*(char *)(param_3 + 0x1c4) != '\0')) {\n        uVar2 = *(undefined4 *)(param_10 + 0x1c);\n        *(undefined ***)(puVar7 + -0x10) = local_d8 + -0x3d6c8;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc5d;\n        uVar6 = gettext();\n        *(undefined4 *)(puVar7 + -0xc) = uVar2;\n        *(undefined4 *)(puVar7 + -0x10) = uVar6;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc66;\n        FUN_000654b0();\n      }\n      cVar1 = local_f1;\n      if (local_24 != (int *)0x0) {\n        local_e4 = (undefined1 *)0x0;\n        iVar4 = local_24[1];\n        local_dc = *local_24;\n        if (iVar4 != local_dc) {\n          local_ec = local_d8 + -0x289c;\n          do {\n            local_e8 = local_dc + 0x5c;\n            puVar5 = param_11;\n            if (local_e8 != iVar4) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;\n              puVar5 = (undefined1 *)FUN_001e5200();\n              *puVar5 = 1;\n              *(undefined4 *)(puVar5 + 8) = 0;\n              *(undefined4 *)(puVar5 + 0xc) = 0;\n              *(undefined4 *)(puVar5 + 0x10) = 0;\n              *(undefined4 *)(puVar5 + 4) = 1;\n            }\n            *(undefined4 *)(puVar7 + -0x10) = 0x50;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16db2d;\n            piVar3 = (int *)FUN_001e5200();\n            piVar3[1] = 0;\n            piVar3[2] = (int)(piVar3 + 4);\n            piVar3[3] = 0;\n            *piVar3 = (int)local_ec;\n            piVar3[0xc] = param_4;\n            piVar3[9] = param_6;\n            piVar3[0xe] = param_7;\n            piVar3[10] = param_2;\n            piVar3[0x12] = (int)local_e4;\n            piVar3[0xb] = param_3;\n            *(undefined1 *)(piVar3 + 4) = 0;\n            *(undefined1 *)(piVar3 + 8) = 0;\n            piVar3[0xd] = 0;\n            piVar3[0xf] = local_dc;\n            piVar3[0x10] = param_8;\n            piVar3[0x11] = 0;\n            piVar3[0x13] = (int)puVar5;\n            *(int **)(puVar7 + -0xc) = piVar3;\n            *(undefined4 *)(puVar7 + -0x10) = param_1;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16dba5;\n            FUN_001906c0();\n            if (local_24 == (int *)0x0) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;\n              local_24 = (int *)FUN_001e5200();\n              *local_24 = 0;\n              local_24[1] = 0;\n              local_24[2] = 0;\n              *(undefined2 *)(local_24 + 3) = 0;\n              local_24[4] = 0;\n              iVar4 = 0;\n            }\n            else {\n              iVar4 = local_24[1];\n            }\n            local_dc = local_e8;\n            local_e4 = puVar5;\n          } while (local_e8 != iVar4);\n          *param_12 = 1;\n          cVar1 = local_f1;\n        }\n      }\n    }\n    else {\n      cVar1 = local_58;\n      if (local_58 != '\0') {\n        *(int *)(puVar7 + -0xc) = param_10;\n        *(char **)(puVar7 + -0x10) = param_9;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc84;\n        FUN_00142200();\n        *(undefined1 **)(puVar7 + -0xc) = param_11;\n        *(int *)(puVar7 + -0x10) = param_8;\n        *(char **)(puVar7 + -0x14) = param_9;\n        *(int *)(puVar7 + -0x18) = param_7;\n        *(undefined4 *)(puVar7 + -0x1c) = param_5;\n        *(int *)(puVar7 + -0x20) = param_4;\n        *(int *)(puVar7 + -0x24) = param_3;\n        *(int *)(puVar7 + -0x28) = param_2;\n        *(int *)(puVar7 + -0x2c) = param_6;\n        *(undefined4 *)(puVar7 + -0x30) = param_1;\n        *(undefined4 *)(puVar7 + -0x34) = 0x16dca7;\n        FUN_00142290();\n        cVar1 = local_f1;\n      }\n    }\n    if (local_3c[3] != 0) {\n      *(int *)(puVar7 + -0x10) = local_3c[3];\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da23;\n      FUN_001e6db0();\n    }\n    if (local_3c[0] != 0) {\n      *(int *)(puVar7 + -0x10) = local_3c[0];\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da3c;\n      FUN_001e6db0();\n    }\n    if (local_bc != local_f0) {\n      *(undefined1 **)(puVar7 + -0x10) = local_bc;\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da5c;\n      FUN_001e6db0();\n    }\n    return cVar1;\n  }" ({ "{") (expression_statement "local_4c = local_50 + 0x68;" (assignment_expression "local_4c = local_50 + 0x68" (identifier "local_4c") (= "=") (binary_expression "local_50 + 0x68" (identifier "local_50") (+ "+") (number_literal "0x68"))) (; ";")) (expression_statement "local_70 = *(undefined4 *)(param_10 + 0x1c);" (assignment_expression "local_70 = *(undefined4 *)(param_10 + 0x1c)" (identifier "local_70") (= "=") (pointer_expression "*(undefined4 *)(param_10 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(param_10 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_10 + 0x1c)" (( "(") (binary_expression "param_10 + 0x1c" (identifier "param_10") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" (identifier "local_5c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_6c = *(undefined4 *)(param_9 + 0x3c);" (assignment_expression "local_6c = *(undefined4 *)(param_9 + 0x3c)" (identifier "local_6c") (= "=") (pointer_expression "*(undefined4 *)(param_9 + 0x3c)" (* "*") (cast_expression "(undefined4 *)(param_9 + 0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_9 + 0x3c)" (( "(") (binary_expression "param_9 + 0x3c" (identifier "param_9") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (expression_statement "local_58 = '\0';" (assignment_expression "local_58 = '\0'" (identifier "local_58") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "local_68 = *(undefined4 *)(param_9 + 0x40);" (assignment_expression "local_68 = *(undefined4 *)(param_9 + 0x40)" (identifier "local_68") (= "=") (pointer_expression "*(undefined4 *)(param_9 + 0x40)" (* "*") (cast_expression "(undefined4 *)(param_9 + 0x40)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_9 + 0x40)" (( "(") (binary_expression "param_9 + 0x40" (identifier "param_9") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" (identifier "local_54") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_64 = *(undefined4 *)(param_9 + 0x44);" (assignment_expression "local_64 = *(undefined4 *)(param_9 + 0x44)" (identifier "local_64") (= "=") (pointer_expression "*(undefined4 *)(param_9 + 0x44)" (* "*") (cast_expression "(undefined4 *)(param_9 + 0x44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_9 + 0x44)" (( "(") (binary_expression "param_9 + 0x44" (identifier "param_9") (+ "+") (number_literal "0x44")) () ")"))))) (; ";")) (expression_statement "local_60 = *(undefined4 *)(param_9 + 0x48);" (assignment_expression "local_60 = *(undefined4 *)(param_9 + 0x48)" (identifier "local_60") (= "=") (pointer_expression "*(undefined4 *)(param_9 + 0x48)" (* "*") (cast_expression "(undefined4 *)(param_9 + 0x48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_9 + 0x48)" (( "(") (binary_expression "param_9 + 0x48" (identifier "param_9") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" (identifier "local_44") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_48 = &local_a4;" (assignment_expression "local_48 = &local_a4" (identifier "local_48") (= "=") (pointer_expression "&local_a4" (& "&") (identifier "local_a4"))) (; ";")) (expression_statement "local_3c[0] = 0;" (assignment_expression "local_3c[0] = 0" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_3c[1] = 0;" (assignment_expression "local_3c[1] = 0" (subscript_expression "local_3c[1]" (identifier "local_3c") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_3c[2] = 0;" (assignment_expression "local_3c[2] = 0" (subscript_expression "local_3c[2]" (identifier "local_3c") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_3c[3] = 0;" (assignment_expression "local_3c[3] = 0" (subscript_expression "local_3c[3]" (identifier "local_3c") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_3c[4] = 0;" (assignment_expression "local_3c[4] = 0" (subscript_expression "local_3c[4]" (identifier "local_3c") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_3c[5] = 0;" (assignment_expression "local_3c[5] = 0" (subscript_expression "local_3c[5]" (identifier "local_3c") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_24 = (int *)0x0;" (assignment_expression "local_24 = (int *)0x0" (identifier "local_24") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_c0 = 0;" (assignment_expression "local_c0 = 0" (identifier "local_c0") (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 **)(puVar7 + -8) = &local_c0;" (assignment_expression "*(undefined4 **)(puVar7 + -8) = &local_c0" (pointer_expression "*(undefined4 **)(puVar7 + -8)" (* "*") (cast_expression "(undefined4 **)(puVar7 + -8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar7 + -8)" (( "(") (binary_expression "puVar7 + -8" (identifier "puVar7") (+ "+") (number_literal "-8")) () ")")))) (= "=") (pointer_expression "&local_c0" (& "&") (identifier "local_c0"))) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar7 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar7 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar7 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0xc)" (( "(") (binary_expression "puVar7 + -0xc" (identifier "puVar7") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int **)(puVar7 + -0x10) = local_3c + 3;" (assignment_expression "*(int **)(puVar7 + -0x10) = local_3c + 3" (pointer_expression "*(int **)(puVar7 + -0x10)" (* "*") (cast_expression "(int **)(puVar7 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar7 + -0x10)" (( "(") (binary_expression "puVar7 + -0x10" (identifier "puVar7") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "local_3c + 3" (identifier "local_3c") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16d9bc;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16d9bc" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar7 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x14)" (( "(") (binary_expression "puVar7 + -0x14" (identifier "puVar7") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x16d9bc")) (; ";")) (expression_statement "local_20 = piVar3;" (assignment_expression "local_20 = piVar3" (identifier "local_20") (= "=") (identifier "piVar3")) (; ";")) (expression_statement "FUN_0016f460();" (call_expression "FUN_0016f460()" (identifier "FUN_0016f460") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined4 **)(puVar7 + -0xc) = &local_c0;" (assignment_expression "*(undefined4 **)(puVar7 + -0xc) = &local_c0" (pointer_expression "*(undefined4 **)(puVar7 + -0xc)" (* "*") (cast_expression "(undefined4 **)(puVar7 + -0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar7 + -0xc)" (( "(") (binary_expression "puVar7 + -0xc" (identifier "puVar7") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (pointer_expression "&local_c0" (& "&") (identifier "local_c0"))) (; ";")) (expression_statement "local_c0 = local_98;" (assignment_expression "local_c0 = local_98" (identifier "local_c0") (= "=") (identifier "local_98")) (; ";")) (expression_statement "*(int **)(puVar7 + -0x10) = local_3c;" (assignment_expression "*(int **)(puVar7 + -0x10) = local_3c" (pointer_expression "*(int **)(puVar7 + -0x10)" (* "*") (cast_expression "(int **)(puVar7 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar7 + -0x10)" (( "(") (binary_expression "puVar7 + -0x10" (identifier "puVar7") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_3c")) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16d9d4;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16d9d4" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar7 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x14)" (( "(") (binary_expression "puVar7 + -0x14" (identifier "puVar7") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x16d9d4")) (; ";")) (expression_statement "FUN_0016f700();" (call_expression "FUN_0016f700()" (identifier "FUN_0016f700") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "cVar1 = *(char *)(*(int *)(param_3 + 4) + 0xac);" (assignment_expression "cVar1 = *(char *)(*(int *)(param_3 + 4) + 0xac)" (identifier "cVar1") (= "=") (pointer_expression "*(char *)(*(int *)(param_3 + 4) + 0xac)" (* "*") (cast_expression "(char *)(*(int *)(param_3 + 4) + 0xac)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_3 + 4) + 0xac)" (( "(") (binary_expression "*(int *)(param_3 + 4) + 0xac" (pointer_expression "*(int *)(param_3 + 4)" (* "*") (cast_expression "(int *)(param_3 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 4)" (( "(") (binary_expression "param_3 + 4" (identifier "param_3") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0xac")) () ")"))))) (; ";")) (expression_statement "local_f8 = &local_70;" (assignment_expression "local_f8 = &local_70" (identifier "local_f8") (= "=") (pointer_expression "&local_70" (& "&") (identifier "local_70"))) (; ";")) (expression_statement "*(undefined4 **)(puVar7 + -0x10) = local_f8;" (assignment_expression "*(undefined4 **)(puVar7 + -0x10) = local_f8" (pointer_expression "*(undefined4 **)(puVar7 + -0x10)" (* "*") (cast_expression "(undefined4 **)(puVar7 + -0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar7 + -0x10)" (( "(") (binary_expression "puVar7 + -0x10" (identifier "puVar7") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_f8")) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16d9f8;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16d9f8" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar7 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x14)" (( "(") (binary_expression "puVar7 + -0x14" (identifier "puVar7") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x16d9f8")) (; ";")) (expression_statement "iVar4 = FUN_00191d40();" (assignment_expression "iVar4 = FUN_00191d40()" (identifier "iVar4") (= "=") (call_expression "FUN_00191d40()" (identifier "FUN_00191d40") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n      if (((cVar1 == '\0') && (*(char *)(*(int *)(param_3 + 4) + 0xac) != '\0')) &&\n         (*(char *)(param_3 + 0x1c4) != '\0')) {\n        uVar2 = *(undefined4 *)(param_10 + 0x1c);\n        *(undefined ***)(puVar7 + -0x10) = local_d8 + -0x3d6c8;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc5d;\n        uVar6 = gettext();\n        *(undefined4 *)(puVar7 + -0xc) = uVar2;\n        *(undefined4 *)(puVar7 + -0x10) = uVar6;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc66;\n        FUN_000654b0();\n      }\n      cVar1 = local_f1;\n      if (local_24 != (int *)0x0) {\n        local_e4 = (undefined1 *)0x0;\n        iVar4 = local_24[1];\n        local_dc = *local_24;\n        if (iVar4 != local_dc) {\n          local_ec = local_d8 + -0x289c;\n          do {\n            local_e8 = local_dc + 0x5c;\n            puVar5 = param_11;\n            if (local_e8 != iVar4) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;\n              puVar5 = (undefined1 *)FUN_001e5200();\n              *puVar5 = 1;\n              *(undefined4 *)(puVar5 + 8) = 0;\n              *(undefined4 *)(puVar5 + 0xc) = 0;\n              *(undefined4 *)(puVar5 + 0x10) = 0;\n              *(undefined4 *)(puVar5 + 4) = 1;\n            }\n            *(undefined4 *)(puVar7 + -0x10) = 0x50;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16db2d;\n            piVar3 = (int *)FUN_001e5200();\n            piVar3[1] = 0;\n            piVar3[2] = (int)(piVar3 + 4);\n            piVar3[3] = 0;\n            *piVar3 = (int)local_ec;\n            piVar3[0xc] = param_4;\n            piVar3[9] = param_6;\n            piVar3[0xe] = param_7;\n            piVar3[10] = param_2;\n            piVar3[0x12] = (int)local_e4;\n            piVar3[0xb] = param_3;\n            *(undefined1 *)(piVar3 + 4) = 0;\n            *(undefined1 *)(piVar3 + 8) = 0;\n            piVar3[0xd] = 0;\n            piVar3[0xf] = local_dc;\n            piVar3[0x10] = param_8;\n            piVar3[0x11] = 0;\n            piVar3[0x13] = (int)puVar5;\n            *(int **)(puVar7 + -0xc) = piVar3;\n            *(undefined4 *)(puVar7 + -0x10) = param_1;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16dba5;\n            FUN_001906c0();\n            if (local_24 == (int *)0x0) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;\n              local_24 = (int *)FUN_001e5200();\n              *local_24 = 0;\n              local_24[1] = 0;\n              local_24[2] = 0;\n              *(undefined2 *)(local_24 + 3) = 0;\n              local_24[4] = 0;\n              iVar4 = 0;\n            }\n            else {\n              iVar4 = local_24[1];\n            }\n            local_dc = local_e8;\n            local_e4 = puVar5;\n          } while (local_e8 != iVar4);\n          *param_12 = 1;\n          cVar1 = local_f1;\n        }\n      }\n    }\n    else {\n      cVar1 = local_58;\n      if (local_58 != '\0') {\n        *(int *)(puVar7 + -0xc) = param_10;\n        *(char **)(puVar7 + -0x10) = param_9;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc84;\n        FUN_00142200();\n        *(undefined1 **)(puVar7 + -0xc) = param_11;\n        *(int *)(puVar7 + -0x10) = param_8;\n        *(char **)(puVar7 + -0x14) = param_9;\n        *(int *)(puVar7 + -0x18) = param_7;\n        *(undefined4 *)(puVar7 + -0x1c) = param_5;\n        *(int *)(puVar7 + -0x20) = param_4;\n        *(int *)(puVar7 + -0x24) = param_3;\n        *(int *)(puVar7 + -0x28) = param_2;\n        *(int *)(puVar7 + -0x2c) = param_6;\n        *(undefined4 *)(puVar7 + -0x30) = param_1;\n        *(undefined4 *)(puVar7 + -0x34) = 0x16dca7;\n        FUN_00142290();\n        cVar1 = local_f1;\n      }\n    }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (((cVar1 == '\0') && (*(char *)(*(int *)(param_3 + 4) + 0xac) != '\0')) &&\n         (*(char *)(param_3 + 0x1c4) != '\0')) {\n        uVar2 = *(undefined4 *)(param_10 + 0x1c);\n        *(undefined ***)(puVar7 + -0x10) = local_d8 + -0x3d6c8;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc5d;\n        uVar6 = gettext();\n        *(undefined4 *)(puVar7 + -0xc) = uVar2;\n        *(undefined4 *)(puVar7 + -0x10) = uVar6;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc66;\n        FUN_000654b0();\n      }\n      cVar1 = local_f1;\n      if (local_24 != (int *)0x0) {\n        local_e4 = (undefined1 *)0x0;\n        iVar4 = local_24[1];\n        local_dc = *local_24;\n        if (iVar4 != local_dc) {\n          local_ec = local_d8 + -0x289c;\n          do {\n            local_e8 = local_dc + 0x5c;\n            puVar5 = param_11;\n            if (local_e8 != iVar4) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;\n              puVar5 = (undefined1 *)FUN_001e5200();\n              *puVar5 = 1;\n              *(undefined4 *)(puVar5 + 8) = 0;\n              *(undefined4 *)(puVar5 + 0xc) = 0;\n              *(undefined4 *)(puVar5 + 0x10) = 0;\n              *(undefined4 *)(puVar5 + 4) = 1;\n            }\n            *(undefined4 *)(puVar7 + -0x10) = 0x50;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16db2d;\n            piVar3 = (int *)FUN_001e5200();\n            piVar3[1] = 0;\n            piVar3[2] = (int)(piVar3 + 4);\n            piVar3[3] = 0;\n            *piVar3 = (int)local_ec;\n            piVar3[0xc] = param_4;\n            piVar3[9] = param_6;\n            piVar3[0xe] = param_7;\n            piVar3[10] = param_2;\n            piVar3[0x12] = (int)local_e4;\n            piVar3[0xb] = param_3;\n            *(undefined1 *)(piVar3 + 4) = 0;\n            *(undefined1 *)(piVar3 + 8) = 0;\n            piVar3[0xd] = 0;\n            piVar3[0xf] = local_dc;\n            piVar3[0x10] = param_8;\n            piVar3[0x11] = 0;\n            piVar3[0x13] = (int)puVar5;\n            *(int **)(puVar7 + -0xc) = piVar3;\n            *(undefined4 *)(puVar7 + -0x10) = param_1;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16dba5;\n            FUN_001906c0();\n            if (local_24 == (int *)0x0) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;\n              local_24 = (int *)FUN_001e5200();\n              *local_24 = 0;\n              local_24[1] = 0;\n              local_24[2] = 0;\n              *(undefined2 *)(local_24 + 3) = 0;\n              local_24[4] = 0;\n              iVar4 = 0;\n            }\n            else {\n              iVar4 = local_24[1];\n            }\n            local_dc = local_e8;\n            local_e4 = puVar5;\n          } while (local_e8 != iVar4);\n          *param_12 = 1;\n          cVar1 = local_f1;\n        }\n      }\n    }" ({ "{") (if_statement "if (((cVar1 == '\0') && (*(char *)(*(int *)(param_3 + 4) + 0xac) != '\0')) &&\n         (*(char *)(param_3 + 0x1c4) != '\0')) {\n        uVar2 = *(undefined4 *)(param_10 + 0x1c);\n        *(undefined ***)(puVar7 + -0x10) = local_d8 + -0x3d6c8;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc5d;\n        uVar6 = gettext();\n        *(undefined4 *)(puVar7 + -0xc) = uVar2;\n        *(undefined4 *)(puVar7 + -0x10) = uVar6;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc66;\n        FUN_000654b0();\n      }" (if "if") (parenthesized_expression "(((cVar1 == '\0') && (*(char *)(*(int *)(param_3 + 4) + 0xac) != '\0')) &&\n         (*(char *)(param_3 + 0x1c4) != '\0'))" (( "(") (binary_expression "((cVar1 == '\0') && (*(char *)(*(int *)(param_3 + 4) + 0xac) != '\0')) &&\n         (*(char *)(param_3 + 0x1c4) != '\0')" (parenthesized_expression "((cVar1 == '\0') && (*(char *)(*(int *)(param_3 + 4) + 0xac) != '\0'))" (( "(") (binary_expression "(cVar1 == '\0') && (*(char *)(*(int *)(param_3 + 4) + 0xac) != '\0')" (parenthesized_expression "(cVar1 == '\0')" (( "(") (binary_expression "cVar1 == '\0'" (identifier "cVar1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(*(int *)(param_3 + 4) + 0xac) != '\0')" (( "(") (binary_expression "*(char *)(*(int *)(param_3 + 4) + 0xac) != '\0'" (pointer_expression "*(char *)(*(int *)(param_3 + 4) + 0xac)" (* "*") (cast_expression "(char *)(*(int *)(param_3 + 4) + 0xac)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_3 + 4) + 0xac)" (( "(") (binary_expression "*(int *)(param_3 + 4) + 0xac" (pointer_expression "*(int *)(param_3 + 4)" (* "*") (cast_expression "(int *)(param_3 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 4)" (( "(") (binary_expression "param_3 + 4" (identifier "param_3") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0xac")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(param_3 + 0x1c4) != '\0')" (( "(") (binary_expression "*(char *)(param_3 + 0x1c4) != '\0'" (pointer_expression "*(char *)(param_3 + 0x1c4)" (* "*") (cast_expression "(char *)(param_3 + 0x1c4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x1c4)" (( "(") (binary_expression "param_3 + 0x1c4" (identifier "param_3") (+ "+") (number_literal "0x1c4")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n        uVar2 = *(undefined4 *)(param_10 + 0x1c);\n        *(undefined ***)(puVar7 + -0x10) = local_d8 + -0x3d6c8;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc5d;\n        uVar6 = gettext();\n        *(undefined4 *)(puVar7 + -0xc) = uVar2;\n        *(undefined4 *)(puVar7 + -0x10) = uVar6;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc66;\n        FUN_000654b0();\n      }" ({ "{") (expression_statement "uVar2 = *(undefined4 *)(param_10 + 0x1c);" (assignment_expression "uVar2 = *(undefined4 *)(param_10 + 0x1c)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined4 *)(param_10 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(param_10 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_10 + 0x1c)" (( "(") (binary_expression "param_10 + 0x1c" (identifier "param_10") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "*(undefined ***)(puVar7 + -0x10) = local_d8 + -0x3d6c8;" (assignment_expression "*(undefined ***)(puVar7 + -0x10) = local_d8 + -0x3d6c8" (pointer_expression "*(undefined ***)(puVar7 + -0x10)" (* "*") (cast_expression "(undefined ***)(puVar7 + -0x10)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar7 + -0x10)" (( "(") (binary_expression "puVar7 + -0x10" (identifier "puVar7") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "local_d8 + -0x3d6c8" (identifier "local_d8") (+ "+") (number_literal "-0x3d6c8"))) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16dc5d;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16dc5d" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar7 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x14)" (( "(") (binary_expression "puVar7 + -0x14" (identifier "puVar7") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x16dc5d")) (; ";")) (expression_statement "uVar6 = gettext();" (assignment_expression "uVar6 = gettext()" (identifier "uVar6") (= "=") (call_expression "gettext()" (identifier "gettext") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + -0xc) = uVar2;" (assignment_expression "*(undefined4 *)(puVar7 + -0xc) = uVar2" (pointer_expression "*(undefined4 *)(puVar7 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar7 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0xc)" (( "(") (binary_expression "puVar7 + -0xc" (identifier "puVar7") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + -0x10) = uVar6;" (assignment_expression "*(undefined4 *)(puVar7 + -0x10) = uVar6" (pointer_expression "*(undefined4 *)(puVar7 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar7 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x10)" (( "(") (binary_expression "puVar7 + -0x10" (identifier "puVar7") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16dc66;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16dc66" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar7 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x14)" (( "(") (binary_expression "puVar7 + -0x14" (identifier "puVar7") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x16dc66")) (; ";")) (expression_statement "FUN_000654b0();" (call_expression "FUN_000654b0()" (identifier "FUN_000654b0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "cVar1 = local_f1;" (assignment_expression "cVar1 = local_f1" (identifier "cVar1") (= "=") (identifier "local_f1")) (; ";")) (if_statement "if (local_24 != (int *)0x0) {\n        local_e4 = (undefined1 *)0x0;\n        iVar4 = local_24[1];\n        local_dc = *local_24;\n        if (iVar4 != local_dc) {\n          local_ec = local_d8 + -0x289c;\n          do {\n            local_e8 = local_dc + 0x5c;\n            puVar5 = param_11;\n            if (local_e8 != iVar4) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;\n              puVar5 = (undefined1 *)FUN_001e5200();\n              *puVar5 = 1;\n              *(undefined4 *)(puVar5 + 8) = 0;\n              *(undefined4 *)(puVar5 + 0xc) = 0;\n              *(undefined4 *)(puVar5 + 0x10) = 0;\n              *(undefined4 *)(puVar5 + 4) = 1;\n            }\n            *(undefined4 *)(puVar7 + -0x10) = 0x50;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16db2d;\n            piVar3 = (int *)FUN_001e5200();\n            piVar3[1] = 0;\n            piVar3[2] = (int)(piVar3 + 4);\n            piVar3[3] = 0;\n            *piVar3 = (int)local_ec;\n            piVar3[0xc] = param_4;\n            piVar3[9] = param_6;\n            piVar3[0xe] = param_7;\n            piVar3[10] = param_2;\n            piVar3[0x12] = (int)local_e4;\n            piVar3[0xb] = param_3;\n            *(undefined1 *)(piVar3 + 4) = 0;\n            *(undefined1 *)(piVar3 + 8) = 0;\n            piVar3[0xd] = 0;\n            piVar3[0xf] = local_dc;\n            piVar3[0x10] = param_8;\n            piVar3[0x11] = 0;\n            piVar3[0x13] = (int)puVar5;\n            *(int **)(puVar7 + -0xc) = piVar3;\n            *(undefined4 *)(puVar7 + -0x10) = param_1;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16dba5;\n            FUN_001906c0();\n            if (local_24 == (int *)0x0) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;\n              local_24 = (int *)FUN_001e5200();\n              *local_24 = 0;\n              local_24[1] = 0;\n              local_24[2] = 0;\n              *(undefined2 *)(local_24 + 3) = 0;\n              local_24[4] = 0;\n              iVar4 = 0;\n            }\n            else {\n              iVar4 = local_24[1];\n            }\n            local_dc = local_e8;\n            local_e4 = puVar5;\n          } while (local_e8 != iVar4);\n          *param_12 = 1;\n          cVar1 = local_f1;\n        }\n      }" (if "if") (parenthesized_expression "(local_24 != (int *)0x0)" (( "(") (binary_expression "local_24 != (int *)0x0" (identifier "local_24") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        local_e4 = (undefined1 *)0x0;\n        iVar4 = local_24[1];\n        local_dc = *local_24;\n        if (iVar4 != local_dc) {\n          local_ec = local_d8 + -0x289c;\n          do {\n            local_e8 = local_dc + 0x5c;\n            puVar5 = param_11;\n            if (local_e8 != iVar4) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;\n              puVar5 = (undefined1 *)FUN_001e5200();\n              *puVar5 = 1;\n              *(undefined4 *)(puVar5 + 8) = 0;\n              *(undefined4 *)(puVar5 + 0xc) = 0;\n              *(undefined4 *)(puVar5 + 0x10) = 0;\n              *(undefined4 *)(puVar5 + 4) = 1;\n            }\n            *(undefined4 *)(puVar7 + -0x10) = 0x50;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16db2d;\n            piVar3 = (int *)FUN_001e5200();\n            piVar3[1] = 0;\n            piVar3[2] = (int)(piVar3 + 4);\n            piVar3[3] = 0;\n            *piVar3 = (int)local_ec;\n            piVar3[0xc] = param_4;\n            piVar3[9] = param_6;\n            piVar3[0xe] = param_7;\n            piVar3[10] = param_2;\n            piVar3[0x12] = (int)local_e4;\n            piVar3[0xb] = param_3;\n            *(undefined1 *)(piVar3 + 4) = 0;\n            *(undefined1 *)(piVar3 + 8) = 0;\n            piVar3[0xd] = 0;\n            piVar3[0xf] = local_dc;\n            piVar3[0x10] = param_8;\n            piVar3[0x11] = 0;\n            piVar3[0x13] = (int)puVar5;\n            *(int **)(puVar7 + -0xc) = piVar3;\n            *(undefined4 *)(puVar7 + -0x10) = param_1;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16dba5;\n            FUN_001906c0();\n            if (local_24 == (int *)0x0) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;\n              local_24 = (int *)FUN_001e5200();\n              *local_24 = 0;\n              local_24[1] = 0;\n              local_24[2] = 0;\n              *(undefined2 *)(local_24 + 3) = 0;\n              local_24[4] = 0;\n              iVar4 = 0;\n            }\n            else {\n              iVar4 = local_24[1];\n            }\n            local_dc = local_e8;\n            local_e4 = puVar5;\n          } while (local_e8 != iVar4);\n          *param_12 = 1;\n          cVar1 = local_f1;\n        }\n      }" ({ "{") (expression_statement "local_e4 = (undefined1 *)0x0;" (assignment_expression "local_e4 = (undefined1 *)0x0" (identifier "local_e4") (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar4 = local_24[1];" (assignment_expression "iVar4 = local_24[1]" (identifier "iVar4") (= "=") (subscript_expression "local_24[1]" (identifier "local_24") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_dc = *local_24;" (assignment_expression "local_dc = *local_24" (identifier "local_dc") (= "=") (pointer_expression "*local_24" (* "*") (identifier "local_24"))) (; ";")) (if_statement "if (iVar4 != local_dc) {\n          local_ec = local_d8 + -0x289c;\n          do {\n            local_e8 = local_dc + 0x5c;\n            puVar5 = param_11;\n            if (local_e8 != iVar4) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;\n              puVar5 = (undefined1 *)FUN_001e5200();\n              *puVar5 = 1;\n              *(undefined4 *)(puVar5 + 8) = 0;\n              *(undefined4 *)(puVar5 + 0xc) = 0;\n              *(undefined4 *)(puVar5 + 0x10) = 0;\n              *(undefined4 *)(puVar5 + 4) = 1;\n            }\n            *(undefined4 *)(puVar7 + -0x10) = 0x50;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16db2d;\n            piVar3 = (int *)FUN_001e5200();\n            piVar3[1] = 0;\n            piVar3[2] = (int)(piVar3 + 4);\n            piVar3[3] = 0;\n            *piVar3 = (int)local_ec;\n            piVar3[0xc] = param_4;\n            piVar3[9] = param_6;\n            piVar3[0xe] = param_7;\n            piVar3[10] = param_2;\n            piVar3[0x12] = (int)local_e4;\n            piVar3[0xb] = param_3;\n            *(undefined1 *)(piVar3 + 4) = 0;\n            *(undefined1 *)(piVar3 + 8) = 0;\n            piVar3[0xd] = 0;\n            piVar3[0xf] = local_dc;\n            piVar3[0x10] = param_8;\n            piVar3[0x11] = 0;\n            piVar3[0x13] = (int)puVar5;\n            *(int **)(puVar7 + -0xc) = piVar3;\n            *(undefined4 *)(puVar7 + -0x10) = param_1;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16dba5;\n            FUN_001906c0();\n            if (local_24 == (int *)0x0) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;\n              local_24 = (int *)FUN_001e5200();\n              *local_24 = 0;\n              local_24[1] = 0;\n              local_24[2] = 0;\n              *(undefined2 *)(local_24 + 3) = 0;\n              local_24[4] = 0;\n              iVar4 = 0;\n            }\n            else {\n              iVar4 = local_24[1];\n            }\n            local_dc = local_e8;\n            local_e4 = puVar5;\n          } while (local_e8 != iVar4);\n          *param_12 = 1;\n          cVar1 = local_f1;\n        }" (if "if") (parenthesized_expression "(iVar4 != local_dc)" (( "(") (binary_expression "iVar4 != local_dc" (identifier "iVar4") (!= "!=") (identifier "local_dc")) () ")")) (compound_statement "{\n          local_ec = local_d8 + -0x289c;\n          do {\n            local_e8 = local_dc + 0x5c;\n            puVar5 = param_11;\n            if (local_e8 != iVar4) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;\n              puVar5 = (undefined1 *)FUN_001e5200();\n              *puVar5 = 1;\n              *(undefined4 *)(puVar5 + 8) = 0;\n              *(undefined4 *)(puVar5 + 0xc) = 0;\n              *(undefined4 *)(puVar5 + 0x10) = 0;\n              *(undefined4 *)(puVar5 + 4) = 1;\n            }\n            *(undefined4 *)(puVar7 + -0x10) = 0x50;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16db2d;\n            piVar3 = (int *)FUN_001e5200();\n            piVar3[1] = 0;\n            piVar3[2] = (int)(piVar3 + 4);\n            piVar3[3] = 0;\n            *piVar3 = (int)local_ec;\n            piVar3[0xc] = param_4;\n            piVar3[9] = param_6;\n            piVar3[0xe] = param_7;\n            piVar3[10] = param_2;\n            piVar3[0x12] = (int)local_e4;\n            piVar3[0xb] = param_3;\n            *(undefined1 *)(piVar3 + 4) = 0;\n            *(undefined1 *)(piVar3 + 8) = 0;\n            piVar3[0xd] = 0;\n            piVar3[0xf] = local_dc;\n            piVar3[0x10] = param_8;\n            piVar3[0x11] = 0;\n            piVar3[0x13] = (int)puVar5;\n            *(int **)(puVar7 + -0xc) = piVar3;\n            *(undefined4 *)(puVar7 + -0x10) = param_1;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16dba5;\n            FUN_001906c0();\n            if (local_24 == (int *)0x0) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;\n              local_24 = (int *)FUN_001e5200();\n              *local_24 = 0;\n              local_24[1] = 0;\n              local_24[2] = 0;\n              *(undefined2 *)(local_24 + 3) = 0;\n              local_24[4] = 0;\n              iVar4 = 0;\n            }\n            else {\n              iVar4 = local_24[1];\n            }\n            local_dc = local_e8;\n            local_e4 = puVar5;\n          } while (local_e8 != iVar4);\n          *param_12 = 1;\n          cVar1 = local_f1;\n        }" ({ "{") (expression_statement "local_ec = local_d8 + -0x289c;" (assignment_expression "local_ec = local_d8 + -0x289c" (identifier "local_ec") (= "=") (binary_expression "local_d8 + -0x289c" (identifier "local_d8") (+ "+") (number_literal "-0x289c"))) (; ";")) (do_statement "do {\n            local_e8 = local_dc + 0x5c;\n            puVar5 = param_11;\n            if (local_e8 != iVar4) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;\n              puVar5 = (undefined1 *)FUN_001e5200();\n              *puVar5 = 1;\n              *(undefined4 *)(puVar5 + 8) = 0;\n              *(undefined4 *)(puVar5 + 0xc) = 0;\n              *(undefined4 *)(puVar5 + 0x10) = 0;\n              *(undefined4 *)(puVar5 + 4) = 1;\n            }\n            *(undefined4 *)(puVar7 + -0x10) = 0x50;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16db2d;\n            piVar3 = (int *)FUN_001e5200();\n            piVar3[1] = 0;\n            piVar3[2] = (int)(piVar3 + 4);\n            piVar3[3] = 0;\n            *piVar3 = (int)local_ec;\n            piVar3[0xc] = param_4;\n            piVar3[9] = param_6;\n            piVar3[0xe] = param_7;\n            piVar3[10] = param_2;\n            piVar3[0x12] = (int)local_e4;\n            piVar3[0xb] = param_3;\n            *(undefined1 *)(piVar3 + 4) = 0;\n            *(undefined1 *)(piVar3 + 8) = 0;\n            piVar3[0xd] = 0;\n            piVar3[0xf] = local_dc;\n            piVar3[0x10] = param_8;\n            piVar3[0x11] = 0;\n            piVar3[0x13] = (int)puVar5;\n            *(int **)(puVar7 + -0xc) = piVar3;\n            *(undefined4 *)(puVar7 + -0x10) = param_1;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16dba5;\n            FUN_001906c0();\n            if (local_24 == (int *)0x0) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;\n              local_24 = (int *)FUN_001e5200();\n              *local_24 = 0;\n              local_24[1] = 0;\n              local_24[2] = 0;\n              *(undefined2 *)(local_24 + 3) = 0;\n              local_24[4] = 0;\n              iVar4 = 0;\n            }\n            else {\n              iVar4 = local_24[1];\n            }\n            local_dc = local_e8;\n            local_e4 = puVar5;\n          } while (local_e8 != iVar4);" (do "do") (compound_statement "{\n            local_e8 = local_dc + 0x5c;\n            puVar5 = param_11;\n            if (local_e8 != iVar4) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;\n              puVar5 = (undefined1 *)FUN_001e5200();\n              *puVar5 = 1;\n              *(undefined4 *)(puVar5 + 8) = 0;\n              *(undefined4 *)(puVar5 + 0xc) = 0;\n              *(undefined4 *)(puVar5 + 0x10) = 0;\n              *(undefined4 *)(puVar5 + 4) = 1;\n            }\n            *(undefined4 *)(puVar7 + -0x10) = 0x50;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16db2d;\n            piVar3 = (int *)FUN_001e5200();\n            piVar3[1] = 0;\n            piVar3[2] = (int)(piVar3 + 4);\n            piVar3[3] = 0;\n            *piVar3 = (int)local_ec;\n            piVar3[0xc] = param_4;\n            piVar3[9] = param_6;\n            piVar3[0xe] = param_7;\n            piVar3[10] = param_2;\n            piVar3[0x12] = (int)local_e4;\n            piVar3[0xb] = param_3;\n            *(undefined1 *)(piVar3 + 4) = 0;\n            *(undefined1 *)(piVar3 + 8) = 0;\n            piVar3[0xd] = 0;\n            piVar3[0xf] = local_dc;\n            piVar3[0x10] = param_8;\n            piVar3[0x11] = 0;\n            piVar3[0x13] = (int)puVar5;\n            *(int **)(puVar7 + -0xc) = piVar3;\n            *(undefined4 *)(puVar7 + -0x10) = param_1;\n            *(undefined4 *)(puVar7 + -0x14) = 0x16dba5;\n            FUN_001906c0();\n            if (local_24 == (int *)0x0) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;\n              local_24 = (int *)FUN_001e5200();\n              *local_24 = 0;\n              local_24[1] = 0;\n              local_24[2] = 0;\n              *(undefined2 *)(local_24 + 3) = 0;\n              local_24[4] = 0;\n              iVar4 = 0;\n            }\n            else {\n              iVar4 = local_24[1];\n            }\n            local_dc = local_e8;\n            local_e4 = puVar5;\n          }" ({ "{") (expression_statement "local_e8 = local_dc + 0x5c;" (assignment_expression "local_e8 = local_dc + 0x5c" (identifier "local_e8") (= "=") (binary_expression "local_dc + 0x5c" (identifier "local_dc") (+ "+") (number_literal "0x5c"))) (; ";")) (expression_statement "puVar5 = param_11;" (assignment_expression "puVar5 = param_11" (identifier "puVar5") (= "=") (identifier "param_11")) (; ";")) (if_statement "if (local_e8 != iVar4) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;\n              puVar5 = (undefined1 *)FUN_001e5200();\n              *puVar5 = 1;\n              *(undefined4 *)(puVar5 + 8) = 0;\n              *(undefined4 *)(puVar5 + 0xc) = 0;\n              *(undefined4 *)(puVar5 + 0x10) = 0;\n              *(undefined4 *)(puVar5 + 4) = 1;\n            }" (if "if") (parenthesized_expression "(local_e8 != iVar4)" (( "(") (binary_expression "local_e8 != iVar4" (identifier "local_e8") (!= "!=") (identifier "iVar4")) () ")")) (compound_statement "{\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;\n              puVar5 = (undefined1 *)FUN_001e5200();\n              *puVar5 = 1;\n              *(undefined4 *)(puVar5 + 8) = 0;\n              *(undefined4 *)(puVar5 + 0xc) = 0;\n              *(undefined4 *)(puVar5 + 0x10) = 0;\n              *(undefined4 *)(puVar5 + 4) = 1;\n            }" ({ "{") (expression_statement "*(undefined4 *)(puVar7 + -0x10) = 0x14;" (assignment_expression "*(undefined4 *)(puVar7 + -0x10) = 0x14" (pointer_expression "*(undefined4 *)(puVar7 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar7 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x10)" (( "(") (binary_expression "puVar7 + -0x10" (identifier "puVar7") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0x14")) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16daf7;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16daf7" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar7 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x14)" (( "(") (binary_expression "puVar7 + -0x14" (identifier "puVar7") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x16daf7")) (; ";")) (expression_statement "puVar5 = (undefined1 *)FUN_001e5200();" (assignment_expression "puVar5 = (undefined1 *)FUN_001e5200()" (identifier "puVar5") (= "=") (cast_expression "(undefined1 *)FUN_001e5200()" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001e5200()" (identifier "FUN_001e5200") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "*puVar5 = 1;" (assignment_expression "*puVar5 = 1" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(puVar5 + 8) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + 8) = 0" (pointer_expression "*(undefined4 *)(puVar5 + 8)" (* "*") (cast_expression "(undefined4 *)(puVar5 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 8)" (( "(") (binary_expression "puVar5 + 8" (identifier "puVar5") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(puVar5 + 0xc)" (* "*") (cast_expression "(undefined4 *)(puVar5 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 0xc)" (( "(") (binary_expression "puVar5 + 0xc" (identifier "puVar5") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar5 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + 0x10) = 0" (pointer_expression "*(undefined4 *)(puVar5 + 0x10)" (* "*") (cast_expression "(undefined4 *)(puVar5 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 0x10)" (( "(") (binary_expression "puVar5 + 0x10" (identifier "puVar5") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar5 + 4) = 1;" (assignment_expression "*(undefined4 *)(puVar5 + 4) = 1" (pointer_expression "*(undefined4 *)(puVar5 + 4)" (* "*") (cast_expression "(undefined4 *)(puVar5 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 4)" (( "(") (binary_expression "puVar5 + 4" (identifier "puVar5") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(puVar7 + -0x10) = 0x50;" (assignment_expression "*(undefined4 *)(puVar7 + -0x10) = 0x50" (pointer_expression "*(undefined4 *)(puVar7 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar7 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x10)" (( "(") (binary_expression "puVar7 + -0x10" (identifier "puVar7") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0x50")) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16db2d;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16db2d" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar7 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x14)" (( "(") (binary_expression "puVar7 + -0x14" (identifier "puVar7") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x16db2d")) (; ";")) (expression_statement "piVar3 = (int *)FUN_001e5200();" (assignment_expression "piVar3 = (int *)FUN_001e5200()" (identifier "piVar3") (= "=") (cast_expression "(int *)FUN_001e5200()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001e5200()" (identifier "FUN_001e5200") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "piVar3[1] = 0;" (assignment_expression "piVar3[1] = 0" (subscript_expression "piVar3[1]" (identifier "piVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar3[2] = (int)(piVar3 + 4);" (assignment_expression "piVar3[2] = (int)(piVar3 + 4)" (subscript_expression "piVar3[2]" (identifier "piVar3") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(int)(piVar3 + 4)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(piVar3 + 4)" (( "(") (binary_expression "piVar3 + 4" (identifier "piVar3") (+ "+") (number_literal "4")) () ")")))) (; ";")) (expression_statement "piVar3[3] = 0;" (assignment_expression "piVar3[3] = 0" (subscript_expression "piVar3[3]" (identifier "piVar3") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*piVar3 = (int)local_ec;" (assignment_expression "*piVar3 = (int)local_ec" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (= "=") (cast_expression "(int)local_ec" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_ec"))) (; ";")) (expression_statement "piVar3[0xc] = param_4;" (assignment_expression "piVar3[0xc] = param_4" (subscript_expression "piVar3[0xc]" (identifier "piVar3") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "param_4")) (; ";")) (expression_statement "piVar3[9] = param_6;" (assignment_expression "piVar3[9] = param_6" (subscript_expression "piVar3[9]" (identifier "piVar3") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "param_6")) (; ";")) (expression_statement "piVar3[0xe] = param_7;" (assignment_expression "piVar3[0xe] = param_7" (subscript_expression "piVar3[0xe]" (identifier "piVar3") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "param_7")) (; ";")) (expression_statement "piVar3[10] = param_2;" (assignment_expression "piVar3[10] = param_2" (subscript_expression "piVar3[10]" (identifier "piVar3") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "param_2")) (; ";")) (expression_statement "piVar3[0x12] = (int)local_e4;" (assignment_expression "piVar3[0x12] = (int)local_e4" (subscript_expression "piVar3[0x12]" (identifier "piVar3") ([ "[") (number_literal "0x12") (] "]")) (= "=") (cast_expression "(int)local_e4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_e4"))) (; ";")) (expression_statement "piVar3[0xb] = param_3;" (assignment_expression "piVar3[0xb] = param_3" (subscript_expression "piVar3[0xb]" (identifier "piVar3") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "param_3")) (; ";")) (expression_statement "*(undefined1 *)(piVar3 + 4) = 0;" (assignment_expression "*(undefined1 *)(piVar3 + 4) = 0" (pointer_expression "*(undefined1 *)(piVar3 + 4)" (* "*") (cast_expression "(undefined1 *)(piVar3 + 4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3 + 4)" (( "(") (binary_expression "piVar3 + 4" (identifier "piVar3") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(piVar3 + 8) = 0;" (assignment_expression "*(undefined1 *)(piVar3 + 8) = 0" (pointer_expression "*(undefined1 *)(piVar3 + 8)" (* "*") (cast_expression "(undefined1 *)(piVar3 + 8)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3 + 8)" (( "(") (binary_expression "piVar3 + 8" (identifier "piVar3") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar3[0xd] = 0;" (assignment_expression "piVar3[0xd] = 0" (subscript_expression "piVar3[0xd]" (identifier "piVar3") ([ "[") (number_literal "0xd") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar3[0xf] = local_dc;" (assignment_expression "piVar3[0xf] = local_dc" (subscript_expression "piVar3[0xf]" (identifier "piVar3") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "local_dc")) (; ";")) (expression_statement "piVar3[0x10] = param_8;" (assignment_expression "piVar3[0x10] = param_8" (subscript_expression "piVar3[0x10]" (identifier "piVar3") ([ "[") (number_literal "0x10") (] "]")) (= "=") (identifier "param_8")) (; ";")) (expression_statement "piVar3[0x11] = 0;" (assignment_expression "piVar3[0x11] = 0" (subscript_expression "piVar3[0x11]" (identifier "piVar3") ([ "[") (number_literal "0x11") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar3[0x13] = (int)puVar5;" (assignment_expression "piVar3[0x13] = (int)puVar5" (subscript_expression "piVar3[0x13]" (identifier "piVar3") ([ "[") (number_literal "0x13") (] "]")) (= "=") (cast_expression "(int)puVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar5"))) (; ";")) (expression_statement "*(int **)(puVar7 + -0xc) = piVar3;" (assignment_expression "*(int **)(puVar7 + -0xc) = piVar3" (pointer_expression "*(int **)(puVar7 + -0xc)" (* "*") (cast_expression "(int **)(puVar7 + -0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar7 + -0xc)" (( "(") (binary_expression "puVar7 + -0xc" (identifier "puVar7") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "piVar3")) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + -0x10) = param_1;" (assignment_expression "*(undefined4 *)(puVar7 + -0x10) = param_1" (pointer_expression "*(undefined4 *)(puVar7 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar7 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x10)" (( "(") (binary_expression "puVar7 + -0x10" (identifier "puVar7") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16dba5;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16dba5" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar7 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x14)" (( "(") (binary_expression "puVar7 + -0x14" (identifier "puVar7") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x16dba5")) (; ";")) (expression_statement "FUN_001906c0();" (call_expression "FUN_001906c0()" (identifier "FUN_001906c0") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (local_24 == (int *)0x0) {\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;\n              local_24 = (int *)FUN_001e5200();\n              *local_24 = 0;\n              local_24[1] = 0;\n              local_24[2] = 0;\n              *(undefined2 *)(local_24 + 3) = 0;\n              local_24[4] = 0;\n              iVar4 = 0;\n            }\n            else {\n              iVar4 = local_24[1];\n            }" (if "if") (parenthesized_expression "(local_24 == (int *)0x0)" (( "(") (binary_expression "local_24 == (int *)0x0" (identifier "local_24") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              *(undefined4 *)(puVar7 + -0x10) = 0x14;\n              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;\n              local_24 = (int *)FUN_001e5200();\n              *local_24 = 0;\n              local_24[1] = 0;\n              local_24[2] = 0;\n              *(undefined2 *)(local_24 + 3) = 0;\n              local_24[4] = 0;\n              iVar4 = 0;\n            }" ({ "{") (expression_statement "*(undefined4 *)(puVar7 + -0x10) = 0x14;" (assignment_expression "*(undefined4 *)(puVar7 + -0x10) = 0x14" (pointer_expression "*(undefined4 *)(puVar7 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar7 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x10)" (( "(") (binary_expression "puVar7 + -0x10" (identifier "puVar7") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0x14")) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16dc00;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16dc00" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar7 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x14)" (( "(") (binary_expression "puVar7 + -0x14" (identifier "puVar7") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x16dc00")) (; ";")) (expression_statement "local_24 = (int *)FUN_001e5200();" (assignment_expression "local_24 = (int *)FUN_001e5200()" (identifier "local_24") (= "=") (cast_expression "(int *)FUN_001e5200()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001e5200()" (identifier "FUN_001e5200") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "*local_24 = 0;" (assignment_expression "*local_24 = 0" (pointer_expression "*local_24" (* "*") (identifier "local_24")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_24[1] = 0;" (assignment_expression "local_24[1] = 0" (subscript_expression "local_24[1]" (identifier "local_24") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_24[2] = 0;" (assignment_expression "local_24[2] = 0" (subscript_expression "local_24[2]" (identifier "local_24") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined2 *)(local_24 + 3) = 0;" (assignment_expression "*(undefined2 *)(local_24 + 3) = 0" (pointer_expression "*(undefined2 *)(local_24 + 3)" (* "*") (cast_expression "(undefined2 *)(local_24 + 3)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_24 + 3)" (( "(") (binary_expression "local_24 + 3" (identifier "local_24") (+ "+") (number_literal "3")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_24[4] = 0;" (assignment_expression "local_24[4] = 0" (subscript_expression "local_24[4]" (identifier "local_24") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n              iVar4 = local_24[1];\n            }" (else "else") (compound_statement "{\n              iVar4 = local_24[1];\n            }" ({ "{") (expression_statement "iVar4 = local_24[1];" (assignment_expression "iVar4 = local_24[1]" (identifier "iVar4") (= "=") (subscript_expression "local_24[1]" (identifier "local_24") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}")))) (expression_statement "local_dc = local_e8;" (assignment_expression "local_dc = local_e8" (identifier "local_dc") (= "=") (identifier "local_e8")) (; ";")) (expression_statement "local_e4 = puVar5;" (assignment_expression "local_e4 = puVar5" (identifier "local_e4") (= "=") (identifier "puVar5")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_e8 != iVar4)" (( "(") (binary_expression "local_e8 != iVar4" (identifier "local_e8") (!= "!=") (identifier "iVar4")) () ")")) (; ";")) (expression_statement "*param_12 = 1;" (assignment_expression "*param_12 = 1" (pointer_expression "*param_12" (* "*") (identifier "param_12")) (= "=") (number_literal "1")) (; ";")) (expression_statement "cVar1 = local_f1;" (assignment_expression "cVar1 = local_f1" (identifier "cVar1") (= "=") (identifier "local_f1")) (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n      cVar1 = local_58;\n      if (local_58 != '\0') {\n        *(int *)(puVar7 + -0xc) = param_10;\n        *(char **)(puVar7 + -0x10) = param_9;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc84;\n        FUN_00142200();\n        *(undefined1 **)(puVar7 + -0xc) = param_11;\n        *(int *)(puVar7 + -0x10) = param_8;\n        *(char **)(puVar7 + -0x14) = param_9;\n        *(int *)(puVar7 + -0x18) = param_7;\n        *(undefined4 *)(puVar7 + -0x1c) = param_5;\n        *(int *)(puVar7 + -0x20) = param_4;\n        *(int *)(puVar7 + -0x24) = param_3;\n        *(int *)(puVar7 + -0x28) = param_2;\n        *(int *)(puVar7 + -0x2c) = param_6;\n        *(undefined4 *)(puVar7 + -0x30) = param_1;\n        *(undefined4 *)(puVar7 + -0x34) = 0x16dca7;\n        FUN_00142290();\n        cVar1 = local_f1;\n      }\n    }" (else "else") (compound_statement "{\n      cVar1 = local_58;\n      if (local_58 != '\0') {\n        *(int *)(puVar7 + -0xc) = param_10;\n        *(char **)(puVar7 + -0x10) = param_9;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc84;\n        FUN_00142200();\n        *(undefined1 **)(puVar7 + -0xc) = param_11;\n        *(int *)(puVar7 + -0x10) = param_8;\n        *(char **)(puVar7 + -0x14) = param_9;\n        *(int *)(puVar7 + -0x18) = param_7;\n        *(undefined4 *)(puVar7 + -0x1c) = param_5;\n        *(int *)(puVar7 + -0x20) = param_4;\n        *(int *)(puVar7 + -0x24) = param_3;\n        *(int *)(puVar7 + -0x28) = param_2;\n        *(int *)(puVar7 + -0x2c) = param_6;\n        *(undefined4 *)(puVar7 + -0x30) = param_1;\n        *(undefined4 *)(puVar7 + -0x34) = 0x16dca7;\n        FUN_00142290();\n        cVar1 = local_f1;\n      }\n    }" ({ "{") (expression_statement "cVar1 = local_58;" (assignment_expression "cVar1 = local_58" (identifier "cVar1") (= "=") (identifier "local_58")) (; ";")) (if_statement "if (local_58 != '\0') {\n        *(int *)(puVar7 + -0xc) = param_10;\n        *(char **)(puVar7 + -0x10) = param_9;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc84;\n        FUN_00142200();\n        *(undefined1 **)(puVar7 + -0xc) = param_11;\n        *(int *)(puVar7 + -0x10) = param_8;\n        *(char **)(puVar7 + -0x14) = param_9;\n        *(int *)(puVar7 + -0x18) = param_7;\n        *(undefined4 *)(puVar7 + -0x1c) = param_5;\n        *(int *)(puVar7 + -0x20) = param_4;\n        *(int *)(puVar7 + -0x24) = param_3;\n        *(int *)(puVar7 + -0x28) = param_2;\n        *(int *)(puVar7 + -0x2c) = param_6;\n        *(undefined4 *)(puVar7 + -0x30) = param_1;\n        *(undefined4 *)(puVar7 + -0x34) = 0x16dca7;\n        FUN_00142290();\n        cVar1 = local_f1;\n      }" (if "if") (parenthesized_expression "(local_58 != '\0')" (( "(") (binary_expression "local_58 != '\0'" (identifier "local_58") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        *(int *)(puVar7 + -0xc) = param_10;\n        *(char **)(puVar7 + -0x10) = param_9;\n        *(undefined4 *)(puVar7 + -0x14) = 0x16dc84;\n        FUN_00142200();\n        *(undefined1 **)(puVar7 + -0xc) = param_11;\n        *(int *)(puVar7 + -0x10) = param_8;\n        *(char **)(puVar7 + -0x14) = param_9;\n        *(int *)(puVar7 + -0x18) = param_7;\n        *(undefined4 *)(puVar7 + -0x1c) = param_5;\n        *(int *)(puVar7 + -0x20) = param_4;\n        *(int *)(puVar7 + -0x24) = param_3;\n        *(int *)(puVar7 + -0x28) = param_2;\n        *(int *)(puVar7 + -0x2c) = param_6;\n        *(undefined4 *)(puVar7 + -0x30) = param_1;\n        *(undefined4 *)(puVar7 + -0x34) = 0x16dca7;\n        FUN_00142290();\n        cVar1 = local_f1;\n      }" ({ "{") (expression_statement "*(int *)(puVar7 + -0xc) = param_10;" (assignment_expression "*(int *)(puVar7 + -0xc) = param_10" (pointer_expression "*(int *)(puVar7 + -0xc)" (* "*") (cast_expression "(int *)(puVar7 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0xc)" (( "(") (binary_expression "puVar7 + -0xc" (identifier "puVar7") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "param_10")) (; ";")) (expression_statement "*(char **)(puVar7 + -0x10) = param_9;" (assignment_expression "*(char **)(puVar7 + -0x10) = param_9" (pointer_expression "*(char **)(puVar7 + -0x10)" (* "*") (cast_expression "(char **)(puVar7 + -0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar7 + -0x10)" (( "(") (binary_expression "puVar7 + -0x10" (identifier "puVar7") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "param_9")) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16dc84;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16dc84" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar7 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x14)" (( "(") (binary_expression "puVar7 + -0x14" (identifier "puVar7") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x16dc84")) (; ";")) (expression_statement "FUN_00142200();" (call_expression "FUN_00142200()" (identifier "FUN_00142200") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined1 **)(puVar7 + -0xc) = param_11;" (assignment_expression "*(undefined1 **)(puVar7 + -0xc) = param_11" (pointer_expression "*(undefined1 **)(puVar7 + -0xc)" (* "*") (cast_expression "(undefined1 **)(puVar7 + -0xc)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar7 + -0xc)" (( "(") (binary_expression "puVar7 + -0xc" (identifier "puVar7") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "param_11")) (; ";")) (expression_statement "*(int *)(puVar7 + -0x10) = param_8;" (assignment_expression "*(int *)(puVar7 + -0x10) = param_8" (pointer_expression "*(int *)(puVar7 + -0x10)" (* "*") (cast_expression "(int *)(puVar7 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x10)" (( "(") (binary_expression "puVar7 + -0x10" (identifier "puVar7") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "param_8")) (; ";")) (expression_statement "*(char **)(puVar7 + -0x14) = param_9;" (assignment_expression "*(char **)(puVar7 + -0x14) = param_9" (pointer_expression "*(char **)(puVar7 + -0x14)" (* "*") (cast_expression "(char **)(puVar7 + -0x14)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar7 + -0x14)" (( "(") (binary_expression "puVar7 + -0x14" (identifier "puVar7") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "param_9")) (; ";")) (expression_statement "*(int *)(puVar7 + -0x18) = param_7;" (assignment_expression "*(int *)(puVar7 + -0x18) = param_7" (pointer_expression "*(int *)(puVar7 + -0x18)" (* "*") (cast_expression "(int *)(puVar7 + -0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x18)" (( "(") (binary_expression "puVar7 + -0x18" (identifier "puVar7") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "param_7")) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + -0x1c) = param_5;" (assignment_expression "*(undefined4 *)(puVar7 + -0x1c) = param_5" (pointer_expression "*(undefined4 *)(puVar7 + -0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar7 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x1c)" (( "(") (binary_expression "puVar7 + -0x1c" (identifier "puVar7") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "param_5")) (; ";")) (expression_statement "*(int *)(puVar7 + -0x20) = param_4;" (assignment_expression "*(int *)(puVar7 + -0x20) = param_4" (pointer_expression "*(int *)(puVar7 + -0x20)" (* "*") (cast_expression "(int *)(puVar7 + -0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x20)" (( "(") (binary_expression "puVar7 + -0x20" (identifier "puVar7") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (expression_statement "*(int *)(puVar7 + -0x24) = param_3;" (assignment_expression "*(int *)(puVar7 + -0x24) = param_3" (pointer_expression "*(int *)(puVar7 + -0x24)" (* "*") (cast_expression "(int *)(puVar7 + -0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x24)" (( "(") (binary_expression "puVar7 + -0x24" (identifier "puVar7") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (expression_statement "*(int *)(puVar7 + -0x28) = param_2;" (assignment_expression "*(int *)(puVar7 + -0x28) = param_2" (pointer_expression "*(int *)(puVar7 + -0x28)" (* "*") (cast_expression "(int *)(puVar7 + -0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x28)" (( "(") (binary_expression "puVar7 + -0x28" (identifier "puVar7") (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(int *)(puVar7 + -0x2c) = param_6;" (assignment_expression "*(int *)(puVar7 + -0x2c) = param_6" (pointer_expression "*(int *)(puVar7 + -0x2c)" (* "*") (cast_expression "(int *)(puVar7 + -0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x2c)" (( "(") (binary_expression "puVar7 + -0x2c" (identifier "puVar7") (+ "+") (number_literal "-0x2c")) () ")")))) (= "=") (identifier "param_6")) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + -0x30) = param_1;" (assignment_expression "*(undefined4 *)(puVar7 + -0x30) = param_1" (pointer_expression "*(undefined4 *)(puVar7 + -0x30)" (* "*") (cast_expression "(undefined4 *)(puVar7 + -0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x30)" (( "(") (binary_expression "puVar7 + -0x30" (identifier "puVar7") (+ "+") (number_literal "-0x30")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + -0x34) = 0x16dca7;" (assignment_expression "*(undefined4 *)(puVar7 + -0x34) = 0x16dca7" (pointer_expression "*(undefined4 *)(puVar7 + -0x34)" (* "*") (cast_expression "(undefined4 *)(puVar7 + -0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x34)" (( "(") (binary_expression "puVar7 + -0x34" (identifier "puVar7") (+ "+") (number_literal "-0x34")) () ")")))) (= "=") (number_literal "0x16dca7")) (; ";")) (expression_statement "FUN_00142290();" (call_expression "FUN_00142290()" (identifier "FUN_00142290") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "cVar1 = local_f1;" (assignment_expression "cVar1 = local_f1" (identifier "cVar1") (= "=") (identifier "local_f1")) (; ";")) (} "}"))) (} "}")))) (if_statement "if (local_3c[3] != 0) {\n      *(int *)(puVar7 + -0x10) = local_3c[3];\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da23;\n      FUN_001e6db0();\n    }" (if "if") (parenthesized_expression "(local_3c[3] != 0)" (( "(") (binary_expression "local_3c[3] != 0" (subscript_expression "local_3c[3]" (identifier "local_3c") ([ "[") (number_literal "3") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      *(int *)(puVar7 + -0x10) = local_3c[3];\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da23;\n      FUN_001e6db0();\n    }" ({ "{") (expression_statement "*(int *)(puVar7 + -0x10) = local_3c[3];" (assignment_expression "*(int *)(puVar7 + -0x10) = local_3c[3]" (pointer_expression "*(int *)(puVar7 + -0x10)" (* "*") (cast_expression "(int *)(puVar7 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x10)" (( "(") (binary_expression "puVar7 + -0x10" (identifier "puVar7") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (subscript_expression "local_3c[3]" (identifier "local_3c") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16da23;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16da23" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar7 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x14)" (( "(") (binary_expression "puVar7 + -0x14" (identifier "puVar7") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x16da23")) (; ";")) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" (identifier "FUN_001e6db0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_3c[0] != 0) {\n      *(int *)(puVar7 + -0x10) = local_3c[0];\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da3c;\n      FUN_001e6db0();\n    }" (if "if") (parenthesized_expression "(local_3c[0] != 0)" (( "(") (binary_expression "local_3c[0] != 0" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      *(int *)(puVar7 + -0x10) = local_3c[0];\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da3c;\n      FUN_001e6db0();\n    }" ({ "{") (expression_statement "*(int *)(puVar7 + -0x10) = local_3c[0];" (assignment_expression "*(int *)(puVar7 + -0x10) = local_3c[0]" (pointer_expression "*(int *)(puVar7 + -0x10)" (* "*") (cast_expression "(int *)(puVar7 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x10)" (( "(") (binary_expression "puVar7 + -0x10" (identifier "puVar7") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16da3c;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16da3c" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar7 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x14)" (( "(") (binary_expression "puVar7 + -0x14" (identifier "puVar7") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x16da3c")) (; ";")) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" (identifier "FUN_001e6db0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_bc != local_f0) {\n      *(undefined1 **)(puVar7 + -0x10) = local_bc;\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da5c;\n      FUN_001e6db0();\n    }" (if "if") (parenthesized_expression "(local_bc != local_f0)" (( "(") (binary_expression "local_bc != local_f0" (identifier "local_bc") (!= "!=") (identifier "local_f0")) () ")")) (compound_statement "{\n      *(undefined1 **)(puVar7 + -0x10) = local_bc;\n      *(undefined4 *)(puVar7 + -0x14) = 0x16da5c;\n      FUN_001e6db0();\n    }" ({ "{") (expression_statement "*(undefined1 **)(puVar7 + -0x10) = local_bc;" (assignment_expression "*(undefined1 **)(puVar7 + -0x10) = local_bc" (pointer_expression "*(undefined1 **)(puVar7 + -0x10)" (* "*") (cast_expression "(undefined1 **)(puVar7 + -0x10)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar7 + -0x10)" (( "(") (binary_expression "puVar7 + -0x10" (identifier "puVar7") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_bc")) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16da5c;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16da5c" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar7 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x14)" (( "(") (binary_expression "puVar7 + -0x14" (identifier "puVar7") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x16da5c")) (; ";")) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" (identifier "FUN_001e6db0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return cVar1;" (return "return") (identifier "cVar1") (; ";")) (} "}"))) (expression_statement "*(uint *)(puVar7 + -4) = (uint)local_5a;" (assignment_expression "*(uint *)(puVar7 + -4) = (uint)local_5a" (pointer_expression "*(uint *)(puVar7 + -4)" (* "*") (cast_expression "(uint *)(puVar7 + -4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -4)" (( "(") (binary_expression "puVar7 + -4" (identifier "puVar7") (+ "+") (number_literal "-4")) () ")")))) (= "=") (cast_expression "(uint)local_5a" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_5a"))) (; ";")) (expression_statement "*(undefined ***)(puVar7 + -8) = local_d8 + -0x3d7a0;" (assignment_expression "*(undefined ***)(puVar7 + -8) = local_d8 + -0x3d7a0" (pointer_expression "*(undefined ***)(puVar7 + -8)" (* "*") (cast_expression "(undefined ***)(puVar7 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar7 + -8)" (( "(") (binary_expression "puVar7 + -8" (identifier "puVar7") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_d8 + -0x3d7a0" (identifier "local_d8") (+ "+") (number_literal "-0x3d7a0"))) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + -0xc) = 0x828;" (assignment_expression "*(undefined4 *)(puVar7 + -0xc) = 0x828" (pointer_expression "*(undefined4 *)(puVar7 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar7 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0xc)" (( "(") (binary_expression "puVar7 + -0xc" (identifier "puVar7") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x828")) (; ";")) (expression_statement "*(int *)(puVar7 + -0x10) = (int)local_d8 + -0x106ebb;" (assignment_expression "*(int *)(puVar7 + -0x10) = (int)local_d8 + -0x106ebb" (pointer_expression "*(int *)(puVar7 + -0x10)" (* "*") (cast_expression "(int *)(puVar7 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x10)" (( "(") (binary_expression "puVar7 + -0x10" (identifier "puVar7") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_d8 + -0x106ebb" (cast_expression "(int)local_d8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_d8")) (+ "+") (number_literal "-0x106ebb"))) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + -0x14) = 0x16dcce;" (assignment_expression "*(undefined4 *)(puVar7 + -0x14) = 0x16dcce" (pointer_expression "*(undefined4 *)(puVar7 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar7 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x14)" (( "(") (binary_expression "puVar7 + -0x14" (identifier "puVar7") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x16dcce")) (; ";")) (expression_statement "FUN_00069d00();" (call_expression "FUN_00069d00()" (identifier "FUN_00069d00") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

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

bool var_27::function_1
               (type_1 *workqueue,type_2 *symtab,type_3 *layout,type_4 *dirsearch,
               int dirindex,type_5 *input_objects,type_6 *mapfile,type_7 *var_12,
               type_8 *input_argument,type_9 *input_file,type_10 *next_blocker,
               bool *used_next_blocker)

{
  bool var_13;
  bool var_17;
  char cVar3;
  type_11 arg_serial;
  type_12 var_9;
  type_13 mtime;
  type_14 *var_2;
  int var_16;
  type_12 var_22;
  type_15 *pTVar7;
  type_15 *t;
  char *format;
  type_12 var_20;
  type_15 *local_e4;
  type_12 var_21;
  type_16 local_d4;
  int local_d0;
  type_17 local_c0;
  type_18 input_string;
  type_19 lex;
  type_20 closure;
  
  *used_next_blocker = false;
  input_string._M_string_length = 0;
  input_string.field_2._M_local_buf[0] = '\0';
  input_string._M_dataplus._M_p = (type_12)&input_string.field_2;
                    /* try { // try from 0016d793 to 0016d86d has its CatchHandler @ 0016dced */
  Lex::var_1(input_file,&input_string);
  lex.mode_ = LINKER_SCRIPT;
  lex.first_token_ = 0x163;
  lex.input_string_ = input_string._M_dataplus._M_p;
  lex.current_ = input_string._M_dataplus._M_p;
  lex.linestart_ = input_string._M_dataplus._M_p;
  lex.input_length_ = input_string._M_string_length;
  var_2 = layout->incremental_inputs_;
  lex.token_.classification_ = TOKEN_INVALID;
  lex.token_.value_ = (char *)0x0;
  lex.token_.value_length_ = 0;
  lex.token_.opcode_ = 0;
  lex.token_.lineno_ = 0;
  lex.token_.charpos_ = 0;
  lex.lineno_ = 1;
  if (var_2 != (type_14 *)0x0) {
    File_read::var_3(&input_file->file_);
    if (input_argument->is_file_ == false) {
                    /* WARNING: Subroutine does not return */
      var_4("../../gold/options.h",0x828,"file");
    }
    arg_serial = (input_argument->file_).arg_serial_;
    var_2 = (type_14 *)var_5(0x20);
    (((type_18 *)&var_2->inputs_)->_M_dataplus)._M_p =
         (type_12)&((type_18 *)&var_2->inputs_)->field_2;
    var_9 = (input_file->file_).name_._M_dataplus._M_p;
                    /* try { // try from 0016d888 to 0016d88c has its CatchHandler @ 0016dcfb */
    std::__cxx11::basic_string<var_7,_std::char_traits<var_7>,_std::var_6<var_7>var_8>::
    _M_construct<var_7*>((basic_string<var_7,_std::char_traits<var_7>,_std::var_6<var_7>var_8> *)var_2,
                        var_9,var_9 + (input_file->file_).name_._M_string_length,0);
    *(type_21 *)((int)&(var_2->command_line_).field_2 + 4) = 0;
    *(type_21 *)((int)&(var_2->command_line_).field_2 + 8) = 0;
    mtime.nanoseconds = local_d0;
    mtime.seconds = local_d4;
                    /* try { // try from 0016d8be to 0016d8d6 has its CatchHandler @ 0016dced */
    Incremental_inputs::var_10
              (layout->incremental_inputs_,(type_22 *)var_2,arg_serial,mtime);
  }
  closure.skip_on_incompatible_target_ = type_9::var_11(input_file);
  closure.script_options_ = layout->script_options_;
  closure.in_group_ = var_12 != (type_7 *)0x0;
  closure.is_in_sysroot_ = input_file->is_in_sysroot_;
  var_13 = input_argument->is_file_;
  if (var_13 != false) {
    closure.version_script_info_ = &(closure.script_options_)->version_script_info_;
    closure.filename_ = (input_file->file_).name_._M_dataplus._M_p;
    closure.parsing_defsym_ = false;
    closure.posdep_options_.as_needed_ = (input_argument->file_).options_.as_needed_;
    closure.posdep_options_.Bdynamic_ = (input_argument->file_).options_.Bdynamic_;
    closure.posdep_options_._2_2_ = *(type_23 *)&(input_argument->file_).options_.field_0x2;
    closure.found_incompatible_target_ = false;
    closure.posdep_options_.format_enum_ = (input_argument->file_).options_.format_enum_;
    closure.command_line_ = (type_24 *)0x0;
    closure.posdep_options_.whole_archive_ = (input_argument->file_).options_.whole_archive_;
    closure.posdep_options_._9_3_ = *(type_25 *)&(input_argument->file_).options_.field_0x9;
    closure.posdep_options_.incremental_disposition_ =
         (input_argument->file_).options_.incremental_disposition_;
    closure.lineno_ = 0;
    closure.charpos_ = 0;
    closure.lex_ = &lex;
    closure.lex_mode_stack_.super__Vector_base<var_27::Lex::var_14,_std::var_6<var_27::Lex::var_14>var_8>.
    _M_impl._M_start = (type_12)0x0;
    closure.lex_mode_stack_.super__Vector_base<var_27::Lex::var_14,_std::var_6<var_27::Lex::var_14>var_8>.
    _M_impl._M_finish = (type_12)0x0;
    closure.lex_mode_stack_.super__Vector_base<var_27::Lex::var_14,_std::var_6<var_27::Lex::var_14>var_8>.
    _M_impl._M_end_of_storage = (type_12)0x0;
    closure.language_stack_.
    super__Vector_base<var_27::Version_script_info::type_17,_std::var_6<var_27::Version_script_info::type_17>var_8>
    ._M_impl._M_start = (type_12)0x0;
    closure.language_stack_.
    super__Vector_base<var_27::Version_script_info::type_17,_std::var_6<var_27::Version_script_info::type_17>var_8>
    ._M_impl._M_finish = (type_12)0x0;
    closure.language_stack_.
    super__Vector_base<var_27::Version_script_info::type_17,_std::var_6<var_27::Version_script_info::type_17>var_8>
    ._M_impl._M_end_of_storage = (type_12)0x0;
    closure.inputs_ = (type_26 *)0x0;
    local_c0 = LANGUAGE_C;
    closure.script_info_ = (type_22 *)var_2;
                    /* try { // try from 0016d9b7 to 0016d9d3 has its CatchHandler @ 0016dd02 */
    std::
    vector<var_27::Version_script_info::type_17,_std::var_6<var_27::Version_script_info::type_17>var_8>
    ::_M_realloc_insert<var_27::Version_script_info::type_17>
              (&closure.language_stack_,(type_27)0x0,&local_c0);
    local_c0 = lex.mode_;
    std::vector<var_27::Lex::var_14,_std::var_6<var_27::Lex::var_14>var_8>::emplace_back<var_27::Lex::var_14>
              (&closure.lex_mode_stack_,&local_c0);
    var_17 = (layout->script_options_->script_sections_).saw_sections_clause_;
                    /* try { // try from 0016d9f3 to 0016dca6 has its CatchHandler @ 0016dcf4 */
    var_16 = var_15(&closure);
    cVar3 = var_13;
    if (var_16 == 0) {
      if (((var_17 == false) &&
          ((layout->script_options_->script_sections_).saw_sections_clause_ != false)) &&
         (layout->have_added_input_section_ != false)) {
        var_9 = (input_file->file_).name_._M_dataplus._M_p;
        format = (char *)var_18("%s: SECTIONS seen after other input files; try -T/--script");
        var_19(format,var_9);
      }
      if (closure.inputs_ != (type_26 *)0x0) {
        local_e4 = (type_15 *)0x0;
        var_20 = ((closure.inputs_)->input_argument_list_).
                 super__Vector_base<var_27::type_8,_std::var_6<var_27::type_8>var_8>.
                 _M_impl._M_finish;
        var_21 = ((closure.inputs_)->input_argument_list_).
                   super__Vector_base<var_27::type_8,_std::var_6<var_27::type_8>var_8>.
                   _M_impl._M_start;
        if (var_20 != var_21) {
          do {
            var_22 = var_21 + 1;
            pTVar7 = (type_15 *)next_blocker;
            if (var_22 != var_20) {
              pTVar7 = (type_15 *)var_5(0x14);
              *(type_28 *)&pTVar7->_vptr_Task = 1;
              (pTVar7->name_)._M_dataplus._M_p = (type_12)0x0;
              (pTVar7->name_)._M_string_length = 0;
              (pTVar7->name_).field_2._M_allocated_capacity = 0;
              pTVar7->list_next_ = (type_15 *)0x1;
            }
            t = (type_15 *)var_5(0x50);
            t->list_next_ = (type_15 *)0x0;
            (t->name_)._M_dataplus._M_p = (type_12)&(t->name_).field_2;
            (t->name_)._M_string_length = 0;
            t->_vptr_Task = (type_29 **)&PTR__Read_symbols_00384d90;
            t[1].name_._M_string_length = (type_30)dirsearch;
            t[1]._vptr_Task = (type_29 **)input_objects;
            *(type_6 **)((int)&t[1].name_.field_2 + 4) = mapfile;
            t[1].list_next_ = (type_15 *)symtab;
            t[2]._vptr_Task = (type_29 **)local_e4;
            t[1].name_._M_dataplus._M_p = (type_12)layout;
            (t->name_).field_2._M_local_buf[0] = '\0';
            t->should_run_soon_ = false;
            t[1].name_.field_2._M_allocated_capacity = 0;
            *(type_12 *)((int)&t[1].name_.field_2 + 8) = var_21;
            *(type_7 **)((int)&t[1].name_.field_2 + 0xc) = var_12;
            *(type_21 *)&t[1].should_run_soon_ = 0;
            t[2].list_next_ = pTVar7;
            Workqueue::var_23(workqueue,t);
            if (closure.inputs_ == (type_26 *)0x0) {
              closure.inputs_ = (type_26 *)var_5(0x14);
              ((closure.inputs_)->input_argument_list_).
              super__Vector_base<var_27::type_8,_std::var_6<var_27::type_8>var_8>.
              _M_impl._M_start = (type_12)0x0;
              ((closure.inputs_)->input_argument_list_).
              super__Vector_base<var_27::type_8,_std::var_6<var_27::type_8>var_8>.
              _M_impl._M_finish = (type_12)0x0;
              ((closure.inputs_)->input_argument_list_).
              super__Vector_base<var_27::type_8,_std::var_6<var_27::type_8>var_8>.
              _M_impl._M_end_of_storage = (type_12)0x0;
              (closure.inputs_)->in_group_ = false;
              (closure.inputs_)->in_lib_ = false;
              (closure.inputs_)->file_count_ = 0;
              var_20 = (type_12)0x0;
            }
            else {
              var_20 = ((closure.inputs_)->input_argument_list_).
                       super__Vector_base<var_27::type_8,_std::var_6<var_27::type_8>var_8>
                       ._M_impl._M_finish;
            }
            local_e4 = pTVar7;
            var_21 = var_22;
          } while (var_22 != var_20);
          *used_next_blocker = true;
        }
      }
    }
    else {
      cVar3 = closure.found_incompatible_target_;
      if (closure.found_incompatible_target_ != false) {
        Read_symbols::var_24(input_argument,input_file);
        Read_symbols::var_25
                  (workqueue,input_objects,symtab,layout,dirsearch,dirindex,mapfile,input_argument,
                   var_12,next_blocker);
        cVar3 = var_13;
      }
    }
    if (closure.language_stack_.
        super__Vector_base<var_27::Version_script_info::type_17,_std::var_6<var_27::Version_script_info::type_17>var_8>
        ._M_impl._M_start != (type_12)0x0) {
      var_26(closure.language_stack_.
                      super__Vector_base<var_27::Version_script_info::type_17,_std::var_6<var_27::Version_script_info::type_17>var_8>
                      ._M_impl._M_start);
    }
    if (closure.lex_mode_stack_.
        super__Vector_base<var_27::type_19::var_14,_std::var_6<var_27::type_19::var_14>var_8>._M_impl._M_start !=
        (type_12)0x0) {
      var_26(closure.lex_mode_stack_.
                      super__Vector_base<var_27::type_19::var_14,_std::var_6<var_27::type_19::var_14>var_8>._M_impl.
                      _M_start);
    }
    if ((anon_union_16_2_edb7204a_for_basic_string<var_7,_std::char_traits<var_7>,_std::var_6<var_7>var_8>var_28
         *)input_string._M_dataplus._M_p != &input_string.field_2) {
      var_26(input_string._M_dataplus._M_p);
    }
    return (bool)cVar3;
  }
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0016dcc9 to 0016dcec has its CatchHandler @ 0016dced */
  var_4("../../gold/options.h",0x828,"file");
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) 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: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (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: (pointer_declarator declarator: (identifier)))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (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: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal)) (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (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))))) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (identifier) (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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: (char_literal (escape_sequence)))))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (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 (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (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: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (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: (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: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))))

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

char MASKED(undefined4 param_1,int param_2,int param_3,int param_4,undefined4 param_5,
                 int param_6,int param_7,int param_8,char *param_9,int param_10,undefined1 *param_11
                 ,undefined1 *param_12)

{
  char cVar1;
  undefined4 uVar2;
  int *piVar3;
  int iVar4;
  undefined1 *puVar5;
  undefined4 uVar6;
  undefined1 *puVar7;
  undefined1 auStack_100 [4];
  undefined1 auStack_fc [4];
  undefined4 *local_f8;
  char local_f1;
  undefined1 *local_f0;
  undefined **local_ec;
  int local_e8;
  undefined1 *local_e4;
  undefined4 local_e0;
  int local_dc;
  undefined **local_d8;
  undefined1 *local_d4;
  undefined4 local_d0;
  undefined4 local_c0;
  undefined1 *local_bc;
  undefined4 local_b8;
  undefined1 local_b4 [16];
  undefined1 *local_a4;
  undefined4 local_a0;
  undefined1 *local_9c;
  undefined4 local_98;
  undefined4 local_94;
  undefined4 local_90;
  undefined4 local_8c;
  undefined4 local_88;
  undefined4 local_84;
  undefined4 local_80;
  undefined4 local_7c;
  undefined4 local_78;
  undefined1 *local_74;
  undefined4 local_70;
  undefined4 local_6c;
  undefined4 local_68;
  undefined4 local_64;
  undefined4 local_60;
  undefined1 local_5c;
  undefined1 local_5b;
  byte local_5a;
  undefined1 local_59;
  char local_58;
  undefined4 local_54;
  int local_50;
  int local_4c;
  undefined1 **local_48;
  undefined4 local_44;
  undefined4 local_40;
  int local_3c [6];
  int *local_24;
  int *local_20;
  undefined4 uStack_14;
  
  local_f0 = local_b4;
  uStack_14 = 0x16d751;
  local_d8 = &__DT_PLTGOT;
  *param_12 = 0;
  local_b8 = 0;
  local_b4[0] = 0;
  local_bc = local_f0;
                    /* try { // try from 0016d793 to 0016d86d has its CatchHandler @ 0016dced */
  FUN_00168e00(param_10,&local_bc);
  puVar7 = auStack_fc;
  local_98 = 0;
  local_94 = 0x163;
  local_a4 = local_bc;
  local_9c = local_bc;
  local_74 = local_bc;
  local_a0 = local_b8;
  piVar3 = *(int **)(param_3 + 0x1d0);
  local_90 = 0;
  local_8c = 0;
  local_88 = 0;
  local_84 = 0;
  local_80 = 0;
  local_7c = 0;
  local_78 = 1;
  if (piVar3 != (int *)0x0) {
    FUN_00067c30(&local_d4,param_10 + 0x1c);
    local_e4 = local_d4;
    local_e0 = local_d0;
    if (*param_9 == '\0') {
                    /* WARNING: Subroutine does not return */
      FUN_00069d00((int)local_d8 + -0x106ebb,0x828,local_d8 + -0x3d7a0,local_d4);
    }
    local_dc = *(int *)(param_9 + 0x4c);
    piVar3 = (int *)FUN_001e5200(0x20);
    *piVar3 = (int)(piVar3 + 2);
                    /* try { // try from 0016d888 to 0016d88c has its CatchHandler @ 0016dcfb */
    FUN_000513a0(piVar3,*(int *)(param_10 + 0x1c),
                 *(int *)(param_10 + 0x20) + *(int *)(param_10 + 0x1c),0);
    piVar3[6] = 0;
    piVar3[7] = 0;
                    /* try { // try from 0016d8be to 0016d8d6 has its CatchHandler @ 0016dced */
    FUN_00072240(*(undefined4 *)(param_3 + 0x1d0),piVar3,local_dc,local_e4,local_e0);
    puVar7 = auStack_100;
  }
  *(int *)(puVar7 + -0x10) = param_10;
  *(undefined4 *)(puVar7 + -0x14) = 0x16d8d7;
  local_59 = FUN_00067bf0();
  local_dc = CONCAT31(local_dc._1_3_,local_59);
  local_50 = *(int *)(param_3 + 4);
  local_5b = param_8 != 0;
  local_5a = *(byte *)(param_10 + 0x8c);
  local_f1 = *param_9;
  if (local_f1 != '\0') {
    local_4c = local_50 + 0x68;
    local_70 = *(undefined4 *)(param_10 + 0x1c);
    local_5c = 0;
    local_6c = *(undefined4 *)(param_9 + 0x3c);
    local_58 = '\0';
    local_68 = *(undefined4 *)(param_9 + 0x40);
    local_54 = 0;
    local_64 = *(undefined4 *)(param_9 + 0x44);
    local_60 = *(undefined4 *)(param_9 + 0x48);
    local_44 = 0;
    local_40 = 0;
    local_48 = &local_a4;
    local_3c[0] = 0;
    local_3c[1] = 0;
    local_3c[2] = 0;
    local_3c[3] = 0;
    local_3c[4] = 0;
    local_3c[5] = 0;
    local_24 = (int *)0x0;
    local_c0 = 0;
    *(undefined4 **)(puVar7 + -8) = &local_c0;
    *(undefined4 *)(puVar7 + -0xc) = 0;
    *(int **)(puVar7 + -0x10) = local_3c + 3;
                    /* try { // try from 0016d9b7 to 0016d9d3 has its CatchHandler @ 0016dd02 */
    *(undefined4 *)(puVar7 + -0x14) = 0x16d9bc;
    local_20 = piVar3;
    FUN_0016f460();
    *(undefined4 **)(puVar7 + -0xc) = &local_c0;
    local_c0 = local_98;
    *(int **)(puVar7 + -0x10) = local_3c;
    *(undefined4 *)(puVar7 + -0x14) = 0x16d9d4;
    FUN_0016f700();
    cVar1 = *(char *)(*(int *)(param_3 + 4) + 0xac);
    local_f8 = &local_70;
    *(undefined4 **)(puVar7 + -0x10) = local_f8;
                    /* try { // try from 0016d9f3 to 0016dca6 has its CatchHandler @ 0016dcf4 */
    *(undefined4 *)(puVar7 + -0x14) = 0x16d9f8;
    iVar4 = FUN_00191d40();
    if (iVar4 == 0) {
      if (((cVar1 == '\0') && (*(char *)(*(int *)(param_3 + 4) + 0xac) != '\0')) &&
         (*(char *)(param_3 + 0x1c4) != '\0')) {
        uVar2 = *(undefined4 *)(param_10 + 0x1c);
        *(undefined ***)(puVar7 + -0x10) = local_d8 + -0x3d6c8;
        *(undefined4 *)(puVar7 + -0x14) = 0x16dc5d;
        uVar6 = gettext();
        *(undefined4 *)(puVar7 + -0xc) = uVar2;
        *(undefined4 *)(puVar7 + -0x10) = uVar6;
        *(undefined4 *)(puVar7 + -0x14) = 0x16dc66;
        FUN_000654b0();
      }
      cVar1 = local_f1;
      if (local_24 != (int *)0x0) {
        local_e4 = (undefined1 *)0x0;
        iVar4 = local_24[1];
        local_dc = *local_24;
        if (iVar4 != local_dc) {
          local_ec = local_d8 + -0x289c;
          do {
            local_e8 = local_dc + 0x5c;
            puVar5 = param_11;
            if (local_e8 != iVar4) {
              *(undefined4 *)(puVar7 + -0x10) = 0x14;
              *(undefined4 *)(puVar7 + -0x14) = 0x16daf7;
              puVar5 = (undefined1 *)FUN_001e5200();
              *puVar5 = 1;
              *(undefined4 *)(puVar5 + 8) = 0;
              *(undefined4 *)(puVar5 + 0xc) = 0;
              *(undefined4 *)(puVar5 + 0x10) = 0;
              *(undefined4 *)(puVar5 + 4) = 1;
            }
            *(undefined4 *)(puVar7 + -0x10) = 0x50;
            *(undefined4 *)(puVar7 + -0x14) = 0x16db2d;
            piVar3 = (int *)FUN_001e5200();
            piVar3[1] = 0;
            piVar3[2] = (int)(piVar3 + 4);
            piVar3[3] = 0;
            *piVar3 = (int)local_ec;
            piVar3[0xc] = param_4;
            piVar3[9] = param_6;
            piVar3[0xe] = param_7;
            piVar3[10] = param_2;
            piVar3[0x12] = (int)local_e4;
            piVar3[0xb] = param_3;
            *(undefined1 *)(piVar3 + 4) = 0;
            *(undefined1 *)(piVar3 + 8) = 0;
            piVar3[0xd] = 0;
            piVar3[0xf] = local_dc;
            piVar3[0x10] = param_8;
            piVar3[0x11] = 0;
            piVar3[0x13] = (int)puVar5;
            *(int **)(puVar7 + -0xc) = piVar3;
            *(undefined4 *)(puVar7 + -0x10) = param_1;
            *(undefined4 *)(puVar7 + -0x14) = 0x16dba5;
            FUN_001906c0();
            if (local_24 == (int *)0x0) {
              *(undefined4 *)(puVar7 + -0x10) = 0x14;
              *(undefined4 *)(puVar7 + -0x14) = 0x16dc00;
              local_24 = (int *)FUN_001e5200();
              *local_24 = 0;
              local_24[1] = 0;
              local_24[2] = 0;
              *(undefined2 *)(local_24 + 3) = 0;
              local_24[4] = 0;
              iVar4 = 0;
            }
            else {
              iVar4 = local_24[1];
            }
            local_dc = local_e8;
            local_e4 = puVar5;
          } while (local_e8 != iVar4);
          *param_12 = 1;
          cVar1 = local_f1;
        }
      }
    }
    else {
      cVar1 = local_58;
      if (local_58 != '\0') {
        *(int *)(puVar7 + -0xc) = param_10;
        *(char **)(puVar7 + -0x10) = param_9;
        *(undefined4 *)(puVar7 + -0x14) = 0x16dc84;
        FUN_00142200();
        *(undefined1 **)(puVar7 + -0xc) = param_11;
        *(int *)(puVar7 + -0x10) = param_8;
        *(char **)(puVar7 + -0x14) = param_9;
        *(int *)(puVar7 + -0x18) = param_7;
        *(undefined4 *)(puVar7 + -0x1c) = param_5;
        *(int *)(puVar7 + -0x20) = param_4;
        *(int *)(puVar7 + -0x24) = param_3;
        *(int *)(puVar7 + -0x28) = param_2;
        *(int *)(puVar7 + -0x2c) = param_6;
        *(undefined4 *)(puVar7 + -0x30) = param_1;
        *(undefined4 *)(puVar7 + -0x34) = 0x16dca7;
        FUN_00142290();
        cVar1 = local_f1;
      }
    }
    if (local_3c[3] != 0) {
      *(int *)(puVar7 + -0x10) = local_3c[3];
      *(undefined4 *)(puVar7 + -0x14) = 0x16da23;
      FUN_001e6db0();
    }
    if (local_3c[0] != 0) {
      *(int *)(puVar7 + -0x10) = local_3c[0];
      *(undefined4 *)(puVar7 + -0x14) = 0x16da3c;
      FUN_001e6db0();
    }
    if (local_bc != local_f0) {
      *(undefined1 **)(puVar7 + -0x10) = local_bc;
      *(undefined4 *)(puVar7 + -0x14) = 0x16da5c;
      FUN_001e6db0();
    }
    return cVar1;
  }
  *(uint *)(puVar7 + -4) = (uint)local_5a;
  *(undefined ***)(puVar7 + -8) = local_d8 + -0x3d7a0;
  *(undefined4 *)(puVar7 + -0xc) = 0x828;
  *(int *)(puVar7 + -0x10) = (int)local_d8 + -0x106ebb;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0016dcc9 to 0016dcec has its CatchHandler @ 0016dced */
  *(undefined4 *)(puVar7 + -0x14) = 0x16dcce;
  FUN_00069d00();
}

