
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void process(Command_line * this, int argc, char * * argv) */

void __thiscall gold::Command_line::process(Command_line *this,int argc,char **argv)

{
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *paVar1;
  char *pcVar2;
  size_t sVar3;
  Object_format OVar4;
  char *pcVar5;
  int i;
  int in_stack_ffffff78;
  char **in_stack_ffffff7c;
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *local_78;
  bool no_more_options;
  Input_file_argument file;
  
  no_more_options = false;
  if (0 < argc) {
    i = 0;
    paVar1 = &file.extra_search_path_.field_2;
    do {
      while( true ) {
        (this->position_options_).as_needed_ = (this->options_).as_needed_.value;
        (this->position_options_).Bdynamic_ = (this->options_).Bdynamic_.value;
        OVar4 = General_options::string_to_object_format((this->options_).format_.value);
        (this->position_options_).format_enum_ = OVar4;
        (this->position_options_).whole_archive_ = (this->options_).whole_archive_.value;
        (this->position_options_).incremental_disposition_ =
             (this->options_).incremental_disposition_;
        pcVar2 = argv[i];
        if (no_more_options == false) break;
        file.name_._M_dataplus._M_p = (pointer)&file.name_.field_2;
        pcVar5 = (char *)0xffffffff;
        if (pcVar2 != (char *)0x0) {
LAB_000e8c02:
          file.name_._M_dataplus._M_p = (pointer)&file.name_.field_2;
          sVar3 = strlen(pcVar2);
          pcVar5 = pcVar2 + sVar3;
        }
        local_78 = &file.name_.field_2;
        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
        _M_construct<char_const*>(&file.name_,pcVar2,pcVar5,0);
        file.type_ = INPUT_FILE_TYPE_FILE;
        file.extra_search_path_._M_dataplus._M_p = (pointer)paVar1;
                    /* try { // try from 000e8c46 to 000e8c4a has its CatchHandler @ 000e8e04 */
        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
        _M_construct<char_const*>(&file.extra_search_path_,"","",0);
        file.just_symbols_ = false;
        file.options_.as_needed_ = (this->position_options_).as_needed_;
        file.options_.Bdynamic_ = (this->position_options_).Bdynamic_;
        file.options_._2_2_ = *(undefined2 *)&(this->position_options_).field_0x2;
        file.arg_serial_ = 0;
        file.options_.format_enum_ = (this->position_options_).format_enum_;
        file.options_.whole_archive_ = (this->position_options_).whole_archive_;
        file.options_._9_3_ = *(undefined3 *)&(this->position_options_).field_0x9;
        file.options_.incremental_disposition_ = (this->position_options_).incremental_disposition_;
                    /* try { // try from 000e8c86 to 000e8c8a has its CatchHandler @ 000e8dfd */
        Input_arguments::add_file(&this->inputs_,&file);
        i = i + 1;
        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
             *)file.extra_search_path_._M_dataplus._M_p != paVar1) {
          operator_delete(file.extra_search_path_._M_dataplus._M_p);
        }
        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
             *)file.name_._M_dataplus._M_p != local_78) {
          operator_delete(file.name_._M_dataplus._M_p);
        }
        if (argc <= i) goto LAB_000e8d68;
      }
      if (*pcVar2 != '-') goto LAB_000e8c02;
      i = process_one_option(this,argc,argv,i,&no_more_options);
    } while (i < argc);
  }
LAB_000e8d68:
  pcVar2 = program_name;
  if ((this->inputs_).in_group_ == false) {
    if ((this->inputs_).in_lib_ == false) {
      General_options::finalize(&this->options_);
      return;
    }
  }
  else {
    pcVar5 = (char *)gettext("%s: missing group end\n");
    fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar5,pcVar2);
    anon_unknown.dwarf_a6a7ee::usage();
  }
  pcVar2 = program_name;
  pcVar5 = (char *)gettext("%s: missing lib end\n");
  fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar5,pcVar2);
  anon_unknown.dwarf_a6a7ee::usage();
                    /* catch() { ... } // from try @ 000e8c86 with catch @ 000e8dfd */
  process(in_stack_ffffff78,in_stack_ffffff7c);
  return;
}



/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

void FUN_000e8bb0(int param_1,int param_2,int param_3)

{
  size_t sVar1;
  undefined4 uVar2;
  char *pcVar3;
  char *pcVar4;
  int iVar5;
  undefined1 *local_78;
  char local_69;
  undefined1 *local_68 [2];
  undefined1 local_60 [16];
  undefined4 local_50;
  undefined1 *local_4c [2];
  undefined1 local_44 [16];
  undefined1 local_34;
  undefined4 local_30;
  undefined4 local_2c;
  undefined4 local_28;
  undefined4 local_24;
  undefined4 local_20;
  
  local_69 = '\0';
  if (0 < param_2) {
    iVar5 = 0;
    do {
      while( true ) {
        *(undefined1 *)(param_1 + 0x5a90) = *(undefined1 *)(param_1 + 0x2f9);
        *(undefined1 *)(param_1 + 0x5a91) = *(undefined1 *)(param_1 + 0x54d);
        uVar2 = FUN_000dd760(*(undefined4 *)(param_1 + 0x3bc));
        *(undefined4 *)(param_1 + 0x5a94) = uVar2;
        *(undefined1 *)(param_1 + 0x5a98) = *(undefined1 *)(param_1 + 0x4a31);
        *(undefined4 *)(param_1 + 0x5a9c) = *(undefined4 *)(param_1 + 0x5a18);
        pcVar4 = *(char **)(param_3 + iVar5 * 4);
        if (local_69 == '\0') break;
        local_68[0] = local_60;
        pcVar3 = (char *)0xffffffff;
        if (pcVar4 != (char *)0x0) {
LAB_000e8c02:
          local_68[0] = local_60;
          sVar1 = strlen(pcVar4);
          pcVar3 = pcVar4 + sVar1;
        }
        local_78 = local_60;
        FUN_00050e40(local_68,pcVar4,pcVar3,0);
        local_50 = 0;
        local_4c[0] = local_44;
                    /* try { // try from 000e8c46 to 000e8c4a has its CatchHandler @ 000e8e04 */
        FUN_00050e40(local_4c,"","",0);
        local_34 = 0;
        local_30 = *(undefined4 *)(param_1 + 0x5a90);
        local_20 = 0;
        local_2c = *(undefined4 *)(param_1 + 0x5a94);
        local_28 = *(undefined4 *)(param_1 + 0x5a98);
        local_24 = *(undefined4 *)(param_1 + 0x5a9c);
                    /* try { // try from 000e8c86 to 000e8c8a has its CatchHandler @ 000e8dfd */
        FUN_000deb60(param_1 + 0x5b6c,local_68);
        iVar5 = iVar5 + 1;
        if (local_4c[0] != local_44) {
          FUN_001e6db0(local_4c[0]);
        }
        if (local_68[0] != local_78) {
          FUN_001e6db0(local_68[0]);
        }
        if (param_2 <= iVar5) goto LAB_000e8d68;
      }
      if (*pcVar4 != '-') goto LAB_000e8c02;
      iVar5 = FUN_000e6c60(param_1,param_2,param_3,iVar5,&local_69);
    } while (iVar5 < param_2);
  }
LAB_000e8d68:
  uVar2 = DAT_0038f488;
  if (*(char *)(param_1 + 0x5b78) == '\0') {
    if (*(char *)(param_1 + 0x5b79) == '\0') {
      FUN_000e74a0(param_1 + 4);
      return;
    }
  }
  else {
    pcVar4 = (char *)gettext("%s: missing group end\n");
    fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2);
    FUN_000dccc0();
  }
  uVar2 = DAT_0038f488;
  pcVar4 = (char *)gettext("%s: missing lib end\n");
  fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2);
  FUN_000dccc0();
                    /* catch() { ... } // from try @ 000e8c86 with catch @ 000e8dfd */
  FUN_0002f5c0();
  return;
}


CALL 0x000559e6
ADD EAX,0x2a644b
PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x7c
MOV ECX,dword ptr [EBP + 0xc]
MOV ESI,dword ptr [EBP + 0x8]
MOV dword ptr [EBP + -0x6c],EAX
MOV byte ptr [EBP + -0x65],0x0
TEST ECX,ECX
JLE 0x000e8d68
LEA EAX,[EBP + -0x64]
XOR EDI,EDI
MOV dword ptr [EBP + -0x70],EAX
LEA EAX,[EBP + -0x40]
MOV dword ptr [EBP + -0x7c],EAX
JMP 0x000e8cc7
CMP byte ptr [EDX],0x2d
JZ 0x000e8d40
LEA EAX,[EBP + -0x5c]
MOV dword ptr [EBP + -0x74],EAX
MOV dword ptr [EBP + -0x64],EAX
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x6c]
MOV dword ptr [EBP + -0x78],EDX
PUSH EDX
CALL 0x000295f0
MOV EDX,dword ptr [EBP + -0x78]
ADD ESP,0x10
ADD EAX,EDX
PUSH 0x0
PUSH EAX
PUSH EDX
PUSH dword ptr [EBP + -0x70]
CALL 0x00050e40
MOV EAX,dword ptr [EBP + -0x6c]
ADD ESP,0x10
MOV EBX,dword ptr [EBP + -0x7c]
PUSH 0x0
LEA EAX,[EAX + 0xfff0edf6]
MOV dword ptr [EBP + -0x4c],0x0
PUSH EAX
PUSH EAX
LEA EAX,[EBP + -0x48]
PUSH EAX
MOV dword ptr [EBP + -0x48],EBX
CALL 0x00050e40
POP EAX
POP EDX
MOV byte ptr [EBP + -0x30],0x0
MOV EAX,dword ptr [ESI + 0x5a90]
MOV dword ptr [EBP + -0x1c],0x0
MOV dword ptr [EBP + -0x2c],EAX
MOV EAX,dword ptr [ESI + 0x5a94]
MOV dword ptr [EBP + -0x28],EAX
MOV EAX,dword ptr [ESI + 0x5a98]
MOV dword ptr [EBP + -0x24],EAX
MOV EAX,dword ptr [ESI + 0x5a9c]
PUSH dword ptr [EBP + -0x70]
MOV dword ptr [EBP + -0x20],EAX
LEA EAX,[ESI + 0x5b6c]
PUSH EAX
CALL 0x000deb60
MOV EAX,dword ptr [EBP + -0x48]
ADD ESP,0x10
ADD EDI,0x1
CMP EAX,EBX
JZ 0x000e8ca7
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x6c]
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
MOV EAX,dword ptr [EBP + -0x64]
CMP EAX,dword ptr [EBP + -0x74]
JZ 0x000e8cbe
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x6c]
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
CMP EDI,dword ptr [EBP + 0xc]
JGE 0x000e8d68
MOVZX EAX,byte ptr [ESI + 0x2f9]
SUB ESP,0xc
MOV byte ptr [ESI + 0x5a90],AL
MOVZX EAX,byte ptr [ESI + 0x54d]
MOV byte ptr [ESI + 0x5a91],AL
PUSH dword ptr [ESI + 0x3bc]
CALL 0x000dd760
ADD ESP,0x10
CMP byte ptr [EBP + -0x65],0x0
MOV dword ptr [ESI + 0x5a94],EAX
MOVZX EAX,byte ptr [ESI + 0x4a31]
MOV byte ptr [ESI + 0x5a98],AL
MOV EAX,dword ptr [ESI + 0x5a18]
MOV dword ptr [ESI + 0x5a9c],EAX
MOV EAX,dword ptr [EBP + 0x10]
LEA EAX,[EAX + EDI*0x4]
MOV EDX,dword ptr [EAX]
JZ 0x000e8bf0
LEA EAX,[EBP + -0x5c]
MOV dword ptr [EBP + -0x74],EAX
MOV dword ptr [EBP + -0x64],EAX
MOV EAX,0xffffffff
TEST EDX,EDX
JZ 0x000e8c19
JMP 0x000e8c02
SUB ESP,0xc
LEA EAX,[EBP + -0x65]
PUSH EAX
PUSH EDI
PUSH dword ptr [EBP + 0x10]
PUSH dword ptr [EBP + 0xc]
PUSH ESI
CALL 0x000e6c60
ADD ESP,0x20
MOV EDI,EAX
CMP EDI,dword ptr [EBP + 0xc]
JL 0x000e8cc7
LEA ESI,[ESI]
CMP byte ptr [ESI + 0x5b78],0x0
JNZ 0x000e8d91
CMP byte ptr [ESI + 0x5b79],0x0
JNZ 0x000e8dc7
SUB ESP,0xc
ADD ESI,0x4
PUSH ESI
CALL 0x000e74a0
ADD ESP,0x10
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EDI,dword ptr [EBP + -0x6c]
SUB ESP,0xc
LEA EAX,[EDI + 0x488]
MOV EBX,EDI
MOV ESI,dword ptr [EAX]
LEA EAX,[EDI + 0xffeffc96]
PUSH EAX
CALL 0x000293b0
ADD ESP,0xc
PUSH ESI
PUSH EAX
MOV EAX,dword ptr [EDI + 0xfffffd28]
PUSH dword ptr [EAX]
CALL 0x00029750
ADD ESP,0x10
CALL 0x000dccc0
MOV EDI,dword ptr [EBP + -0x6c]
SUB ESP,0xc
LEA EAX,[EDI + 0x488]
MOV EBX,EDI
MOV ESI,dword ptr [EAX]
LEA EAX,[EDI + 0xffeffcad]
PUSH EAX
CALL 0x000293b0
ADD ESP,0xc
PUSH ESI
PUSH EAX
MOV EAX,dword ptr [EDI + 0xfffffd28]
PUSH dword ptr [EAX]
CALL 0x00029750
ADD ESP,0x10
CALL 0x000dccc0
MOV ESI,EAX
JMP 0x0002f5c0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nvoid FUN_000e8bb0(int param_1,int param_2,int param_3)\n\n{\n  size_t sVar1;\n  undefined4 uVar2;\n  char *pcVar3;\n  char *pcVar4;\n  int iVar5;\n  undefined1 *local_78;\n  char local_69;\n  undefined1 *local_68 [2];\n  undefined1 local_60 [16];\n  undefined4 local_50;\n  undefined1 *local_4c [2];\n  undefined1 local_44 [16];\n  undefined1 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  local_69 = '\0';\n  if (0 < param_2) {\n    iVar5 = 0;\n    do {\n      while( true ) {\n        *(undefined1 *)(param_1 + 0x5a90) = *(undefined1 *)(param_1 + 0x2f9);\n        *(undefined1 *)(param_1 + 0x5a91) = *(undefined1 *)(param_1 + 0x54d);\n        uVar2 = FUN_000dd760(*(undefined4 *)(param_1 + 0x3bc));\n        *(undefined4 *)(param_1 + 0x5a94) = uVar2;\n        *(undefined1 *)(param_1 + 0x5a98) = *(undefined1 *)(param_1 + 0x4a31);\n        *(undefined4 *)(param_1 + 0x5a9c) = *(undefined4 *)(param_1 + 0x5a18);\n        pcVar4 = *(char **)(param_3 + iVar5 * 4);\n        if (local_69 == '\0') break;\n        local_68[0] = local_60;\n        pcVar3 = (char *)0xffffffff;\n        if (pcVar4 != (char *)0x0) {\nLAB_000e8c02:\n          local_68[0] = local_60;\n          sVar1 = strlen(pcVar4);\n          pcVar3 = pcVar4 + sVar1;\n        }\n        local_78 = local_60;\n        FUN_00050e40(local_68,pcVar4,pcVar3,0);\n        local_50 = 0;\n        local_4c[0] = local_44;\n                    /* try { // try from 000e8c46 to 000e8c4a has its CatchHandler @ 000e8e04 */\n        FUN_00050e40(local_4c,"","",0);\n        local_34 = 0;\n        local_30 = *(undefined4 *)(param_1 + 0x5a90);\n        local_20 = 0;\n        local_2c = *(undefined4 *)(param_1 + 0x5a94);\n        local_28 = *(undefined4 *)(param_1 + 0x5a98);\n        local_24 = *(undefined4 *)(param_1 + 0x5a9c);\n                    /* try { // try from 000e8c86 to 000e8c8a has its CatchHandler @ 000e8dfd */\n        FUN_000deb60(param_1 + 0x5b6c,local_68);\n        iVar5 = iVar5 + 1;\n        if (local_4c[0] != local_44) {\n          FUN_001e6db0(local_4c[0]);\n        }\n        if (local_68[0] != local_78) {\n          FUN_001e6db0(local_68[0]);\n        }\n        if (param_2 <= iVar5) goto LAB_000e8d68;\n      }\n      if (*pcVar4 != '-') goto LAB_000e8c02;\n      iVar5 = FUN_000e6c60(param_1,param_2,param_3,iVar5,&local_69);\n    } while (iVar5 < param_2);\n  }\nLAB_000e8d68:\n  uVar2 = DAT_0038f488;\n  if (*(char *)(param_1 + 0x5b78) == '\0') {\n    if (*(char *)(param_1 + 0x5b79) == '\0') {\n      FUN_000e74a0(param_1 + 4);\n      return;\n    }\n  }\n  else {\n    pcVar4 = (char *)gettext("%s: missing group end\n");\n    fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2);\n    FUN_000dccc0();\n  }\n  uVar2 = DAT_0038f488;\n  pcVar4 = (char *)gettext("%s: missing lib end\n");\n  fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2);\n  FUN_000dccc0();\n                    /* catch() { ... } // from try @ 000e8c86 with catch @ 000e8dfd */\n  FUN_0002f5c0();\n  return;\n}\n\n" comment (function_definition "void FUN_000e8bb0(int param_1,int param_2,int param_3)\n\n{\n  size_t sVar1;\n  undefined4 uVar2;\n  char *pcVar3;\n  char *pcVar4;\n  int iVar5;\n  undefined1 *local_78;\n  char local_69;\n  undefined1 *local_68 [2];\n  undefined1 local_60 [16];\n  undefined4 local_50;\n  undefined1 *local_4c [2];\n  undefined1 local_44 [16];\n  undefined1 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  local_69 = '\0';\n  if (0 < param_2) {\n    iVar5 = 0;\n    do {\n      while( true ) {\n        *(undefined1 *)(param_1 + 0x5a90) = *(undefined1 *)(param_1 + 0x2f9);\n        *(undefined1 *)(param_1 + 0x5a91) = *(undefined1 *)(param_1 + 0x54d);\n        uVar2 = FUN_000dd760(*(undefined4 *)(param_1 + 0x3bc));\n        *(undefined4 *)(param_1 + 0x5a94) = uVar2;\n        *(undefined1 *)(param_1 + 0x5a98) = *(undefined1 *)(param_1 + 0x4a31);\n        *(undefined4 *)(param_1 + 0x5a9c) = *(undefined4 *)(param_1 + 0x5a18);\n        pcVar4 = *(char **)(param_3 + iVar5 * 4);\n        if (local_69 == '\0') break;\n        local_68[0] = local_60;\n        pcVar3 = (char *)0xffffffff;\n        if (pcVar4 != (char *)0x0) {\nLAB_000e8c02:\n          local_68[0] = local_60;\n          sVar1 = strlen(pcVar4);\n          pcVar3 = pcVar4 + sVar1;\n        }\n        local_78 = local_60;\n        FUN_00050e40(local_68,pcVar4,pcVar3,0);\n        local_50 = 0;\n        local_4c[0] = local_44;\n                    /* try { // try from 000e8c46 to 000e8c4a has its CatchHandler @ 000e8e04 */\n        FUN_00050e40(local_4c,"","",0);\n        local_34 = 0;\n        local_30 = *(undefined4 *)(param_1 + 0x5a90);\n        local_20 = 0;\n        local_2c = *(undefined4 *)(param_1 + 0x5a94);\n        local_28 = *(undefined4 *)(param_1 + 0x5a98);\n        local_24 = *(undefined4 *)(param_1 + 0x5a9c);\n                    /* try { // try from 000e8c86 to 000e8c8a has its CatchHandler @ 000e8dfd */\n        FUN_000deb60(param_1 + 0x5b6c,local_68);\n        iVar5 = iVar5 + 1;\n        if (local_4c[0] != local_44) {\n          FUN_001e6db0(local_4c[0]);\n        }\n        if (local_68[0] != local_78) {\n          FUN_001e6db0(local_68[0]);\n        }\n        if (param_2 <= iVar5) goto LAB_000e8d68;\n      }\n      if (*pcVar4 != '-') goto LAB_000e8c02;\n      iVar5 = FUN_000e6c60(param_1,param_2,param_3,iVar5,&local_69);\n    } while (iVar5 < param_2);\n  }\nLAB_000e8d68:\n  uVar2 = DAT_0038f488;\n  if (*(char *)(param_1 + 0x5b78) == '\0') {\n    if (*(char *)(param_1 + 0x5b79) == '\0') {\n      FUN_000e74a0(param_1 + 4);\n      return;\n    }\n  }\n  else {\n    pcVar4 = (char *)gettext("%s: missing group end\n");\n    fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2);\n    FUN_000dccc0();\n  }\n  uVar2 = DAT_0038f488;\n  pcVar4 = (char *)gettext("%s: missing lib end\n");\n  fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2);\n  FUN_000dccc0();\n                    /* catch() { ... } // from try @ 000e8c86 with catch @ 000e8dfd */\n  FUN_0002f5c0();\n  return;\n}" primitive_type (function_declarator "FUN_000e8bb0(int param_1,int param_2,int param_3)" identifier (parameter_list "(int param_1,int param_2,int param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  size_t sVar1;\n  undefined4 uVar2;\n  char *pcVar3;\n  char *pcVar4;\n  int iVar5;\n  undefined1 *local_78;\n  char local_69;\n  undefined1 *local_68 [2];\n  undefined1 local_60 [16];\n  undefined4 local_50;\n  undefined1 *local_4c [2];\n  undefined1 local_44 [16];\n  undefined1 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  local_69 = '\0';\n  if (0 < param_2) {\n    iVar5 = 0;\n    do {\n      while( true ) {\n        *(undefined1 *)(param_1 + 0x5a90) = *(undefined1 *)(param_1 + 0x2f9);\n        *(undefined1 *)(param_1 + 0x5a91) = *(undefined1 *)(param_1 + 0x54d);\n        uVar2 = FUN_000dd760(*(undefined4 *)(param_1 + 0x3bc));\n        *(undefined4 *)(param_1 + 0x5a94) = uVar2;\n        *(undefined1 *)(param_1 + 0x5a98) = *(undefined1 *)(param_1 + 0x4a31);\n        *(undefined4 *)(param_1 + 0x5a9c) = *(undefined4 *)(param_1 + 0x5a18);\n        pcVar4 = *(char **)(param_3 + iVar5 * 4);\n        if (local_69 == '\0') break;\n        local_68[0] = local_60;\n        pcVar3 = (char *)0xffffffff;\n        if (pcVar4 != (char *)0x0) {\nLAB_000e8c02:\n          local_68[0] = local_60;\n          sVar1 = strlen(pcVar4);\n          pcVar3 = pcVar4 + sVar1;\n        }\n        local_78 = local_60;\n        FUN_00050e40(local_68,pcVar4,pcVar3,0);\n        local_50 = 0;\n        local_4c[0] = local_44;\n                    /* try { // try from 000e8c46 to 000e8c4a has its CatchHandler @ 000e8e04 */\n        FUN_00050e40(local_4c,"","",0);\n        local_34 = 0;\n        local_30 = *(undefined4 *)(param_1 + 0x5a90);\n        local_20 = 0;\n        local_2c = *(undefined4 *)(param_1 + 0x5a94);\n        local_28 = *(undefined4 *)(param_1 + 0x5a98);\n        local_24 = *(undefined4 *)(param_1 + 0x5a9c);\n                    /* try { // try from 000e8c86 to 000e8c8a has its CatchHandler @ 000e8dfd */\n        FUN_000deb60(param_1 + 0x5b6c,local_68);\n        iVar5 = iVar5 + 1;\n        if (local_4c[0] != local_44) {\n          FUN_001e6db0(local_4c[0]);\n        }\n        if (local_68[0] != local_78) {\n          FUN_001e6db0(local_68[0]);\n        }\n        if (param_2 <= iVar5) goto LAB_000e8d68;\n      }\n      if (*pcVar4 != '-') goto LAB_000e8c02;\n      iVar5 = FUN_000e6c60(param_1,param_2,param_3,iVar5,&local_69);\n    } while (iVar5 < param_2);\n  }\nLAB_000e8d68:\n  uVar2 = DAT_0038f488;\n  if (*(char *)(param_1 + 0x5b78) == '\0') {\n    if (*(char *)(param_1 + 0x5b79) == '\0') {\n      FUN_000e74a0(param_1 + 4);\n      return;\n    }\n  }\n  else {\n    pcVar4 = (char *)gettext("%s: missing group end\n");\n    fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2);\n    FUN_000dccc0();\n  }\n  uVar2 = DAT_0038f488;\n  pcVar4 = (char *)gettext("%s: missing lib end\n");\n  fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2);\n  FUN_000dccc0();\n                    /* catch() { ... } // from try @ 000e8c86 with catch @ 000e8dfd */\n  FUN_0002f5c0();\n  return;\n}" { (declaration "size_t sVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined1 *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "char local_69;" primitive_type identifier ;) (declaration "undefined1 *local_68 [2];" type_identifier (pointer_declarator "*local_68 [2]" * (array_declarator "local_68 [2]" identifier [ number_literal ])) ;) (declaration "undefined1 local_60 [16];" type_identifier (array_declarator "local_60 [16]" identifier [ number_literal ]) ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "undefined1 *local_4c [2];" type_identifier (pointer_declarator "*local_4c [2]" * (array_declarator "local_4c [2]" identifier [ number_literal ])) ;) (declaration "undefined1 local_44 [16];" type_identifier (array_declarator "local_44 [16]" identifier [ number_literal ]) ;) (declaration "undefined1 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (expression_statement "local_69 = '\0';" (assignment_expression "local_69 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (0 < param_2) {\n    iVar5 = 0;\n    do {\n      while( true ) {\n        *(undefined1 *)(param_1 + 0x5a90) = *(undefined1 *)(param_1 + 0x2f9);\n        *(undefined1 *)(param_1 + 0x5a91) = *(undefined1 *)(param_1 + 0x54d);\n        uVar2 = FUN_000dd760(*(undefined4 *)(param_1 + 0x3bc));\n        *(undefined4 *)(param_1 + 0x5a94) = uVar2;\n        *(undefined1 *)(param_1 + 0x5a98) = *(undefined1 *)(param_1 + 0x4a31);\n        *(undefined4 *)(param_1 + 0x5a9c) = *(undefined4 *)(param_1 + 0x5a18);\n        pcVar4 = *(char **)(param_3 + iVar5 * 4);\n        if (local_69 == '\0') break;\n        local_68[0] = local_60;\n        pcVar3 = (char *)0xffffffff;\n        if (pcVar4 != (char *)0x0) {\nLAB_000e8c02:\n          local_68[0] = local_60;\n          sVar1 = strlen(pcVar4);\n          pcVar3 = pcVar4 + sVar1;\n        }\n        local_78 = local_60;\n        FUN_00050e40(local_68,pcVar4,pcVar3,0);\n        local_50 = 0;\n        local_4c[0] = local_44;\n                    /* try { // try from 000e8c46 to 000e8c4a has its CatchHandler @ 000e8e04 */\n        FUN_00050e40(local_4c,"","",0);\n        local_34 = 0;\n        local_30 = *(undefined4 *)(param_1 + 0x5a90);\n        local_20 = 0;\n        local_2c = *(undefined4 *)(param_1 + 0x5a94);\n        local_28 = *(undefined4 *)(param_1 + 0x5a98);\n        local_24 = *(undefined4 *)(param_1 + 0x5a9c);\n                    /* try { // try from 000e8c86 to 000e8c8a has its CatchHandler @ 000e8dfd */\n        FUN_000deb60(param_1 + 0x5b6c,local_68);\n        iVar5 = iVar5 + 1;\n        if (local_4c[0] != local_44) {\n          FUN_001e6db0(local_4c[0]);\n        }\n        if (local_68[0] != local_78) {\n          FUN_001e6db0(local_68[0]);\n        }\n        if (param_2 <= iVar5) goto LAB_000e8d68;\n      }\n      if (*pcVar4 != '-') goto LAB_000e8c02;\n      iVar5 = FUN_000e6c60(param_1,param_2,param_3,iVar5,&local_69);\n    } while (iVar5 < param_2);\n  }" if (parenthesized_expression "(0 < param_2)" ( (binary_expression "0 < param_2" number_literal < identifier) )) (compound_statement "{\n    iVar5 = 0;\n    do {\n      while( true ) {\n        *(undefined1 *)(param_1 + 0x5a90) = *(undefined1 *)(param_1 + 0x2f9);\n        *(undefined1 *)(param_1 + 0x5a91) = *(undefined1 *)(param_1 + 0x54d);\n        uVar2 = FUN_000dd760(*(undefined4 *)(param_1 + 0x3bc));\n        *(undefined4 *)(param_1 + 0x5a94) = uVar2;\n        *(undefined1 *)(param_1 + 0x5a98) = *(undefined1 *)(param_1 + 0x4a31);\n        *(undefined4 *)(param_1 + 0x5a9c) = *(undefined4 *)(param_1 + 0x5a18);\n        pcVar4 = *(char **)(param_3 + iVar5 * 4);\n        if (local_69 == '\0') break;\n        local_68[0] = local_60;\n        pcVar3 = (char *)0xffffffff;\n        if (pcVar4 != (char *)0x0) {\nLAB_000e8c02:\n          local_68[0] = local_60;\n          sVar1 = strlen(pcVar4);\n          pcVar3 = pcVar4 + sVar1;\n        }\n        local_78 = local_60;\n        FUN_00050e40(local_68,pcVar4,pcVar3,0);\n        local_50 = 0;\n        local_4c[0] = local_44;\n                    /* try { // try from 000e8c46 to 000e8c4a has its CatchHandler @ 000e8e04 */\n        FUN_00050e40(local_4c,"","",0);\n        local_34 = 0;\n        local_30 = *(undefined4 *)(param_1 + 0x5a90);\n        local_20 = 0;\n        local_2c = *(undefined4 *)(param_1 + 0x5a94);\n        local_28 = *(undefined4 *)(param_1 + 0x5a98);\n        local_24 = *(undefined4 *)(param_1 + 0x5a9c);\n                    /* try { // try from 000e8c86 to 000e8c8a has its CatchHandler @ 000e8dfd */\n        FUN_000deb60(param_1 + 0x5b6c,local_68);\n        iVar5 = iVar5 + 1;\n        if (local_4c[0] != local_44) {\n          FUN_001e6db0(local_4c[0]);\n        }\n        if (local_68[0] != local_78) {\n          FUN_001e6db0(local_68[0]);\n        }\n        if (param_2 <= iVar5) goto LAB_000e8d68;\n      }\n      if (*pcVar4 != '-') goto LAB_000e8c02;\n      iVar5 = FUN_000e6c60(param_1,param_2,param_3,iVar5,&local_69);\n    } while (iVar5 < param_2);\n  }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n      while( true ) {\n        *(undefined1 *)(param_1 + 0x5a90) = *(undefined1 *)(param_1 + 0x2f9);\n        *(undefined1 *)(param_1 + 0x5a91) = *(undefined1 *)(param_1 + 0x54d);\n        uVar2 = FUN_000dd760(*(undefined4 *)(param_1 + 0x3bc));\n        *(undefined4 *)(param_1 + 0x5a94) = uVar2;\n        *(undefined1 *)(param_1 + 0x5a98) = *(undefined1 *)(param_1 + 0x4a31);\n        *(undefined4 *)(param_1 + 0x5a9c) = *(undefined4 *)(param_1 + 0x5a18);\n        pcVar4 = *(char **)(param_3 + iVar5 * 4);\n        if (local_69 == '\0') break;\n        local_68[0] = local_60;\n        pcVar3 = (char *)0xffffffff;\n        if (pcVar4 != (char *)0x0) {\nLAB_000e8c02:\n          local_68[0] = local_60;\n          sVar1 = strlen(pcVar4);\n          pcVar3 = pcVar4 + sVar1;\n        }\n        local_78 = local_60;\n        FUN_00050e40(local_68,pcVar4,pcVar3,0);\n        local_50 = 0;\n        local_4c[0] = local_44;\n                    /* try { // try from 000e8c46 to 000e8c4a has its CatchHandler @ 000e8e04 */\n        FUN_00050e40(local_4c,"","",0);\n        local_34 = 0;\n        local_30 = *(undefined4 *)(param_1 + 0x5a90);\n        local_20 = 0;\n        local_2c = *(undefined4 *)(param_1 + 0x5a94);\n        local_28 = *(undefined4 *)(param_1 + 0x5a98);\n        local_24 = *(undefined4 *)(param_1 + 0x5a9c);\n                    /* try { // try from 000e8c86 to 000e8c8a has its CatchHandler @ 000e8dfd */\n        FUN_000deb60(param_1 + 0x5b6c,local_68);\n        iVar5 = iVar5 + 1;\n        if (local_4c[0] != local_44) {\n          FUN_001e6db0(local_4c[0]);\n        }\n        if (local_68[0] != local_78) {\n          FUN_001e6db0(local_68[0]);\n        }\n        if (param_2 <= iVar5) goto LAB_000e8d68;\n      }\n      if (*pcVar4 != '-') goto LAB_000e8c02;\n      iVar5 = FUN_000e6c60(param_1,param_2,param_3,iVar5,&local_69);\n    } while (iVar5 < param_2);" do (compound_statement "{\n      while( true ) {\n        *(undefined1 *)(param_1 + 0x5a90) = *(undefined1 *)(param_1 + 0x2f9);\n        *(undefined1 *)(param_1 + 0x5a91) = *(undefined1 *)(param_1 + 0x54d);\n        uVar2 = FUN_000dd760(*(undefined4 *)(param_1 + 0x3bc));\n        *(undefined4 *)(param_1 + 0x5a94) = uVar2;\n        *(undefined1 *)(param_1 + 0x5a98) = *(undefined1 *)(param_1 + 0x4a31);\n        *(undefined4 *)(param_1 + 0x5a9c) = *(undefined4 *)(param_1 + 0x5a18);\n        pcVar4 = *(char **)(param_3 + iVar5 * 4);\n        if (local_69 == '\0') break;\n        local_68[0] = local_60;\n        pcVar3 = (char *)0xffffffff;\n        if (pcVar4 != (char *)0x0) {\nLAB_000e8c02:\n          local_68[0] = local_60;\n          sVar1 = strlen(pcVar4);\n          pcVar3 = pcVar4 + sVar1;\n        }\n        local_78 = local_60;\n        FUN_00050e40(local_68,pcVar4,pcVar3,0);\n        local_50 = 0;\n        local_4c[0] = local_44;\n                    /* try { // try from 000e8c46 to 000e8c4a has its CatchHandler @ 000e8e04 */\n        FUN_00050e40(local_4c,"","",0);\n        local_34 = 0;\n        local_30 = *(undefined4 *)(param_1 + 0x5a90);\n        local_20 = 0;\n        local_2c = *(undefined4 *)(param_1 + 0x5a94);\n        local_28 = *(undefined4 *)(param_1 + 0x5a98);\n        local_24 = *(undefined4 *)(param_1 + 0x5a9c);\n                    /* try { // try from 000e8c86 to 000e8c8a has its CatchHandler @ 000e8dfd */\n        FUN_000deb60(param_1 + 0x5b6c,local_68);\n        iVar5 = iVar5 + 1;\n        if (local_4c[0] != local_44) {\n          FUN_001e6db0(local_4c[0]);\n        }\n        if (local_68[0] != local_78) {\n          FUN_001e6db0(local_68[0]);\n        }\n        if (param_2 <= iVar5) goto LAB_000e8d68;\n      }\n      if (*pcVar4 != '-') goto LAB_000e8c02;\n      iVar5 = FUN_000e6c60(param_1,param_2,param_3,iVar5,&local_69);\n    }" { (while_statement "while( true ) {\n        *(undefined1 *)(param_1 + 0x5a90) = *(undefined1 *)(param_1 + 0x2f9);\n        *(undefined1 *)(param_1 + 0x5a91) = *(undefined1 *)(param_1 + 0x54d);\n        uVar2 = FUN_000dd760(*(undefined4 *)(param_1 + 0x3bc));\n        *(undefined4 *)(param_1 + 0x5a94) = uVar2;\n        *(undefined1 *)(param_1 + 0x5a98) = *(undefined1 *)(param_1 + 0x4a31);\n        *(undefined4 *)(param_1 + 0x5a9c) = *(undefined4 *)(param_1 + 0x5a18);\n        pcVar4 = *(char **)(param_3 + iVar5 * 4);\n        if (local_69 == '\0') break;\n        local_68[0] = local_60;\n        pcVar3 = (char *)0xffffffff;\n        if (pcVar4 != (char *)0x0) {\nLAB_000e8c02:\n          local_68[0] = local_60;\n          sVar1 = strlen(pcVar4);\n          pcVar3 = pcVar4 + sVar1;\n        }\n        local_78 = local_60;\n        FUN_00050e40(local_68,pcVar4,pcVar3,0);\n        local_50 = 0;\n        local_4c[0] = local_44;\n                    /* try { // try from 000e8c46 to 000e8c4a has its CatchHandler @ 000e8e04 */\n        FUN_00050e40(local_4c,"","",0);\n        local_34 = 0;\n        local_30 = *(undefined4 *)(param_1 + 0x5a90);\n        local_20 = 0;\n        local_2c = *(undefined4 *)(param_1 + 0x5a94);\n        local_28 = *(undefined4 *)(param_1 + 0x5a98);\n        local_24 = *(undefined4 *)(param_1 + 0x5a9c);\n                    /* try { // try from 000e8c86 to 000e8c8a has its CatchHandler @ 000e8dfd */\n        FUN_000deb60(param_1 + 0x5b6c,local_68);\n        iVar5 = iVar5 + 1;\n        if (local_4c[0] != local_44) {\n          FUN_001e6db0(local_4c[0]);\n        }\n        if (local_68[0] != local_78) {\n          FUN_001e6db0(local_68[0]);\n        }\n        if (param_2 <= iVar5) goto LAB_000e8d68;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        *(undefined1 *)(param_1 + 0x5a90) = *(undefined1 *)(param_1 + 0x2f9);\n        *(undefined1 *)(param_1 + 0x5a91) = *(undefined1 *)(param_1 + 0x54d);\n        uVar2 = FUN_000dd760(*(undefined4 *)(param_1 + 0x3bc));\n        *(undefined4 *)(param_1 + 0x5a94) = uVar2;\n        *(undefined1 *)(param_1 + 0x5a98) = *(undefined1 *)(param_1 + 0x4a31);\n        *(undefined4 *)(param_1 + 0x5a9c) = *(undefined4 *)(param_1 + 0x5a18);\n        pcVar4 = *(char **)(param_3 + iVar5 * 4);\n        if (local_69 == '\0') break;\n        local_68[0] = local_60;\n        pcVar3 = (char *)0xffffffff;\n        if (pcVar4 != (char *)0x0) {\nLAB_000e8c02:\n          local_68[0] = local_60;\n          sVar1 = strlen(pcVar4);\n          pcVar3 = pcVar4 + sVar1;\n        }\n        local_78 = local_60;\n        FUN_00050e40(local_68,pcVar4,pcVar3,0);\n        local_50 = 0;\n        local_4c[0] = local_44;\n                    /* try { // try from 000e8c46 to 000e8c4a has its CatchHandler @ 000e8e04 */\n        FUN_00050e40(local_4c,"","",0);\n        local_34 = 0;\n        local_30 = *(undefined4 *)(param_1 + 0x5a90);\n        local_20 = 0;\n        local_2c = *(undefined4 *)(param_1 + 0x5a94);\n        local_28 = *(undefined4 *)(param_1 + 0x5a98);\n        local_24 = *(undefined4 *)(param_1 + 0x5a9c);\n                    /* try { // try from 000e8c86 to 000e8c8a has its CatchHandler @ 000e8dfd */\n        FUN_000deb60(param_1 + 0x5b6c,local_68);\n        iVar5 = iVar5 + 1;\n        if (local_4c[0] != local_44) {\n          FUN_001e6db0(local_4c[0]);\n        }\n        if (local_68[0] != local_78) {\n          FUN_001e6db0(local_68[0]);\n        }\n        if (param_2 <= iVar5) goto LAB_000e8d68;\n      }" { (expression_statement "*(undefined1 *)(param_1 + 0x5a90) = *(undefined1 *)(param_1 + 0x2f9);" (assignment_expression "*(undefined1 *)(param_1 + 0x5a90) = *(undefined1 *)(param_1 + 0x2f9)" (pointer_expression "*(undefined1 *)(param_1 + 0x5a90)" * (cast_expression "(undefined1 *)(param_1 + 0x5a90)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5a90)" ( (binary_expression "param_1 + 0x5a90" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)(param_1 + 0x2f9)" * (cast_expression "(undefined1 *)(param_1 + 0x2f9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2f9)" ( (binary_expression "param_1 + 0x2f9" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(param_1 + 0x5a91) = *(undefined1 *)(param_1 + 0x54d);" (assignment_expression "*(undefined1 *)(param_1 + 0x5a91) = *(undefined1 *)(param_1 + 0x54d)" (pointer_expression "*(undefined1 *)(param_1 + 0x5a91)" * (cast_expression "(undefined1 *)(param_1 + 0x5a91)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5a91)" ( (binary_expression "param_1 + 0x5a91" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)(param_1 + 0x54d)" * (cast_expression "(undefined1 *)(param_1 + 0x54d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54d)" ( (binary_expression "param_1 + 0x54d" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = FUN_000dd760(*(undefined4 *)(param_1 + 0x3bc));" (assignment_expression "uVar2 = FUN_000dd760(*(undefined4 *)(param_1 + 0x3bc))" identifier = (call_expression "FUN_000dd760(*(undefined4 *)(param_1 + 0x3bc))" identifier (argument_list "(*(undefined4 *)(param_1 + 0x3bc))" ( (pointer_expression "*(undefined4 *)(param_1 + 0x3bc)" * (cast_expression "(undefined4 *)(param_1 + 0x3bc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3bc)" ( (binary_expression "param_1 + 0x3bc" identifier + number_literal) )))) )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x5a94) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 0x5a94) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 0x5a94)" * (cast_expression "(undefined4 *)(param_1 + 0x5a94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5a94)" ( (binary_expression "param_1 + 0x5a94" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(param_1 + 0x5a98) = *(undefined1 *)(param_1 + 0x4a31);" (assignment_expression "*(undefined1 *)(param_1 + 0x5a98) = *(undefined1 *)(param_1 + 0x4a31)" (pointer_expression "*(undefined1 *)(param_1 + 0x5a98)" * (cast_expression "(undefined1 *)(param_1 + 0x5a98)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5a98)" ( (binary_expression "param_1 + 0x5a98" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)(param_1 + 0x4a31)" * (cast_expression "(undefined1 *)(param_1 + 0x4a31)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4a31)" ( (binary_expression "param_1 + 0x4a31" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x5a9c) = *(undefined4 *)(param_1 + 0x5a18);" (assignment_expression "*(undefined4 *)(param_1 + 0x5a9c) = *(undefined4 *)(param_1 + 0x5a18)" (pointer_expression "*(undefined4 *)(param_1 + 0x5a9c)" * (cast_expression "(undefined4 *)(param_1 + 0x5a9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5a9c)" ( (binary_expression "param_1 + 0x5a9c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_1 + 0x5a18)" * (cast_expression "(undefined4 *)(param_1 + 0x5a18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5a18)" ( (binary_expression "param_1 + 0x5a18" identifier + number_literal) ))))) ;) (expression_statement "pcVar4 = *(char **)(param_3 + iVar5 * 4);" (assignment_expression "pcVar4 = *(char **)(param_3 + iVar5 * 4)" identifier = (pointer_expression "*(char **)(param_3 + iVar5 * 4)" * (cast_expression "(char **)(param_3 + iVar5 * 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + iVar5 * 4)" ( (binary_expression "param_3 + iVar5 * 4" identifier + (binary_expression "iVar5 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (local_69 == '\0') break;" if (parenthesized_expression "(local_69 == '\0')" ( (binary_expression "local_69 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (expression_statement "local_68[0] = local_60;" (assignment_expression "local_68[0] = local_60" (subscript_expression "local_68[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pcVar3 = (char *)0xffffffff;" (assignment_expression "pcVar3 = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pcVar4 != (char *)0x0) {\nLAB_000e8c02:\n          local_68[0] = local_60;\n          sVar1 = strlen(pcVar4);\n          pcVar3 = pcVar4 + sVar1;\n        }" if (parenthesized_expression "(pcVar4 != (char *)0x0)" ( (binary_expression "pcVar4 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000e8c02:\n          local_68[0] = local_60;\n          sVar1 = strlen(pcVar4);\n          pcVar3 = pcVar4 + sVar1;\n        }" { (labeled_statement "LAB_000e8c02:\n          local_68[0] = local_60;" statement_identifier : (expression_statement "local_68[0] = local_60;" (assignment_expression "local_68[0] = local_60" (subscript_expression "local_68[0]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "sVar1 = strlen(pcVar4);" (assignment_expression "sVar1 = strlen(pcVar4)" identifier = (call_expression "strlen(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier )))) ;) (expression_statement "pcVar3 = pcVar4 + sVar1;" (assignment_expression "pcVar3 = pcVar4 + sVar1" identifier = (binary_expression "pcVar4 + sVar1" identifier + identifier)) ;) })) (expression_statement "local_78 = local_60;" (assignment_expression "local_78 = local_60" identifier = identifier) ;) (expression_statement "FUN_00050e40(local_68,pcVar4,pcVar3,0);" (call_expression "FUN_00050e40(local_68,pcVar4,pcVar3,0)" identifier (argument_list "(local_68,pcVar4,pcVar3,0)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "local_4c[0] = local_44;" (assignment_expression "local_4c[0] = local_44" (subscript_expression "local_4c[0]" identifier [ number_literal ]) = identifier) ;) comment (expression_statement "FUN_00050e40(local_4c,"","",0);" (call_expression "FUN_00050e40(local_4c,"","",0)" identifier (argument_list "(local_4c,"","",0)" ( identifier , (string_literal """" " ") , (string_literal """" " ") , number_literal ))) ;) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "local_30 = *(undefined4 *)(param_1 + 0x5a90);" (assignment_expression "local_30 = *(undefined4 *)(param_1 + 0x5a90)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x5a90)" * (cast_expression "(undefined4 *)(param_1 + 0x5a90)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5a90)" ( (binary_expression "param_1 + 0x5a90" identifier + number_literal) ))))) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_2c = *(undefined4 *)(param_1 + 0x5a94);" (assignment_expression "local_2c = *(undefined4 *)(param_1 + 0x5a94)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x5a94)" * (cast_expression "(undefined4 *)(param_1 + 0x5a94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5a94)" ( (binary_expression "param_1 + 0x5a94" identifier + number_literal) ))))) ;) (expression_statement "local_28 = *(undefined4 *)(param_1 + 0x5a98);" (assignment_expression "local_28 = *(undefined4 *)(param_1 + 0x5a98)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x5a98)" * (cast_expression "(undefined4 *)(param_1 + 0x5a98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5a98)" ( (binary_expression "param_1 + 0x5a98" identifier + number_literal) ))))) ;) (expression_statement "local_24 = *(undefined4 *)(param_1 + 0x5a9c);" (assignment_expression "local_24 = *(undefined4 *)(param_1 + 0x5a9c)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x5a9c)" * (cast_expression "(undefined4 *)(param_1 + 0x5a9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5a9c)" ( (binary_expression "param_1 + 0x5a9c" identifier + number_literal) ))))) ;) comment (expression_statement "FUN_000deb60(param_1 + 0x5b6c,local_68);" (call_expression "FUN_000deb60(param_1 + 0x5b6c,local_68)" identifier (argument_list "(param_1 + 0x5b6c,local_68)" ( (binary_expression "param_1 + 0x5b6c" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (if_statement "if (local_4c[0] != local_44) {\n          FUN_001e6db0(local_4c[0]);\n        }" if (parenthesized_expression "(local_4c[0] != local_44)" ( (binary_expression "local_4c[0] != local_44" (subscript_expression "local_4c[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n          FUN_001e6db0(local_4c[0]);\n        }" { (expression_statement "FUN_001e6db0(local_4c[0]);" (call_expression "FUN_001e6db0(local_4c[0])" identifier (argument_list "(local_4c[0])" ( (subscript_expression "local_4c[0]" identifier [ number_literal ]) ))) ;) })) (if_statement "if (local_68[0] != local_78) {\n          FUN_001e6db0(local_68[0]);\n        }" if (parenthesized_expression "(local_68[0] != local_78)" ( (binary_expression "local_68[0] != local_78" (subscript_expression "local_68[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n          FUN_001e6db0(local_68[0]);\n        }" { (expression_statement "FUN_001e6db0(local_68[0]);" (call_expression "FUN_001e6db0(local_68[0])" identifier (argument_list "(local_68[0])" ( (subscript_expression "local_68[0]" identifier [ number_literal ]) ))) ;) })) (if_statement "if (param_2 <= iVar5) goto LAB_000e8d68;" if (parenthesized_expression "(param_2 <= iVar5)" ( (binary_expression "param_2 <= iVar5" identifier <= identifier) )) (goto_statement "goto LAB_000e8d68;" goto statement_identifier ;)) })) (if_statement "if (*pcVar4 != '-') goto LAB_000e8c02;" if (parenthesized_expression "(*pcVar4 != '-')" ( (binary_expression "*pcVar4 != '-'" (pointer_expression "*pcVar4" * identifier) != (char_literal "'-'" ' character ')) )) (goto_statement "goto LAB_000e8c02;" goto statement_identifier ;)) (expression_statement "iVar5 = FUN_000e6c60(param_1,param_2,param_3,iVar5,&local_69);" (assignment_expression "iVar5 = FUN_000e6c60(param_1,param_2,param_3,iVar5,&local_69)" identifier = (call_expression "FUN_000e6c60(param_1,param_2,param_3,iVar5,&local_69)" identifier (argument_list "(param_1,param_2,param_3,iVar5,&local_69)" ( identifier , identifier , identifier , identifier , (pointer_expression "&local_69" & identifier) )))) ;) }) while (parenthesized_expression "(iVar5 < param_2)" ( (binary_expression "iVar5 < param_2" identifier < identifier) )) ;) })) (labeled_statement "LAB_000e8d68:\n  uVar2 = DAT_0038f488;" statement_identifier : (expression_statement "uVar2 = DAT_0038f488;" (assignment_expression "uVar2 = DAT_0038f488" identifier = identifier) ;)) (if_statement "if (*(char *)(param_1 + 0x5b78) == '\0') {\n    if (*(char *)(param_1 + 0x5b79) == '\0') {\n      FUN_000e74a0(param_1 + 4);\n      return;\n    }\n  }\n  else {\n    pcVar4 = (char *)gettext("%s: missing group end\n");\n    fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2);\n    FUN_000dccc0();\n  }" if (parenthesized_expression "(*(char *)(param_1 + 0x5b78) == '\0')" ( (binary_expression "*(char *)(param_1 + 0x5b78) == '\0'" (pointer_expression "*(char *)(param_1 + 0x5b78)" * (cast_expression "(char *)(param_1 + 0x5b78)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5b78)" ( (binary_expression "param_1 + 0x5b78" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    if (*(char *)(param_1 + 0x5b79) == '\0') {\n      FUN_000e74a0(param_1 + 4);\n      return;\n    }\n  }" { (if_statement "if (*(char *)(param_1 + 0x5b79) == '\0') {\n      FUN_000e74a0(param_1 + 4);\n      return;\n    }" if (parenthesized_expression "(*(char *)(param_1 + 0x5b79) == '\0')" ( (binary_expression "*(char *)(param_1 + 0x5b79) == '\0'" (pointer_expression "*(char *)(param_1 + 0x5b79)" * (cast_expression "(char *)(param_1 + 0x5b79)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5b79)" ( (binary_expression "param_1 + 0x5b79" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      FUN_000e74a0(param_1 + 4);\n      return;\n    }" { (expression_statement "FUN_000e74a0(param_1 + 4);" (call_expression "FUN_000e74a0(param_1 + 4)" identifier (argument_list "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n    pcVar4 = (char *)gettext("%s: missing group end\n");\n    fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2);\n    FUN_000dccc0();\n  }" else (compound_statement "{\n    pcVar4 = (char *)gettext("%s: missing group end\n");\n    fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2);\n    FUN_000dccc0();\n  }" { (expression_statement "pcVar4 = (char *)gettext("%s: missing group end\n");" (assignment_expression "pcVar4 = (char *)gettext("%s: missing group end\n")" identifier = (cast_expression "(char *)gettext("%s: missing group end\n")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("%s: missing group end\n")" identifier (argument_list "("%s: missing group end\n")" ( (string_literal ""%s: missing group end\n"" " string_content escape_sequence ") ))))) ;) (expression_statement "fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2);" (call_expression "fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2)" identifier (argument_list "(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2)" ( (pointer_expression "*(FILE **)PTR_stderr_0038ed28" * (cast_expression "(FILE **)PTR_stderr_0038ed28" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) , identifier , identifier ))) ;) (expression_statement "FUN_000dccc0();" (call_expression "FUN_000dccc0()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "uVar2 = DAT_0038f488;" (assignment_expression "uVar2 = DAT_0038f488" identifier = identifier) ;) (expression_statement "pcVar4 = (char *)gettext("%s: missing lib end\n");" (assignment_expression "pcVar4 = (char *)gettext("%s: missing lib end\n")" identifier = (cast_expression "(char *)gettext("%s: missing lib end\n")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("%s: missing lib end\n")" identifier (argument_list "("%s: missing lib end\n")" ( (string_literal ""%s: missing lib end\n"" " string_content escape_sequence ") ))))) ;) (expression_statement "fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2);" (call_expression "fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2)" identifier (argument_list "(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2)" ( (pointer_expression "*(FILE **)PTR_stderr_0038ed28" * (cast_expression "(FILE **)PTR_stderr_0038ed28" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) , identifier , identifier ))) ;) (expression_statement "FUN_000dccc0();" (call_expression "FUN_000dccc0()" identifier (argument_list "()" ( ))) ;) comment (expression_statement "FUN_0002f5c0();" (call_expression "FUN_0002f5c0()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original prototype: void process(Command_line * this, int argc, char * * argv) */\n\nvoid __thiscall gold::Command_line::process(Command_line *this,int argc,char **argv)\n\n{\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar1;\n  char *pcVar2;\n  size_t sVar3;\n  Object_format OVar4;\n  char *pcVar5;\n  int i;\n  int in_stack_ffffff78;\n  char **in_stack_ffffff7c;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *local_78;\n  bool no_more_options;\n  Input_file_argument file;\n  \n  no_more_options = false;\n  if (0 < argc) {\n    i = 0;\n    paVar1 = &file.extra_search_path_.field_2;\n    do {\n      while( true ) {\n        (this->position_options_).as_needed_ = (this->options_).as_needed_.value;\n        (this->position_options_).Bdynamic_ = (this->options_).Bdynamic_.value;\n        OVar4 = General_options::string_to_object_format((this->options_).format_.value);\n        (this->position_options_).format_enum_ = OVar4;\n        (this->position_options_).whole_archive_ = (this->options_).whole_archive_.value;\n        (this->position_options_).incremental_disposition_ =\n             (this->options_).incremental_disposition_;\n        pcVar2 = argv[i];\n        if (no_more_options == false) break;\n        file.name_._M_dataplus._M_p = (pointer)&file.name_.field_2;\n        pcVar5 = (char *)0xffffffff;\n        if (pcVar2 != (char *)0x0) {\nLAB_000e8c02:\n          file.name_._M_dataplus._M_p = (pointer)&file.name_.field_2;\n          sVar3 = strlen(pcVar2);\n          pcVar5 = pcVar2 + sVar3;\n        }\n        local_78 = &file.name_.field_2;\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char_const*>(&file.name_,pcVar2,pcVar5,0);\n        file.type_ = INPUT_FILE_TYPE_FILE;\n        file.extra_search_path_._M_dataplus._M_p = (pointer)paVar1;\n                    /* try { // try from 000e8c46 to 000e8c4a has its CatchHandler @ 000e8e04 */\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char_const*>(&file.extra_search_path_,"","",0);\n        file.just_symbols_ = false;\n        file.options_.as_needed_ = (this->position_options_).as_needed_;\n        file.options_.Bdynamic_ = (this->position_options_).Bdynamic_;\n        file.options_._2_2_ = *(undefined2 *)&(this->position_options_).field_0x2;\n        file.arg_serial_ = 0;\n        file.options_.format_enum_ = (this->position_options_).format_enum_;\n        file.options_.whole_archive_ = (this->position_options_).whole_archive_;\n        file.options_._9_3_ = *(undefined3 *)&(this->position_options_).field_0x9;\n        file.options_.incremental_disposition_ = (this->position_options_).incremental_disposition_;\n                    /* try { // try from 000e8c86 to 000e8c8a has its CatchHandler @ 000e8dfd */\n        Input_arguments::add_file(&this->inputs_,&file);\n        i = i + 1;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)file.extra_search_path_._M_dataplus._M_p != paVar1) {\n          operator_delete(file.extra_search_path_._M_dataplus._M_p);\n        }\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)file.name_._M_dataplus._M_p != local_78) {\n          operator_delete(file.name_._M_dataplus._M_p);\n        }\n        if (argc <= i) goto LAB_000e8d68;\n      }\n      if (*pcVar2 != '-') goto LAB_000e8c02;\n      i = process_one_option(this,argc,argv,i,&no_more_options);\n    } while (i < argc);\n  }\nLAB_000e8d68:\n  pcVar2 = program_name;\n  if ((this->inputs_).in_group_ == false) {\n    if ((this->inputs_).in_lib_ == false) {\n      General_options::finalize(&this->options_);\n      return;\n    }\n  }\n  else {\n    pcVar5 = (char *)gettext("%s: missing group end\n");\n    fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar5,pcVar2);\n    anon_unknown.dwarf_a6a7ee::usage();\n  }\n  pcVar2 = program_name;\n  pcVar5 = (char *)gettext("%s: missing lib end\n");\n  fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar5,pcVar2);\n  anon_unknown.dwarf_a6a7ee::usage();\n                    /* catch() { ... } // from try @ 000e8c86 with catch @ 000e8dfd */\n  process(in_stack_ffffff78,in_stack_ffffff7c);\n  return;\n}\n\n" comment comment comment (function_definition "void __thiscall gold::Command_line::process(Command_line *this,int argc,char **argv)\n\n{\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar1;\n  char *pcVar2;\n  size_t sVar3;\n  Object_format OVar4;\n  char *pcVar5;\n  int i;\n  int in_stack_ffffff78;\n  char **in_stack_ffffff7c;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *local_78;\n  bool no_more_options;\n  Input_file_argument file;\n  \n  no_more_options = false;\n  if (0 < argc) {\n    i = 0;\n    paVar1 = &file.extra_search_path_.field_2;\n    do {\n      while( true ) {\n        (this->position_options_).as_needed_ = (this->options_).as_needed_.value;\n        (this->position_options_).Bdynamic_ = (this->options_).Bdynamic_.value;\n        OVar4 = General_options::string_to_object_format((this->options_).format_.value);\n        (this->position_options_).format_enum_ = OVar4;\n        (this->position_options_).whole_archive_ = (this->options_).whole_archive_.value;\n        (this->position_options_).incremental_disposition_ =\n             (this->options_).incremental_disposition_;\n        pcVar2 = argv[i];\n        if (no_more_options == false) break;\n        file.name_._M_dataplus._M_p = (pointer)&file.name_.field_2;\n        pcVar5 = (char *)0xffffffff;\n        if (pcVar2 != (char *)0x0) {\nLAB_000e8c02:\n          file.name_._M_dataplus._M_p = (pointer)&file.name_.field_2;\n          sVar3 = strlen(pcVar2);\n          pcVar5 = pcVar2 + sVar3;\n        }\n        local_78 = &file.name_.field_2;\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char_const*>(&file.name_,pcVar2,pcVar5,0);\n        file.type_ = INPUT_FILE_TYPE_FILE;\n        file.extra_search_path_._M_dataplus._M_p = (pointer)paVar1;\n                    /* try { // try from 000e8c46 to 000e8c4a has its CatchHandler @ 000e8e04 */\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char_const*>(&file.extra_search_path_,"","",0);\n        file.just_symbols_ = false;\n        file.options_.as_needed_ = (this->position_options_).as_needed_;\n        file.options_.Bdynamic_ = (this->position_options_).Bdynamic_;\n        file.options_._2_2_ = *(undefined2 *)&(this->position_options_).field_0x2;\n        file.arg_serial_ = 0;\n        file.options_.format_enum_ = (this->position_options_).format_enum_;\n        file.options_.whole_archive_ = (this->position_options_).whole_archive_;\n        file.options_._9_3_ = *(undefined3 *)&(this->position_options_).field_0x9;\n        file.options_.incremental_disposition_ = (this->position_options_).incremental_disposition_;\n                    /* try { // try from 000e8c86 to 000e8c8a has its CatchHandler @ 000e8dfd */\n        Input_arguments::add_file(&this->inputs_,&file);\n        i = i + 1;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)file.extra_search_path_._M_dataplus._M_p != paVar1) {\n          operator_delete(file.extra_search_path_._M_dataplus._M_p);\n        }\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)file.name_._M_dataplus._M_p != local_78) {\n          operator_delete(file.name_._M_dataplus._M_p);\n        }\n        if (argc <= i) goto LAB_000e8d68;\n      }\n      if (*pcVar2 != '-') goto LAB_000e8c02;\n      i = process_one_option(this,argc,argv,i,&no_more_options);\n    } while (i < argc);\n  }\nLAB_000e8d68:\n  pcVar2 = program_name;\n  if ((this->inputs_).in_group_ == false) {\n    if ((this->inputs_).in_lib_ == false) {\n      General_options::finalize(&this->options_);\n      return;\n    }\n  }\n  else {\n    pcVar5 = (char *)gettext("%s: missing group end\n");\n    fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar5,pcVar2);\n    anon_unknown.dwarf_a6a7ee::usage();\n  }\n  pcVar2 = program_name;\n  pcVar5 = (char *)gettext("%s: missing lib end\n");\n  fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar5,pcVar2);\n  anon_unknown.dwarf_a6a7ee::usage();\n                    /* catch() { ... } // from try @ 000e8c86 with catch @ 000e8dfd */\n  process(in_stack_ffffff78,in_stack_ffffff7c);\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Command_line::" identifier : : identifier : :) (function_declarator "process(Command_line *this,int argc,char **argv)" identifier (parameter_list "(Command_line *this,int argc,char **argv)" ( (parameter_declaration "Command_line *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "int argc" primitive_type identifier) , (parameter_declaration "char **argv" primitive_type (pointer_declarator "**argv" * (pointer_declarator "*argv" * identifier))) ))) (compound_statement "{\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar1;\n  char *pcVar2;\n  size_t sVar3;\n  Object_format OVar4;\n  char *pcVar5;\n  int i;\n  int in_stack_ffffff78;\n  char **in_stack_ffffff7c;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *local_78;\n  bool no_more_options;\n  Input_file_argument file;\n  \n  no_more_options = false;\n  if (0 < argc) {\n    i = 0;\n    paVar1 = &file.extra_search_path_.field_2;\n    do {\n      while( true ) {\n        (this->position_options_).as_needed_ = (this->options_).as_needed_.value;\n        (this->position_options_).Bdynamic_ = (this->options_).Bdynamic_.value;\n        OVar4 = General_options::string_to_object_format((this->options_).format_.value);\n        (this->position_options_).format_enum_ = OVar4;\n        (this->position_options_).whole_archive_ = (this->options_).whole_archive_.value;\n        (this->position_options_).incremental_disposition_ =\n             (this->options_).incremental_disposition_;\n        pcVar2 = argv[i];\n        if (no_more_options == false) break;\n        file.name_._M_dataplus._M_p = (pointer)&file.name_.field_2;\n        pcVar5 = (char *)0xffffffff;\n        if (pcVar2 != (char *)0x0) {\nLAB_000e8c02:\n          file.name_._M_dataplus._M_p = (pointer)&file.name_.field_2;\n          sVar3 = strlen(pcVar2);\n          pcVar5 = pcVar2 + sVar3;\n        }\n        local_78 = &file.name_.field_2;\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char_const*>(&file.name_,pcVar2,pcVar5,0);\n        file.type_ = INPUT_FILE_TYPE_FILE;\n        file.extra_search_path_._M_dataplus._M_p = (pointer)paVar1;\n                    /* try { // try from 000e8c46 to 000e8c4a has its CatchHandler @ 000e8e04 */\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char_const*>(&file.extra_search_path_,"","",0);\n        file.just_symbols_ = false;\n        file.options_.as_needed_ = (this->position_options_).as_needed_;\n        file.options_.Bdynamic_ = (this->position_options_).Bdynamic_;\n        file.options_._2_2_ = *(undefined2 *)&(this->position_options_).field_0x2;\n        file.arg_serial_ = 0;\n        file.options_.format_enum_ = (this->position_options_).format_enum_;\n        file.options_.whole_archive_ = (this->position_options_).whole_archive_;\n        file.options_._9_3_ = *(undefined3 *)&(this->position_options_).field_0x9;\n        file.options_.incremental_disposition_ = (this->position_options_).incremental_disposition_;\n                    /* try { // try from 000e8c86 to 000e8c8a has its CatchHandler @ 000e8dfd */\n        Input_arguments::add_file(&this->inputs_,&file);\n        i = i + 1;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)file.extra_search_path_._M_dataplus._M_p != paVar1) {\n          operator_delete(file.extra_search_path_._M_dataplus._M_p);\n        }\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)file.name_._M_dataplus._M_p != local_78) {\n          operator_delete(file.name_._M_dataplus._M_p);\n        }\n        if (argc <= i) goto LAB_000e8d68;\n      }\n      if (*pcVar2 != '-') goto LAB_000e8c02;\n      i = process_one_option(this,argc,argv,i,&no_more_options);\n    } while (i < argc);\n  }\nLAB_000e8d68:\n  pcVar2 = program_name;\n  if ((this->inputs_).in_group_ == false) {\n    if ((this->inputs_).in_lib_ == false) {\n      General_options::finalize(&this->options_);\n      return;\n    }\n  }\n  else {\n    pcVar5 = (char *)gettext("%s: missing group end\n");\n    fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar5,pcVar2);\n    anon_unknown.dwarf_a6a7ee::usage();\n  }\n  pcVar2 = program_name;\n  pcVar5 = (char *)gettext("%s: missing lib end\n");\n  fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar5,pcVar2);\n  anon_unknown.dwarf_a6a7ee::usage();\n                    /* catch() { ... } // from try @ 000e8c86 with catch @ 000e8dfd */\n  process(in_stack_ffffff78,in_stack_ffffff7c);\n  return;\n}" { (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) : :) (expression_statement "allocator<char>_>_9\n  *paVar1;" (binary_expression "allocator<char>_>_9\n  *paVar1" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *paVar1" identifier * identifier)) ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "Object_format OVar4;" type_identifier identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "int i;" primitive_type identifier ;) (declaration "int in_stack_ffffff78;" primitive_type identifier ;) (declaration "char **in_stack_ffffff7c;" primitive_type (pointer_declarator "**in_stack_ffffff7c" * (pointer_declarator "*in_stack_ffffff7c" * identifier)) ;) (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) : :) (expression_statement "allocator<char>_>_9\n  *local_78;" (binary_expression "allocator<char>_>_9\n  *local_78" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *local_78" identifier * identifier)) ;) (declaration "bool no_more_options;" primitive_type identifier ;) (declaration "Input_file_argument file;" type_identifier identifier ;) (expression_statement "no_more_options = false;" (assignment_expression "no_more_options = false" identifier = false) ;) (if_statement "if (0 < argc) {\n    i = 0;\n    paVar1 = &file.extra_search_path_.field_2;\n    do {\n      while( true ) {\n        (this->position_options_).as_needed_ = (this->options_).as_needed_.value;\n        (this->position_options_).Bdynamic_ = (this->options_).Bdynamic_.value;\n        OVar4 = General_options::string_to_object_format((this->options_).format_.value);\n        (this->position_options_).format_enum_ = OVar4;\n        (this->position_options_).whole_archive_ = (this->options_).whole_archive_.value;\n        (this->position_options_).incremental_disposition_ =\n             (this->options_).incremental_disposition_;\n        pcVar2 = argv[i];\n        if (no_more_options == false) break;\n        file.name_._M_dataplus._M_p = (pointer)&file.name_.field_2;\n        pcVar5 = (char *)0xffffffff;\n        if (pcVar2 != (char *)0x0) {\nLAB_000e8c02:\n          file.name_._M_dataplus._M_p = (pointer)&file.name_.field_2;\n          sVar3 = strlen(pcVar2);\n          pcVar5 = pcVar2 + sVar3;\n        }\n        local_78 = &file.name_.field_2;\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char_const*>(&file.name_,pcVar2,pcVar5,0);\n        file.type_ = INPUT_FILE_TYPE_FILE;\n        file.extra_search_path_._M_dataplus._M_p = (pointer)paVar1;\n                    /* try { // try from 000e8c46 to 000e8c4a has its CatchHandler @ 000e8e04 */\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char_const*>(&file.extra_search_path_,"","",0);\n        file.just_symbols_ = false;\n        file.options_.as_needed_ = (this->position_options_).as_needed_;\n        file.options_.Bdynamic_ = (this->position_options_).Bdynamic_;\n        file.options_._2_2_ = *(undefined2 *)&(this->position_options_).field_0x2;\n        file.arg_serial_ = 0;\n        file.options_.format_enum_ = (this->position_options_).format_enum_;\n        file.options_.whole_archive_ = (this->position_options_).whole_archive_;\n        file.options_._9_3_ = *(undefined3 *)&(this->position_options_).field_0x9;\n        file.options_.incremental_disposition_ = (this->position_options_).incremental_disposition_;\n                    /* try { // try from 000e8c86 to 000e8c8a has its CatchHandler @ 000e8dfd */\n        Input_arguments::add_file(&this->inputs_,&file);\n        i = i + 1;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)file.extra_search_path_._M_dataplus._M_p != paVar1) {\n          operator_delete(file.extra_search_path_._M_dataplus._M_p);\n        }\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)file.name_._M_dataplus._M_p != local_78) {\n          operator_delete(file.name_._M_dataplus._M_p);\n        }\n        if (argc <= i) goto LAB_000e8d68;\n      }\n      if (*pcVar2 != '-') goto LAB_000e8c02;\n      i = process_one_option(this,argc,argv,i,&no_more_options);\n    } while (i < argc);\n  }" if (parenthesized_expression "(0 < argc)" ( (binary_expression "0 < argc" number_literal < identifier) )) (compound_statement "{\n    i = 0;\n    paVar1 = &file.extra_search_path_.field_2;\n    do {\n      while( true ) {\n        (this->position_options_).as_needed_ = (this->options_).as_needed_.value;\n        (this->position_options_).Bdynamic_ = (this->options_).Bdynamic_.value;\n        OVar4 = General_options::string_to_object_format((this->options_).format_.value);\n        (this->position_options_).format_enum_ = OVar4;\n        (this->position_options_).whole_archive_ = (this->options_).whole_archive_.value;\n        (this->position_options_).incremental_disposition_ =\n             (this->options_).incremental_disposition_;\n        pcVar2 = argv[i];\n        if (no_more_options == false) break;\n        file.name_._M_dataplus._M_p = (pointer)&file.name_.field_2;\n        pcVar5 = (char *)0xffffffff;\n        if (pcVar2 != (char *)0x0) {\nLAB_000e8c02:\n          file.name_._M_dataplus._M_p = (pointer)&file.name_.field_2;\n          sVar3 = strlen(pcVar2);\n          pcVar5 = pcVar2 + sVar3;\n        }\n        local_78 = &file.name_.field_2;\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char_const*>(&file.name_,pcVar2,pcVar5,0);\n        file.type_ = INPUT_FILE_TYPE_FILE;\n        file.extra_search_path_._M_dataplus._M_p = (pointer)paVar1;\n                    /* try { // try from 000e8c46 to 000e8c4a has its CatchHandler @ 000e8e04 */\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char_const*>(&file.extra_search_path_,"","",0);\n        file.just_symbols_ = false;\n        file.options_.as_needed_ = (this->position_options_).as_needed_;\n        file.options_.Bdynamic_ = (this->position_options_).Bdynamic_;\n        file.options_._2_2_ = *(undefined2 *)&(this->position_options_).field_0x2;\n        file.arg_serial_ = 0;\n        file.options_.format_enum_ = (this->position_options_).format_enum_;\n        file.options_.whole_archive_ = (this->position_options_).whole_archive_;\n        file.options_._9_3_ = *(undefined3 *)&(this->position_options_).field_0x9;\n        file.options_.incremental_disposition_ = (this->position_options_).incremental_disposition_;\n                    /* try { // try from 000e8c86 to 000e8c8a has its CatchHandler @ 000e8dfd */\n        Input_arguments::add_file(&this->inputs_,&file);\n        i = i + 1;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)file.extra_search_path_._M_dataplus._M_p != paVar1) {\n          operator_delete(file.extra_search_path_._M_dataplus._M_p);\n        }\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)file.name_._M_dataplus._M_p != local_78) {\n          operator_delete(file.name_._M_dataplus._M_p);\n        }\n        if (argc <= i) goto LAB_000e8d68;\n      }\n      if (*pcVar2 != '-') goto LAB_000e8c02;\n      i = process_one_option(this,argc,argv,i,&no_more_options);\n    } while (i < argc);\n  }" { (expression_statement "i = 0;" (assignment_expression "i = 0" identifier = number_literal) ;) (expression_statement "paVar1 = &file.extra_search_path_.field_2;" (assignment_expression "paVar1 = &file.extra_search_path_.field_2" identifier = (pointer_expression "&file.extra_search_path_.field_2" & (field_expression "file.extra_search_path_.field_2" (field_expression "file.extra_search_path_" identifier . field_identifier) . field_identifier))) ;) (do_statement "do {\n      while( true ) {\n        (this->position_options_).as_needed_ = (this->options_).as_needed_.value;\n        (this->position_options_).Bdynamic_ = (this->options_).Bdynamic_.value;\n        OVar4 = General_options::string_to_object_format((this->options_).format_.value);\n        (this->position_options_).format_enum_ = OVar4;\n        (this->position_options_).whole_archive_ = (this->options_).whole_archive_.value;\n        (this->position_options_).incremental_disposition_ =\n             (this->options_).incremental_disposition_;\n        pcVar2 = argv[i];\n        if (no_more_options == false) break;\n        file.name_._M_dataplus._M_p = (pointer)&file.name_.field_2;\n        pcVar5 = (char *)0xffffffff;\n        if (pcVar2 != (char *)0x0) {\nLAB_000e8c02:\n          file.name_._M_dataplus._M_p = (pointer)&file.name_.field_2;\n          sVar3 = strlen(pcVar2);\n          pcVar5 = pcVar2 + sVar3;\n        }\n        local_78 = &file.name_.field_2;\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char_const*>(&file.name_,pcVar2,pcVar5,0);\n        file.type_ = INPUT_FILE_TYPE_FILE;\n        file.extra_search_path_._M_dataplus._M_p = (pointer)paVar1;\n                    /* try { // try from 000e8c46 to 000e8c4a has its CatchHandler @ 000e8e04 */\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char_const*>(&file.extra_search_path_,"","",0);\n        file.just_symbols_ = false;\n        file.options_.as_needed_ = (this->position_options_).as_needed_;\n        file.options_.Bdynamic_ = (this->position_options_).Bdynamic_;\n        file.options_._2_2_ = *(undefined2 *)&(this->position_options_).field_0x2;\n        file.arg_serial_ = 0;\n        file.options_.format_enum_ = (this->position_options_).format_enum_;\n        file.options_.whole_archive_ = (this->position_options_).whole_archive_;\n        file.options_._9_3_ = *(undefined3 *)&(this->position_options_).field_0x9;\n        file.options_.incremental_disposition_ = (this->position_options_).incremental_disposition_;\n                    /* try { // try from 000e8c86 to 000e8c8a has its CatchHandler @ 000e8dfd */\n        Input_arguments::add_file(&this->inputs_,&file);\n        i = i + 1;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)file.extra_search_path_._M_dataplus._M_p != paVar1) {\n          operator_delete(file.extra_search_path_._M_dataplus._M_p);\n        }\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)file.name_._M_dataplus._M_p != local_78) {\n          operator_delete(file.name_._M_dataplus._M_p);\n        }\n        if (argc <= i) goto LAB_000e8d68;\n      }\n      if (*pcVar2 != '-') goto LAB_000e8c02;\n      i = process_one_option(this,argc,argv,i,&no_more_options);\n    } while (i < argc);" do (compound_statement "{\n      while( true ) {\n        (this->position_options_).as_needed_ = (this->options_).as_needed_.value;\n        (this->position_options_).Bdynamic_ = (this->options_).Bdynamic_.value;\n        OVar4 = General_options::string_to_object_format((this->options_).format_.value);\n        (this->position_options_).format_enum_ = OVar4;\n        (this->position_options_).whole_archive_ = (this->options_).whole_archive_.value;\n        (this->position_options_).incremental_disposition_ =\n             (this->options_).incremental_disposition_;\n        pcVar2 = argv[i];\n        if (no_more_options == false) break;\n        file.name_._M_dataplus._M_p = (pointer)&file.name_.field_2;\n        pcVar5 = (char *)0xffffffff;\n        if (pcVar2 != (char *)0x0) {\nLAB_000e8c02:\n          file.name_._M_dataplus._M_p = (pointer)&file.name_.field_2;\n          sVar3 = strlen(pcVar2);\n          pcVar5 = pcVar2 + sVar3;\n        }\n        local_78 = &file.name_.field_2;\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char_const*>(&file.name_,pcVar2,pcVar5,0);\n        file.type_ = INPUT_FILE_TYPE_FILE;\n        file.extra_search_path_._M_dataplus._M_p = (pointer)paVar1;\n                    /* try { // try from 000e8c46 to 000e8c4a has its CatchHandler @ 000e8e04 */\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char_const*>(&file.extra_search_path_,"","",0);\n        file.just_symbols_ = false;\n        file.options_.as_needed_ = (this->position_options_).as_needed_;\n        file.options_.Bdynamic_ = (this->position_options_).Bdynamic_;\n        file.options_._2_2_ = *(undefined2 *)&(this->position_options_).field_0x2;\n        file.arg_serial_ = 0;\n        file.options_.format_enum_ = (this->position_options_).format_enum_;\n        file.options_.whole_archive_ = (this->position_options_).whole_archive_;\n        file.options_._9_3_ = *(undefined3 *)&(this->position_options_).field_0x9;\n        file.options_.incremental_disposition_ = (this->position_options_).incremental_disposition_;\n                    /* try { // try from 000e8c86 to 000e8c8a has its CatchHandler @ 000e8dfd */\n        Input_arguments::add_file(&this->inputs_,&file);\n        i = i + 1;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)file.extra_search_path_._M_dataplus._M_p != paVar1) {\n          operator_delete(file.extra_search_path_._M_dataplus._M_p);\n        }\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)file.name_._M_dataplus._M_p != local_78) {\n          operator_delete(file.name_._M_dataplus._M_p);\n        }\n        if (argc <= i) goto LAB_000e8d68;\n      }\n      if (*pcVar2 != '-') goto LAB_000e8c02;\n      i = process_one_option(this,argc,argv,i,&no_more_options);\n    }" { (while_statement "while( true ) {\n        (this->position_options_).as_needed_ = (this->options_).as_needed_.value;\n        (this->position_options_).Bdynamic_ = (this->options_).Bdynamic_.value;\n        OVar4 = General_options::string_to_object_format((this->options_).format_.value);\n        (this->position_options_).format_enum_ = OVar4;\n        (this->position_options_).whole_archive_ = (this->options_).whole_archive_.value;\n        (this->position_options_).incremental_disposition_ =\n             (this->options_).incremental_disposition_;\n        pcVar2 = argv[i];\n        if (no_more_options == false) break;\n        file.name_._M_dataplus._M_p = (pointer)&file.name_.field_2;\n        pcVar5 = (char *)0xffffffff;\n        if (pcVar2 != (char *)0x0) {\nLAB_000e8c02:\n          file.name_._M_dataplus._M_p = (pointer)&file.name_.field_2;\n          sVar3 = strlen(pcVar2);\n          pcVar5 = pcVar2 + sVar3;\n        }\n        local_78 = &file.name_.field_2;\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char_const*>(&file.name_,pcVar2,pcVar5,0);\n        file.type_ = INPUT_FILE_TYPE_FILE;\n        file.extra_search_path_._M_dataplus._M_p = (pointer)paVar1;\n                    /* try { // try from 000e8c46 to 000e8c4a has its CatchHandler @ 000e8e04 */\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char_const*>(&file.extra_search_path_,"","",0);\n        file.just_symbols_ = false;\n        file.options_.as_needed_ = (this->position_options_).as_needed_;\n        file.options_.Bdynamic_ = (this->position_options_).Bdynamic_;\n        file.options_._2_2_ = *(undefined2 *)&(this->position_options_).field_0x2;\n        file.arg_serial_ = 0;\n        file.options_.format_enum_ = (this->position_options_).format_enum_;\n        file.options_.whole_archive_ = (this->position_options_).whole_archive_;\n        file.options_._9_3_ = *(undefined3 *)&(this->position_options_).field_0x9;\n        file.options_.incremental_disposition_ = (this->position_options_).incremental_disposition_;\n                    /* try { // try from 000e8c86 to 000e8c8a has its CatchHandler @ 000e8dfd */\n        Input_arguments::add_file(&this->inputs_,&file);\n        i = i + 1;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)file.extra_search_path_._M_dataplus._M_p != paVar1) {\n          operator_delete(file.extra_search_path_._M_dataplus._M_p);\n        }\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)file.name_._M_dataplus._M_p != local_78) {\n          operator_delete(file.name_._M_dataplus._M_p);\n        }\n        if (argc <= i) goto LAB_000e8d68;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        (this->position_options_).as_needed_ = (this->options_).as_needed_.value;\n        (this->position_options_).Bdynamic_ = (this->options_).Bdynamic_.value;\n        OVar4 = General_options::string_to_object_format((this->options_).format_.value);\n        (this->position_options_).format_enum_ = OVar4;\n        (this->position_options_).whole_archive_ = (this->options_).whole_archive_.value;\n        (this->position_options_).incremental_disposition_ =\n             (this->options_).incremental_disposition_;\n        pcVar2 = argv[i];\n        if (no_more_options == false) break;\n        file.name_._M_dataplus._M_p = (pointer)&file.name_.field_2;\n        pcVar5 = (char *)0xffffffff;\n        if (pcVar2 != (char *)0x0) {\nLAB_000e8c02:\n          file.name_._M_dataplus._M_p = (pointer)&file.name_.field_2;\n          sVar3 = strlen(pcVar2);\n          pcVar5 = pcVar2 + sVar3;\n        }\n        local_78 = &file.name_.field_2;\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char_const*>(&file.name_,pcVar2,pcVar5,0);\n        file.type_ = INPUT_FILE_TYPE_FILE;\n        file.extra_search_path_._M_dataplus._M_p = (pointer)paVar1;\n                    /* try { // try from 000e8c46 to 000e8c4a has its CatchHandler @ 000e8e04 */\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char_const*>(&file.extra_search_path_,"","",0);\n        file.just_symbols_ = false;\n        file.options_.as_needed_ = (this->position_options_).as_needed_;\n        file.options_.Bdynamic_ = (this->position_options_).Bdynamic_;\n        file.options_._2_2_ = *(undefined2 *)&(this->position_options_).field_0x2;\n        file.arg_serial_ = 0;\n        file.options_.format_enum_ = (this->position_options_).format_enum_;\n        file.options_.whole_archive_ = (this->position_options_).whole_archive_;\n        file.options_._9_3_ = *(undefined3 *)&(this->position_options_).field_0x9;\n        file.options_.incremental_disposition_ = (this->position_options_).incremental_disposition_;\n                    /* try { // try from 000e8c86 to 000e8c8a has its CatchHandler @ 000e8dfd */\n        Input_arguments::add_file(&this->inputs_,&file);\n        i = i + 1;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)file.extra_search_path_._M_dataplus._M_p != paVar1) {\n          operator_delete(file.extra_search_path_._M_dataplus._M_p);\n        }\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)file.name_._M_dataplus._M_p != local_78) {\n          operator_delete(file.name_._M_dataplus._M_p);\n        }\n        if (argc <= i) goto LAB_000e8d68;\n      }" { (expression_statement "(this->position_options_).as_needed_ = (this->options_).as_needed_.value;" (assignment_expression "(this->position_options_).as_needed_ = (this->options_).as_needed_.value" (field_expression "(this->position_options_).as_needed_" (parenthesized_expression "(this->position_options_)" ( (field_expression "this->position_options_" identifier -> field_identifier) )) . field_identifier) = (field_expression "(this->options_).as_needed_.value" (field_expression "(this->options_).as_needed_" (parenthesized_expression "(this->options_)" ( (field_expression "this->options_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "(this->position_options_).Bdynamic_ = (this->options_).Bdynamic_.value;" (assignment_expression "(this->position_options_).Bdynamic_ = (this->options_).Bdynamic_.value" (field_expression "(this->position_options_).Bdynamic_" (parenthesized_expression "(this->position_options_)" ( (field_expression "this->position_options_" identifier -> field_identifier) )) . field_identifier) = (field_expression "(this->options_).Bdynamic_.value" (field_expression "(this->options_).Bdynamic_" (parenthesized_expression "(this->options_)" ( (field_expression "this->options_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (ERROR "OVar4 = General_options::" (assignment_expression "OVar4 = General_options" identifier = identifier) : :) (expression_statement "string_to_object_format((this->options_).format_.value);" (call_expression "string_to_object_format((this->options_).format_.value)" identifier (argument_list "((this->options_).format_.value)" ( (field_expression "(this->options_).format_.value" (field_expression "(this->options_).format_" (parenthesized_expression "(this->options_)" ( (field_expression "this->options_" identifier -> field_identifier) )) . field_identifier) . field_identifier) ))) ;) (expression_statement "(this->position_options_).format_enum_ = OVar4;" (assignment_expression "(this->position_options_).format_enum_ = OVar4" (field_expression "(this->position_options_).format_enum_" (parenthesized_expression "(this->position_options_)" ( (field_expression "this->position_options_" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(this->position_options_).whole_archive_ = (this->options_).whole_archive_.value;" (assignment_expression "(this->position_options_).whole_archive_ = (this->options_).whole_archive_.value" (field_expression "(this->position_options_).whole_archive_" (parenthesized_expression "(this->position_options_)" ( (field_expression "this->position_options_" identifier -> field_identifier) )) . field_identifier) = (field_expression "(this->options_).whole_archive_.value" (field_expression "(this->options_).whole_archive_" (parenthesized_expression "(this->options_)" ( (field_expression "this->options_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "(this->position_options_).incremental_disposition_ =\n             (this->options_).incremental_disposition_;" (assignment_expression "(this->position_options_).incremental_disposition_ =\n             (this->options_).incremental_disposition_" (field_expression "(this->position_options_).incremental_disposition_" (parenthesized_expression "(this->position_options_)" ( (field_expression "this->position_options_" identifier -> field_identifier) )) . field_identifier) = (field_expression "(this->options_).incremental_disposition_" (parenthesized_expression "(this->options_)" ( (field_expression "this->options_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pcVar2 = argv[i];" (assignment_expression "pcVar2 = argv[i]" identifier = (subscript_expression "argv[i]" identifier [ identifier ])) ;) (if_statement "if (no_more_options == false) break;" if (parenthesized_expression "(no_more_options == false)" ( (binary_expression "no_more_options == false" identifier == false) )) (break_statement "break;" break ;)) (expression_statement "file.name_._M_dataplus._M_p = (pointer)&file.name_.field_2;" (assignment_expression "file.name_._M_dataplus._M_p = (pointer)&file.name_.field_2" (field_expression "file.name_._M_dataplus._M_p" (field_expression "file.name_._M_dataplus" (field_expression "file.name_" identifier . field_identifier) . field_identifier) . field_identifier) = (binary_expression "(pointer)&file.name_.field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "file.name_.field_2" (field_expression "file.name_" identifier . field_identifier) . field_identifier))) ;) (expression_statement "pcVar5 = (char *)0xffffffff;" (assignment_expression "pcVar5 = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pcVar2 != (char *)0x0) {\nLAB_000e8c02:\n          file.name_._M_dataplus._M_p = (pointer)&file.name_.field_2;\n          sVar3 = strlen(pcVar2);\n          pcVar5 = pcVar2 + sVar3;\n        }" if (parenthesized_expression "(pcVar2 != (char *)0x0)" ( (binary_expression "pcVar2 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000e8c02:\n          file.name_._M_dataplus._M_p = (pointer)&file.name_.field_2;\n          sVar3 = strlen(pcVar2);\n          pcVar5 = pcVar2 + sVar3;\n        }" { (labeled_statement "LAB_000e8c02:\n          file.name_._M_dataplus._M_p = (pointer)&file.name_.field_2;" statement_identifier : (expression_statement "file.name_._M_dataplus._M_p = (pointer)&file.name_.field_2;" (assignment_expression "file.name_._M_dataplus._M_p = (pointer)&file.name_.field_2" (field_expression "file.name_._M_dataplus._M_p" (field_expression "file.name_._M_dataplus" (field_expression "file.name_" identifier . field_identifier) . field_identifier) . field_identifier) = (binary_expression "(pointer)&file.name_.field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "file.name_.field_2" (field_expression "file.name_" identifier . field_identifier) . field_identifier))) ;)) (expression_statement "sVar3 = strlen(pcVar2);" (assignment_expression "sVar3 = strlen(pcVar2)" identifier = (call_expression "strlen(pcVar2)" identifier (argument_list "(pcVar2)" ( identifier )))) ;) (expression_statement "pcVar5 = pcVar2 + sVar3;" (assignment_expression "pcVar5 = pcVar2 + sVar3" identifier = (binary_expression "pcVar2 + sVar3" identifier + identifier)) ;) })) (expression_statement "local_78 = &file.name_.field_2;" (assignment_expression "local_78 = &file.name_.field_2" identifier = (pointer_expression "&file.name_.field_2" & (field_expression "file.name_.field_2" (field_expression "file.name_" identifier . field_identifier) . field_identifier))) ;) (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char_const*>(&file.name_,pcVar2,pcVar5,0);" statement_identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<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) > :) : (expression_statement "_M_construct<char_const*>(&file.name_,pcVar2,pcVar5,0);" (binary_expression "_M_construct<char_const*>(&file.name_,pcVar2,pcVar5,0)" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "(&file.name_,pcVar2,pcVar5,0)" ( (comma_expression "&file.name_,pcVar2,pcVar5,0" (pointer_expression "&file.name_" & (field_expression "file.name_" identifier . field_identifier)) , (comma_expression "pcVar2,pcVar5,0" identifier , (comma_expression "pcVar5,0" identifier , number_literal))) ))) ;)) (expression_statement "file.type_ = INPUT_FILE_TYPE_FILE;" (assignment_expression "file.type_ = INPUT_FILE_TYPE_FILE" (field_expression "file.type_" identifier . field_identifier) = identifier) ;) (expression_statement "file.extra_search_path_._M_dataplus._M_p = (pointer)paVar1;" (assignment_expression "file.extra_search_path_._M_dataplus._M_p = (pointer)paVar1" (field_expression "file.extra_search_path_._M_dataplus._M_p" (field_expression "file.extra_search_path_._M_dataplus" (field_expression "file.extra_search_path_" identifier . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar1" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) comment (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char_const*>(&file.extra_search_path_,"","",0);" statement_identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<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) > :) : (expression_statement "_M_construct<char_const*>(&file.extra_search_path_,"","",0);" (binary_expression "_M_construct<char_const*>(&file.extra_search_path_,"","",0)" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "(&file.extra_search_path_,"","",0)" ( (comma_expression "&file.extra_search_path_,"","",0" (pointer_expression "&file.extra_search_path_" & (field_expression "file.extra_search_path_" identifier . field_identifier)) , (comma_expression ""","",0" (string_literal """" " ") , (comma_expression """,0" (string_literal """" " ") , number_literal))) ))) ;)) (expression_statement "file.just_symbols_ = false;" (assignment_expression "file.just_symbols_ = false" (field_expression "file.just_symbols_" identifier . field_identifier) = false) ;) (expression_statement "file.options_.as_needed_ = (this->position_options_).as_needed_;" (assignment_expression "file.options_.as_needed_ = (this->position_options_).as_needed_" (field_expression "file.options_.as_needed_" (field_expression "file.options_" identifier . field_identifier) . field_identifier) = (field_expression "(this->position_options_).as_needed_" (parenthesized_expression "(this->position_options_)" ( (field_expression "this->position_options_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "file.options_.Bdynamic_ = (this->position_options_).Bdynamic_;" (assignment_expression "file.options_.Bdynamic_ = (this->position_options_).Bdynamic_" (field_expression "file.options_.Bdynamic_" (field_expression "file.options_" identifier . field_identifier) . field_identifier) = (field_expression "(this->position_options_).Bdynamic_" (parenthesized_expression "(this->position_options_)" ( (field_expression "this->position_options_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "file.options_._2_2_ = *(undefined2 *)&(this->position_options_).field_0x2;" (assignment_expression "file.options_._2_2_ = *(undefined2 *)&(this->position_options_).field_0x2" (field_expression "file.options_._2_2_" (field_expression "file.options_" identifier . field_identifier) . field_identifier) = (pointer_expression "*(undefined2 *)&(this->position_options_).field_0x2" * (cast_expression "(undefined2 *)&(this->position_options_).field_0x2" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this->position_options_).field_0x2" & (field_expression "(this->position_options_).field_0x2" (parenthesized_expression "(this->position_options_)" ( (field_expression "this->position_options_" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "file.arg_serial_ = 0;" (assignment_expression "file.arg_serial_ = 0" (field_expression "file.arg_serial_" identifier . field_identifier) = number_literal) ;) (expression_statement "file.options_.format_enum_ = (this->position_options_).format_enum_;" (assignment_expression "file.options_.format_enum_ = (this->position_options_).format_enum_" (field_expression "file.options_.format_enum_" (field_expression "file.options_" identifier . field_identifier) . field_identifier) = (field_expression "(this->position_options_).format_enum_" (parenthesized_expression "(this->position_options_)" ( (field_expression "this->position_options_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "file.options_.whole_archive_ = (this->position_options_).whole_archive_;" (assignment_expression "file.options_.whole_archive_ = (this->position_options_).whole_archive_" (field_expression "file.options_.whole_archive_" (field_expression "file.options_" identifier . field_identifier) . field_identifier) = (field_expression "(this->position_options_).whole_archive_" (parenthesized_expression "(this->position_options_)" ( (field_expression "this->position_options_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "file.options_._9_3_ = *(undefined3 *)&(this->position_options_).field_0x9;" (assignment_expression "file.options_._9_3_ = *(undefined3 *)&(this->position_options_).field_0x9" (field_expression "file.options_._9_3_" (field_expression "file.options_" identifier . field_identifier) . field_identifier) = (pointer_expression "*(undefined3 *)&(this->position_options_).field_0x9" * (cast_expression "(undefined3 *)&(this->position_options_).field_0x9" ( (type_descriptor "undefined3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this->position_options_).field_0x9" & (field_expression "(this->position_options_).field_0x9" (parenthesized_expression "(this->position_options_)" ( (field_expression "this->position_options_" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "file.options_.incremental_disposition_ = (this->position_options_).incremental_disposition_;" (assignment_expression "file.options_.incremental_disposition_ = (this->position_options_).incremental_disposition_" (field_expression "file.options_.incremental_disposition_" (field_expression "file.options_" identifier . field_identifier) . field_identifier) = (field_expression "(this->position_options_).incremental_disposition_" (parenthesized_expression "(this->position_options_)" ( (field_expression "this->position_options_" identifier -> field_identifier) )) . field_identifier)) ;) comment (labeled_statement "Input_arguments::add_file(&this->inputs_,&file);" statement_identifier : (ERROR ":" :) (expression_statement "add_file(&this->inputs_,&file);" (call_expression "add_file(&this->inputs_,&file)" identifier (argument_list "(&this->inputs_,&file)" ( (pointer_expression "&this->inputs_" & (field_expression "this->inputs_" identifier -> field_identifier)) , (pointer_expression "&file" & identifier) ))) ;)) (expression_statement "i = i + 1;" (assignment_expression "i = i + 1" identifier = (binary_expression "i + 1" identifier + number_literal)) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)file.extra_search_path_._M_dataplus._M_p != paVar1) {\n          operator_delete(file.extra_search_path_._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             *)file.extra_search_path_._M_dataplus._M_p != paVar1)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)file.extra_search_path_._M_dataplus._M_p != paVar1)" ( (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             *)file.extra_search_path_._M_dataplus._M_p != paVar1" (binary_expression "allocator<char>_>_9\n             *)file.extra_search_path_._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n             *)file.extra_search_path_._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "file.extra_search_path_._M_dataplus._M_p" (field_expression "file.extra_search_path_._M_dataplus" (field_expression "file.extra_search_path_" identifier . field_identifier) . field_identifier) . field_identifier))) != identifier) )) )) (compound_statement "{\n          operator_delete(file.extra_search_path_._M_dataplus._M_p);\n        }" { (expression_statement "operator_delete(file.extra_search_path_._M_dataplus._M_p);" (call_expression "operator_delete(file.extra_search_path_._M_dataplus._M_p)" identifier (argument_list "(file.extra_search_path_._M_dataplus._M_p)" ( (field_expression "file.extra_search_path_._M_dataplus._M_p" (field_expression "file.extra_search_path_._M_dataplus" (field_expression "file.extra_search_path_" identifier . field_identifier) . 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             *)file.name_._M_dataplus._M_p != local_78) {\n          operator_delete(file.name_._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             *)file.name_._M_dataplus._M_p != local_78)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)file.name_._M_dataplus._M_p != local_78)" ( (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             *)file.name_._M_dataplus._M_p != local_78" (binary_expression "allocator<char>_>_9\n             *)file.name_._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n             *)file.name_._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "file.name_._M_dataplus._M_p" (field_expression "file.name_._M_dataplus" (field_expression "file.name_" identifier . field_identifier) . field_identifier) . field_identifier))) != identifier) )) )) (compound_statement "{\n          operator_delete(file.name_._M_dataplus._M_p);\n        }" { (expression_statement "operator_delete(file.name_._M_dataplus._M_p);" (call_expression "operator_delete(file.name_._M_dataplus._M_p)" identifier (argument_list "(file.name_._M_dataplus._M_p)" ( (field_expression "file.name_._M_dataplus._M_p" (field_expression "file.name_._M_dataplus" (field_expression "file.name_" identifier . field_identifier) . field_identifier) . field_identifier) ))) ;) })) (if_statement "if (argc <= i) goto LAB_000e8d68;" if (parenthesized_expression "(argc <= i)" ( (binary_expression "argc <= i" identifier <= identifier) )) (goto_statement "goto LAB_000e8d68;" goto statement_identifier ;)) })) (if_statement "if (*pcVar2 != '-') goto LAB_000e8c02;" if (parenthesized_expression "(*pcVar2 != '-')" ( (binary_expression "*pcVar2 != '-'" (pointer_expression "*pcVar2" * identifier) != (char_literal "'-'" ' character ')) )) (goto_statement "goto LAB_000e8c02;" goto statement_identifier ;)) (expression_statement "i = process_one_option(this,argc,argv,i,&no_more_options);" (assignment_expression "i = process_one_option(this,argc,argv,i,&no_more_options)" identifier = (call_expression "process_one_option(this,argc,argv,i,&no_more_options)" identifier (argument_list "(this,argc,argv,i,&no_more_options)" ( identifier , identifier , identifier , identifier , (pointer_expression "&no_more_options" & identifier) )))) ;) }) while (parenthesized_expression "(i < argc)" ( (binary_expression "i < argc" identifier < identifier) )) ;) })) (labeled_statement "LAB_000e8d68:\n  pcVar2 = program_name;" statement_identifier : (expression_statement "pcVar2 = program_name;" (assignment_expression "pcVar2 = program_name" identifier = identifier) ;)) (if_statement "if ((this->inputs_).in_group_ == false) {\n    if ((this->inputs_).in_lib_ == false) {\n      General_options::finalize(&this->options_);\n      return;\n    }\n  }\n  else {\n    pcVar5 = (char *)gettext("%s: missing group end\n");\n    fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar5,pcVar2);\n    anon_unknown.dwarf_a6a7ee::usage();\n  }" if (parenthesized_expression "((this->inputs_).in_group_ == false)" ( (binary_expression "(this->inputs_).in_group_ == false" (field_expression "(this->inputs_).in_group_" (parenthesized_expression "(this->inputs_)" ( (field_expression "this->inputs_" identifier -> field_identifier) )) . field_identifier) == false) )) (compound_statement "{\n    if ((this->inputs_).in_lib_ == false) {\n      General_options::finalize(&this->options_);\n      return;\n    }\n  }" { (if_statement "if ((this->inputs_).in_lib_ == false) {\n      General_options::finalize(&this->options_);\n      return;\n    }" if (parenthesized_expression "((this->inputs_).in_lib_ == false)" ( (binary_expression "(this->inputs_).in_lib_ == false" (field_expression "(this->inputs_).in_lib_" (parenthesized_expression "(this->inputs_)" ( (field_expression "this->inputs_" identifier -> field_identifier) )) . field_identifier) == false) )) (compound_statement "{\n      General_options::finalize(&this->options_);\n      return;\n    }" { (labeled_statement "General_options::finalize(&this->options_);" statement_identifier : (ERROR ":" :) (expression_statement "finalize(&this->options_);" (call_expression "finalize(&this->options_)" identifier (argument_list "(&this->options_)" ( (pointer_expression "&this->options_" & (field_expression "this->options_" identifier -> field_identifier)) ))) ;)) (return_statement "return;" return ;) })) }) (else_clause "else {\n    pcVar5 = (char *)gettext("%s: missing group end\n");\n    fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar5,pcVar2);\n    anon_unknown.dwarf_a6a7ee::usage();\n  }" else (compound_statement "{\n    pcVar5 = (char *)gettext("%s: missing group end\n");\n    fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar5,pcVar2);\n    anon_unknown.dwarf_a6a7ee::usage();\n  }" { (expression_statement "pcVar5 = (char *)gettext("%s: missing group end\n");" (assignment_expression "pcVar5 = (char *)gettext("%s: missing group end\n")" identifier = (cast_expression "(char *)gettext("%s: missing group end\n")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("%s: missing group end\n")" identifier (argument_list "("%s: missing group end\n")" ( (string_literal ""%s: missing group end\n"" " string_content escape_sequence ") ))))) ;) (expression_statement "fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar5,pcVar2);" (call_expression "fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar5,pcVar2)" identifier (argument_list "(*(FILE **)PTR_stderr_0038ed28,pcVar5,pcVar2)" ( (pointer_expression "*(FILE **)PTR_stderr_0038ed28" * (cast_expression "(FILE **)PTR_stderr_0038ed28" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) , identifier , identifier ))) ;) (ERROR "anon_unknown.dwarf_a6a7ee::" (field_expression "anon_unknown.dwarf_a6a7ee" identifier . field_identifier) : :) (expression_statement "usage();" (call_expression "usage()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "pcVar2 = program_name;" (assignment_expression "pcVar2 = program_name" identifier = identifier) ;) (expression_statement "pcVar5 = (char *)gettext("%s: missing lib end\n");" (assignment_expression "pcVar5 = (char *)gettext("%s: missing lib end\n")" identifier = (cast_expression "(char *)gettext("%s: missing lib end\n")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("%s: missing lib end\n")" identifier (argument_list "("%s: missing lib end\n")" ( (string_literal ""%s: missing lib end\n"" " string_content escape_sequence ") ))))) ;) (expression_statement "fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar5,pcVar2);" (call_expression "fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar5,pcVar2)" identifier (argument_list "(*(FILE **)PTR_stderr_0038ed28,pcVar5,pcVar2)" ( (pointer_expression "*(FILE **)PTR_stderr_0038ed28" * (cast_expression "(FILE **)PTR_stderr_0038ed28" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) , identifier , identifier ))) ;) (ERROR "anon_unknown.dwarf_a6a7ee::" (field_expression "anon_unknown.dwarf_a6a7ee" identifier . field_identifier) : :) (expression_statement "usage();" (call_expression "usage()" identifier (argument_list "()" ( ))) ;) comment (expression_statement "process(in_stack_ffffff78,in_stack_ffffff7c);" (call_expression "process(in_stack_ffffff78,in_stack_ffffff7c)" identifier (argument_list "(in_stack_ffffff78,in_stack_ffffff7c)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_000e8bb0(int param_1,int param_2,int param_3)\n\n{\n  size_t sVar1;\n  undefined4 uVar2;\n  char *pcVar3;\n  char *pcVar4;\n  int iVar5;\n  undefined1 *local_78;\n  char local_69;\n  undefined1 *local_68 [2];\n  undefined1 local_60 [16];\n  undefined4 local_50;\n  undefined1 *local_4c [2];\n  undefined1 local_44 [16];\n  undefined1 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  local_69 = '\0';\n  if (0 < param_2) {\n    iVar5 = 0;\n    do {\n      while( true ) {\n        *(undefined1 *)(param_1 + 0x5a90) = *(undefined1 *)(param_1 + 0x2f9);\n        *(undefined1 *)(param_1 + 0x5a91) = *(undefined1 *)(param_1 + 0x54d);\n        uVar2 = FUN_000dd760(*(undefined4 *)(param_1 + 0x3bc));\n        *(undefined4 *)(param_1 + 0x5a94) = uVar2;\n        *(undefined1 *)(param_1 + 0x5a98) = *(undefined1 *)(param_1 + 0x4a31);\n        *(undefined4 *)(param_1 + 0x5a9c) = *(undefined4 *)(param_1 + 0x5a18);\n        pcVar4 = *(char **)(param_3 + iVar5 * 4);\n        if (local_69 == '\0') break;\n        local_68[0] = local_60;\n        pcVar3 = (char *)0xffffffff;\n        if (pcVar4 != (char *)0x0) {\nLAB_000e8c02:\n          local_68[0] = local_60;\n          sVar1 = strlen(pcVar4);\n          pcVar3 = pcVar4 + sVar1;\n        }\n        local_78 = local_60;\n        FUN_00050e40(local_68,pcVar4,pcVar3,0);\n        local_50 = 0;\n        local_4c[0] = local_44;\n                    \n        FUN_00050e40(local_4c,"","",0);\n        local_34 = 0;\n        local_30 = *(undefined4 *)(param_1 + 0x5a90);\n        local_20 = 0;\n        local_2c = *(undefined4 *)(param_1 + 0x5a94);\n        local_28 = *(undefined4 *)(param_1 + 0x5a98);\n        local_24 = *(undefined4 *)(param_1 + 0x5a9c);\n                    \n        FUN_000deb60(param_1 + 0x5b6c,local_68);\n        iVar5 = iVar5 + 1;\n        if (local_4c[0] != local_44) {\n          FUN_001e6db0(local_4c[0]);\n        }\n        if (local_68[0] != local_78) {\n          FUN_001e6db0(local_68[0]);\n        }\n        if (param_2 <= iVar5) goto LAB_000e8d68;\n      }\n      if (*pcVar4 != '-') goto LAB_000e8c02;\n      iVar5 = FUN_000e6c60(param_1,param_2,param_3,iVar5,&local_69);\n    } while (iVar5 < param_2);\n  }\nLAB_000e8d68:\n  uVar2 = DAT_0038f488;\n  if (*(char *)(param_1 + 0x5b78) == '\0') {\n    if (*(char *)(param_1 + 0x5b79) == '\0') {\n      FUN_000e74a0(param_1 + 4);\n      return;\n    }\n  }\n  else {\n    pcVar4 = (char *)gettext("%s: missing group end\n");\n    fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2);\n    FUN_000dccc0();\n  }\n  uVar2 = DAT_0038f488;\n  pcVar4 = (char *)gettext("%s: missing lib end\n");\n  fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2);\n  FUN_000dccc0();\n                    \n  FUN_0002f5c0();\n  return;\n}\n\n" (function_definition "void FUN_000e8bb0(int param_1,int param_2,int param_3)\n\n{\n  size_t sVar1;\n  undefined4 uVar2;\n  char *pcVar3;\n  char *pcVar4;\n  int iVar5;\n  undefined1 *local_78;\n  char local_69;\n  undefined1 *local_68 [2];\n  undefined1 local_60 [16];\n  undefined4 local_50;\n  undefined1 *local_4c [2];\n  undefined1 local_44 [16];\n  undefined1 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  local_69 = '\0';\n  if (0 < param_2) {\n    iVar5 = 0;\n    do {\n      while( true ) {\n        *(undefined1 *)(param_1 + 0x5a90) = *(undefined1 *)(param_1 + 0x2f9);\n        *(undefined1 *)(param_1 + 0x5a91) = *(undefined1 *)(param_1 + 0x54d);\n        uVar2 = FUN_000dd760(*(undefined4 *)(param_1 + 0x3bc));\n        *(undefined4 *)(param_1 + 0x5a94) = uVar2;\n        *(undefined1 *)(param_1 + 0x5a98) = *(undefined1 *)(param_1 + 0x4a31);\n        *(undefined4 *)(param_1 + 0x5a9c) = *(undefined4 *)(param_1 + 0x5a18);\n        pcVar4 = *(char **)(param_3 + iVar5 * 4);\n        if (local_69 == '\0') break;\n        local_68[0] = local_60;\n        pcVar3 = (char *)0xffffffff;\n        if (pcVar4 != (char *)0x0) {\nLAB_000e8c02:\n          local_68[0] = local_60;\n          sVar1 = strlen(pcVar4);\n          pcVar3 = pcVar4 + sVar1;\n        }\n        local_78 = local_60;\n        FUN_00050e40(local_68,pcVar4,pcVar3,0);\n        local_50 = 0;\n        local_4c[0] = local_44;\n                    \n        FUN_00050e40(local_4c,"","",0);\n        local_34 = 0;\n        local_30 = *(undefined4 *)(param_1 + 0x5a90);\n        local_20 = 0;\n        local_2c = *(undefined4 *)(param_1 + 0x5a94);\n        local_28 = *(undefined4 *)(param_1 + 0x5a98);\n        local_24 = *(undefined4 *)(param_1 + 0x5a9c);\n                    \n        FUN_000deb60(param_1 + 0x5b6c,local_68);\n        iVar5 = iVar5 + 1;\n        if (local_4c[0] != local_44) {\n          FUN_001e6db0(local_4c[0]);\n        }\n        if (local_68[0] != local_78) {\n          FUN_001e6db0(local_68[0]);\n        }\n        if (param_2 <= iVar5) goto LAB_000e8d68;\n      }\n      if (*pcVar4 != '-') goto LAB_000e8c02;\n      iVar5 = FUN_000e6c60(param_1,param_2,param_3,iVar5,&local_69);\n    } while (iVar5 < param_2);\n  }\nLAB_000e8d68:\n  uVar2 = DAT_0038f488;\n  if (*(char *)(param_1 + 0x5b78) == '\0') {\n    if (*(char *)(param_1 + 0x5b79) == '\0') {\n      FUN_000e74a0(param_1 + 4);\n      return;\n    }\n  }\n  else {\n    pcVar4 = (char *)gettext("%s: missing group end\n");\n    fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2);\n    FUN_000dccc0();\n  }\n  uVar2 = DAT_0038f488;\n  pcVar4 = (char *)gettext("%s: missing lib end\n");\n  fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2);\n  FUN_000dccc0();\n                    \n  FUN_0002f5c0();\n  return;\n}" primitive_type (function_declarator "FUN_000e8bb0(int param_1,int param_2,int param_3)" identifier (parameter_list "(int param_1,int param_2,int param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  size_t sVar1;\n  undefined4 uVar2;\n  char *pcVar3;\n  char *pcVar4;\n  int iVar5;\n  undefined1 *local_78;\n  char local_69;\n  undefined1 *local_68 [2];\n  undefined1 local_60 [16];\n  undefined4 local_50;\n  undefined1 *local_4c [2];\n  undefined1 local_44 [16];\n  undefined1 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  local_69 = '\0';\n  if (0 < param_2) {\n    iVar5 = 0;\n    do {\n      while( true ) {\n        *(undefined1 *)(param_1 + 0x5a90) = *(undefined1 *)(param_1 + 0x2f9);\n        *(undefined1 *)(param_1 + 0x5a91) = *(undefined1 *)(param_1 + 0x54d);\n        uVar2 = FUN_000dd760(*(undefined4 *)(param_1 + 0x3bc));\n        *(undefined4 *)(param_1 + 0x5a94) = uVar2;\n        *(undefined1 *)(param_1 + 0x5a98) = *(undefined1 *)(param_1 + 0x4a31);\n        *(undefined4 *)(param_1 + 0x5a9c) = *(undefined4 *)(param_1 + 0x5a18);\n        pcVar4 = *(char **)(param_3 + iVar5 * 4);\n        if (local_69 == '\0') break;\n        local_68[0] = local_60;\n        pcVar3 = (char *)0xffffffff;\n        if (pcVar4 != (char *)0x0) {\nLAB_000e8c02:\n          local_68[0] = local_60;\n          sVar1 = strlen(pcVar4);\n          pcVar3 = pcVar4 + sVar1;\n        }\n        local_78 = local_60;\n        FUN_00050e40(local_68,pcVar4,pcVar3,0);\n        local_50 = 0;\n        local_4c[0] = local_44;\n                    \n        FUN_00050e40(local_4c,"","",0);\n        local_34 = 0;\n        local_30 = *(undefined4 *)(param_1 + 0x5a90);\n        local_20 = 0;\n        local_2c = *(undefined4 *)(param_1 + 0x5a94);\n        local_28 = *(undefined4 *)(param_1 + 0x5a98);\n        local_24 = *(undefined4 *)(param_1 + 0x5a9c);\n                    \n        FUN_000deb60(param_1 + 0x5b6c,local_68);\n        iVar5 = iVar5 + 1;\n        if (local_4c[0] != local_44) {\n          FUN_001e6db0(local_4c[0]);\n        }\n        if (local_68[0] != local_78) {\n          FUN_001e6db0(local_68[0]);\n        }\n        if (param_2 <= iVar5) goto LAB_000e8d68;\n      }\n      if (*pcVar4 != '-') goto LAB_000e8c02;\n      iVar5 = FUN_000e6c60(param_1,param_2,param_3,iVar5,&local_69);\n    } while (iVar5 < param_2);\n  }\nLAB_000e8d68:\n  uVar2 = DAT_0038f488;\n  if (*(char *)(param_1 + 0x5b78) == '\0') {\n    if (*(char *)(param_1 + 0x5b79) == '\0') {\n      FUN_000e74a0(param_1 + 4);\n      return;\n    }\n  }\n  else {\n    pcVar4 = (char *)gettext("%s: missing group end\n");\n    fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2);\n    FUN_000dccc0();\n  }\n  uVar2 = DAT_0038f488;\n  pcVar4 = (char *)gettext("%s: missing lib end\n");\n  fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2);\n  FUN_000dccc0();\n                    \n  FUN_0002f5c0();\n  return;\n}" { (declaration "size_t sVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined1 *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "char local_69;" primitive_type identifier ;) (declaration "undefined1 *local_68 [2];" type_identifier (pointer_declarator "*local_68 [2]" * (array_declarator "local_68 [2]" identifier [ number_literal ])) ;) (declaration "undefined1 local_60 [16];" type_identifier (array_declarator "local_60 [16]" identifier [ number_literal ]) ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "undefined1 *local_4c [2];" type_identifier (pointer_declarator "*local_4c [2]" * (array_declarator "local_4c [2]" identifier [ number_literal ])) ;) (declaration "undefined1 local_44 [16];" type_identifier (array_declarator "local_44 [16]" identifier [ number_literal ]) ;) (declaration "undefined1 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (expression_statement "local_69 = '\0';" (assignment_expression "local_69 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (0 < param_2) {\n    iVar5 = 0;\n    do {\n      while( true ) {\n        *(undefined1 *)(param_1 + 0x5a90) = *(undefined1 *)(param_1 + 0x2f9);\n        *(undefined1 *)(param_1 + 0x5a91) = *(undefined1 *)(param_1 + 0x54d);\n        uVar2 = FUN_000dd760(*(undefined4 *)(param_1 + 0x3bc));\n        *(undefined4 *)(param_1 + 0x5a94) = uVar2;\n        *(undefined1 *)(param_1 + 0x5a98) = *(undefined1 *)(param_1 + 0x4a31);\n        *(undefined4 *)(param_1 + 0x5a9c) = *(undefined4 *)(param_1 + 0x5a18);\n        pcVar4 = *(char **)(param_3 + iVar5 * 4);\n        if (local_69 == '\0') break;\n        local_68[0] = local_60;\n        pcVar3 = (char *)0xffffffff;\n        if (pcVar4 != (char *)0x0) {\nLAB_000e8c02:\n          local_68[0] = local_60;\n          sVar1 = strlen(pcVar4);\n          pcVar3 = pcVar4 + sVar1;\n        }\n        local_78 = local_60;\n        FUN_00050e40(local_68,pcVar4,pcVar3,0);\n        local_50 = 0;\n        local_4c[0] = local_44;\n                    \n        FUN_00050e40(local_4c,"","",0);\n        local_34 = 0;\n        local_30 = *(undefined4 *)(param_1 + 0x5a90);\n        local_20 = 0;\n        local_2c = *(undefined4 *)(param_1 + 0x5a94);\n        local_28 = *(undefined4 *)(param_1 + 0x5a98);\n        local_24 = *(undefined4 *)(param_1 + 0x5a9c);\n                    \n        FUN_000deb60(param_1 + 0x5b6c,local_68);\n        iVar5 = iVar5 + 1;\n        if (local_4c[0] != local_44) {\n          FUN_001e6db0(local_4c[0]);\n        }\n        if (local_68[0] != local_78) {\n          FUN_001e6db0(local_68[0]);\n        }\n        if (param_2 <= iVar5) goto LAB_000e8d68;\n      }\n      if (*pcVar4 != '-') goto LAB_000e8c02;\n      iVar5 = FUN_000e6c60(param_1,param_2,param_3,iVar5,&local_69);\n    } while (iVar5 < param_2);\n  }" if (parenthesized_expression "(0 < param_2)" ( (binary_expression "0 < param_2" number_literal < identifier) )) (compound_statement "{\n    iVar5 = 0;\n    do {\n      while( true ) {\n        *(undefined1 *)(param_1 + 0x5a90) = *(undefined1 *)(param_1 + 0x2f9);\n        *(undefined1 *)(param_1 + 0x5a91) = *(undefined1 *)(param_1 + 0x54d);\n        uVar2 = FUN_000dd760(*(undefined4 *)(param_1 + 0x3bc));\n        *(undefined4 *)(param_1 + 0x5a94) = uVar2;\n        *(undefined1 *)(param_1 + 0x5a98) = *(undefined1 *)(param_1 + 0x4a31);\n        *(undefined4 *)(param_1 + 0x5a9c) = *(undefined4 *)(param_1 + 0x5a18);\n        pcVar4 = *(char **)(param_3 + iVar5 * 4);\n        if (local_69 == '\0') break;\n        local_68[0] = local_60;\n        pcVar3 = (char *)0xffffffff;\n        if (pcVar4 != (char *)0x0) {\nLAB_000e8c02:\n          local_68[0] = local_60;\n          sVar1 = strlen(pcVar4);\n          pcVar3 = pcVar4 + sVar1;\n        }\n        local_78 = local_60;\n        FUN_00050e40(local_68,pcVar4,pcVar3,0);\n        local_50 = 0;\n        local_4c[0] = local_44;\n                    \n        FUN_00050e40(local_4c,"","",0);\n        local_34 = 0;\n        local_30 = *(undefined4 *)(param_1 + 0x5a90);\n        local_20 = 0;\n        local_2c = *(undefined4 *)(param_1 + 0x5a94);\n        local_28 = *(undefined4 *)(param_1 + 0x5a98);\n        local_24 = *(undefined4 *)(param_1 + 0x5a9c);\n                    \n        FUN_000deb60(param_1 + 0x5b6c,local_68);\n        iVar5 = iVar5 + 1;\n        if (local_4c[0] != local_44) {\n          FUN_001e6db0(local_4c[0]);\n        }\n        if (local_68[0] != local_78) {\n          FUN_001e6db0(local_68[0]);\n        }\n        if (param_2 <= iVar5) goto LAB_000e8d68;\n      }\n      if (*pcVar4 != '-') goto LAB_000e8c02;\n      iVar5 = FUN_000e6c60(param_1,param_2,param_3,iVar5,&local_69);\n    } while (iVar5 < param_2);\n  }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n      while( true ) {\n        *(undefined1 *)(param_1 + 0x5a90) = *(undefined1 *)(param_1 + 0x2f9);\n        *(undefined1 *)(param_1 + 0x5a91) = *(undefined1 *)(param_1 + 0x54d);\n        uVar2 = FUN_000dd760(*(undefined4 *)(param_1 + 0x3bc));\n        *(undefined4 *)(param_1 + 0x5a94) = uVar2;\n        *(undefined1 *)(param_1 + 0x5a98) = *(undefined1 *)(param_1 + 0x4a31);\n        *(undefined4 *)(param_1 + 0x5a9c) = *(undefined4 *)(param_1 + 0x5a18);\n        pcVar4 = *(char **)(param_3 + iVar5 * 4);\n        if (local_69 == '\0') break;\n        local_68[0] = local_60;\n        pcVar3 = (char *)0xffffffff;\n        if (pcVar4 != (char *)0x0) {\nLAB_000e8c02:\n          local_68[0] = local_60;\n          sVar1 = strlen(pcVar4);\n          pcVar3 = pcVar4 + sVar1;\n        }\n        local_78 = local_60;\n        FUN_00050e40(local_68,pcVar4,pcVar3,0);\n        local_50 = 0;\n        local_4c[0] = local_44;\n                    \n        FUN_00050e40(local_4c,"","",0);\n        local_34 = 0;\n        local_30 = *(undefined4 *)(param_1 + 0x5a90);\n        local_20 = 0;\n        local_2c = *(undefined4 *)(param_1 + 0x5a94);\n        local_28 = *(undefined4 *)(param_1 + 0x5a98);\n        local_24 = *(undefined4 *)(param_1 + 0x5a9c);\n                    \n        FUN_000deb60(param_1 + 0x5b6c,local_68);\n        iVar5 = iVar5 + 1;\n        if (local_4c[0] != local_44) {\n          FUN_001e6db0(local_4c[0]);\n        }\n        if (local_68[0] != local_78) {\n          FUN_001e6db0(local_68[0]);\n        }\n        if (param_2 <= iVar5) goto LAB_000e8d68;\n      }\n      if (*pcVar4 != '-') goto LAB_000e8c02;\n      iVar5 = FUN_000e6c60(param_1,param_2,param_3,iVar5,&local_69);\n    } while (iVar5 < param_2);" do (compound_statement "{\n      while( true ) {\n        *(undefined1 *)(param_1 + 0x5a90) = *(undefined1 *)(param_1 + 0x2f9);\n        *(undefined1 *)(param_1 + 0x5a91) = *(undefined1 *)(param_1 + 0x54d);\n        uVar2 = FUN_000dd760(*(undefined4 *)(param_1 + 0x3bc));\n        *(undefined4 *)(param_1 + 0x5a94) = uVar2;\n        *(undefined1 *)(param_1 + 0x5a98) = *(undefined1 *)(param_1 + 0x4a31);\n        *(undefined4 *)(param_1 + 0x5a9c) = *(undefined4 *)(param_1 + 0x5a18);\n        pcVar4 = *(char **)(param_3 + iVar5 * 4);\n        if (local_69 == '\0') break;\n        local_68[0] = local_60;\n        pcVar3 = (char *)0xffffffff;\n        if (pcVar4 != (char *)0x0) {\nLAB_000e8c02:\n          local_68[0] = local_60;\n          sVar1 = strlen(pcVar4);\n          pcVar3 = pcVar4 + sVar1;\n        }\n        local_78 = local_60;\n        FUN_00050e40(local_68,pcVar4,pcVar3,0);\n        local_50 = 0;\n        local_4c[0] = local_44;\n                    \n        FUN_00050e40(local_4c,"","",0);\n        local_34 = 0;\n        local_30 = *(undefined4 *)(param_1 + 0x5a90);\n        local_20 = 0;\n        local_2c = *(undefined4 *)(param_1 + 0x5a94);\n        local_28 = *(undefined4 *)(param_1 + 0x5a98);\n        local_24 = *(undefined4 *)(param_1 + 0x5a9c);\n                    \n        FUN_000deb60(param_1 + 0x5b6c,local_68);\n        iVar5 = iVar5 + 1;\n        if (local_4c[0] != local_44) {\n          FUN_001e6db0(local_4c[0]);\n        }\n        if (local_68[0] != local_78) {\n          FUN_001e6db0(local_68[0]);\n        }\n        if (param_2 <= iVar5) goto LAB_000e8d68;\n      }\n      if (*pcVar4 != '-') goto LAB_000e8c02;\n      iVar5 = FUN_000e6c60(param_1,param_2,param_3,iVar5,&local_69);\n    }" { (while_statement "while( true ) {\n        *(undefined1 *)(param_1 + 0x5a90) = *(undefined1 *)(param_1 + 0x2f9);\n        *(undefined1 *)(param_1 + 0x5a91) = *(undefined1 *)(param_1 + 0x54d);\n        uVar2 = FUN_000dd760(*(undefined4 *)(param_1 + 0x3bc));\n        *(undefined4 *)(param_1 + 0x5a94) = uVar2;\n        *(undefined1 *)(param_1 + 0x5a98) = *(undefined1 *)(param_1 + 0x4a31);\n        *(undefined4 *)(param_1 + 0x5a9c) = *(undefined4 *)(param_1 + 0x5a18);\n        pcVar4 = *(char **)(param_3 + iVar5 * 4);\n        if (local_69 == '\0') break;\n        local_68[0] = local_60;\n        pcVar3 = (char *)0xffffffff;\n        if (pcVar4 != (char *)0x0) {\nLAB_000e8c02:\n          local_68[0] = local_60;\n          sVar1 = strlen(pcVar4);\n          pcVar3 = pcVar4 + sVar1;\n        }\n        local_78 = local_60;\n        FUN_00050e40(local_68,pcVar4,pcVar3,0);\n        local_50 = 0;\n        local_4c[0] = local_44;\n                    \n        FUN_00050e40(local_4c,"","",0);\n        local_34 = 0;\n        local_30 = *(undefined4 *)(param_1 + 0x5a90);\n        local_20 = 0;\n        local_2c = *(undefined4 *)(param_1 + 0x5a94);\n        local_28 = *(undefined4 *)(param_1 + 0x5a98);\n        local_24 = *(undefined4 *)(param_1 + 0x5a9c);\n                    \n        FUN_000deb60(param_1 + 0x5b6c,local_68);\n        iVar5 = iVar5 + 1;\n        if (local_4c[0] != local_44) {\n          FUN_001e6db0(local_4c[0]);\n        }\n        if (local_68[0] != local_78) {\n          FUN_001e6db0(local_68[0]);\n        }\n        if (param_2 <= iVar5) goto LAB_000e8d68;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        *(undefined1 *)(param_1 + 0x5a90) = *(undefined1 *)(param_1 + 0x2f9);\n        *(undefined1 *)(param_1 + 0x5a91) = *(undefined1 *)(param_1 + 0x54d);\n        uVar2 = FUN_000dd760(*(undefined4 *)(param_1 + 0x3bc));\n        *(undefined4 *)(param_1 + 0x5a94) = uVar2;\n        *(undefined1 *)(param_1 + 0x5a98) = *(undefined1 *)(param_1 + 0x4a31);\n        *(undefined4 *)(param_1 + 0x5a9c) = *(undefined4 *)(param_1 + 0x5a18);\n        pcVar4 = *(char **)(param_3 + iVar5 * 4);\n        if (local_69 == '\0') break;\n        local_68[0] = local_60;\n        pcVar3 = (char *)0xffffffff;\n        if (pcVar4 != (char *)0x0) {\nLAB_000e8c02:\n          local_68[0] = local_60;\n          sVar1 = strlen(pcVar4);\n          pcVar3 = pcVar4 + sVar1;\n        }\n        local_78 = local_60;\n        FUN_00050e40(local_68,pcVar4,pcVar3,0);\n        local_50 = 0;\n        local_4c[0] = local_44;\n                    \n        FUN_00050e40(local_4c,"","",0);\n        local_34 = 0;\n        local_30 = *(undefined4 *)(param_1 + 0x5a90);\n        local_20 = 0;\n        local_2c = *(undefined4 *)(param_1 + 0x5a94);\n        local_28 = *(undefined4 *)(param_1 + 0x5a98);\n        local_24 = *(undefined4 *)(param_1 + 0x5a9c);\n                    \n        FUN_000deb60(param_1 + 0x5b6c,local_68);\n        iVar5 = iVar5 + 1;\n        if (local_4c[0] != local_44) {\n          FUN_001e6db0(local_4c[0]);\n        }\n        if (local_68[0] != local_78) {\n          FUN_001e6db0(local_68[0]);\n        }\n        if (param_2 <= iVar5) goto LAB_000e8d68;\n      }" { (expression_statement "*(undefined1 *)(param_1 + 0x5a90) = *(undefined1 *)(param_1 + 0x2f9);" (assignment_expression "*(undefined1 *)(param_1 + 0x5a90) = *(undefined1 *)(param_1 + 0x2f9)" (pointer_expression "*(undefined1 *)(param_1 + 0x5a90)" * (cast_expression "(undefined1 *)(param_1 + 0x5a90)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5a90)" ( (binary_expression "param_1 + 0x5a90" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)(param_1 + 0x2f9)" * (cast_expression "(undefined1 *)(param_1 + 0x2f9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2f9)" ( (binary_expression "param_1 + 0x2f9" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(param_1 + 0x5a91) = *(undefined1 *)(param_1 + 0x54d);" (assignment_expression "*(undefined1 *)(param_1 + 0x5a91) = *(undefined1 *)(param_1 + 0x54d)" (pointer_expression "*(undefined1 *)(param_1 + 0x5a91)" * (cast_expression "(undefined1 *)(param_1 + 0x5a91)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5a91)" ( (binary_expression "param_1 + 0x5a91" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)(param_1 + 0x54d)" * (cast_expression "(undefined1 *)(param_1 + 0x54d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54d)" ( (binary_expression "param_1 + 0x54d" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = FUN_000dd760(*(undefined4 *)(param_1 + 0x3bc));" (assignment_expression "uVar2 = FUN_000dd760(*(undefined4 *)(param_1 + 0x3bc))" identifier = (call_expression "FUN_000dd760(*(undefined4 *)(param_1 + 0x3bc))" identifier (argument_list "(*(undefined4 *)(param_1 + 0x3bc))" ( (pointer_expression "*(undefined4 *)(param_1 + 0x3bc)" * (cast_expression "(undefined4 *)(param_1 + 0x3bc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3bc)" ( (binary_expression "param_1 + 0x3bc" identifier + number_literal) )))) )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x5a94) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 0x5a94) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 0x5a94)" * (cast_expression "(undefined4 *)(param_1 + 0x5a94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5a94)" ( (binary_expression "param_1 + 0x5a94" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(param_1 + 0x5a98) = *(undefined1 *)(param_1 + 0x4a31);" (assignment_expression "*(undefined1 *)(param_1 + 0x5a98) = *(undefined1 *)(param_1 + 0x4a31)" (pointer_expression "*(undefined1 *)(param_1 + 0x5a98)" * (cast_expression "(undefined1 *)(param_1 + 0x5a98)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5a98)" ( (binary_expression "param_1 + 0x5a98" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)(param_1 + 0x4a31)" * (cast_expression "(undefined1 *)(param_1 + 0x4a31)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4a31)" ( (binary_expression "param_1 + 0x4a31" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x5a9c) = *(undefined4 *)(param_1 + 0x5a18);" (assignment_expression "*(undefined4 *)(param_1 + 0x5a9c) = *(undefined4 *)(param_1 + 0x5a18)" (pointer_expression "*(undefined4 *)(param_1 + 0x5a9c)" * (cast_expression "(undefined4 *)(param_1 + 0x5a9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5a9c)" ( (binary_expression "param_1 + 0x5a9c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_1 + 0x5a18)" * (cast_expression "(undefined4 *)(param_1 + 0x5a18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5a18)" ( (binary_expression "param_1 + 0x5a18" identifier + number_literal) ))))) ;) (expression_statement "pcVar4 = *(char **)(param_3 + iVar5 * 4);" (assignment_expression "pcVar4 = *(char **)(param_3 + iVar5 * 4)" identifier = (pointer_expression "*(char **)(param_3 + iVar5 * 4)" * (cast_expression "(char **)(param_3 + iVar5 * 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + iVar5 * 4)" ( (binary_expression "param_3 + iVar5 * 4" identifier + (binary_expression "iVar5 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (local_69 == '\0') break;" if (parenthesized_expression "(local_69 == '\0')" ( (binary_expression "local_69 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (expression_statement "local_68[0] = local_60;" (assignment_expression "local_68[0] = local_60" (subscript_expression "local_68[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pcVar3 = (char *)0xffffffff;" (assignment_expression "pcVar3 = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pcVar4 != (char *)0x0) {\nLAB_000e8c02:\n          local_68[0] = local_60;\n          sVar1 = strlen(pcVar4);\n          pcVar3 = pcVar4 + sVar1;\n        }" if (parenthesized_expression "(pcVar4 != (char *)0x0)" ( (binary_expression "pcVar4 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000e8c02:\n          local_68[0] = local_60;\n          sVar1 = strlen(pcVar4);\n          pcVar3 = pcVar4 + sVar1;\n        }" { (labeled_statement "LAB_000e8c02:\n          local_68[0] = local_60;" statement_identifier : (expression_statement "local_68[0] = local_60;" (assignment_expression "local_68[0] = local_60" (subscript_expression "local_68[0]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "sVar1 = strlen(pcVar4);" (assignment_expression "sVar1 = strlen(pcVar4)" identifier = (call_expression "strlen(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier )))) ;) (expression_statement "pcVar3 = pcVar4 + sVar1;" (assignment_expression "pcVar3 = pcVar4 + sVar1" identifier = (binary_expression "pcVar4 + sVar1" identifier + identifier)) ;) })) (expression_statement "local_78 = local_60;" (assignment_expression "local_78 = local_60" identifier = identifier) ;) (expression_statement "FUN_00050e40(local_68,pcVar4,pcVar3,0);" (call_expression "FUN_00050e40(local_68,pcVar4,pcVar3,0)" identifier (argument_list "(local_68,pcVar4,pcVar3,0)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "local_4c[0] = local_44;" (assignment_expression "local_4c[0] = local_44" (subscript_expression "local_4c[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00050e40(local_4c,"","",0);" (call_expression "FUN_00050e40(local_4c,"","",0)" identifier (argument_list "(local_4c,"","",0)" ( identifier , (string_literal """" " ") , (string_literal """" " ") , number_literal ))) ;) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "local_30 = *(undefined4 *)(param_1 + 0x5a90);" (assignment_expression "local_30 = *(undefined4 *)(param_1 + 0x5a90)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x5a90)" * (cast_expression "(undefined4 *)(param_1 + 0x5a90)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5a90)" ( (binary_expression "param_1 + 0x5a90" identifier + number_literal) ))))) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_2c = *(undefined4 *)(param_1 + 0x5a94);" (assignment_expression "local_2c = *(undefined4 *)(param_1 + 0x5a94)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x5a94)" * (cast_expression "(undefined4 *)(param_1 + 0x5a94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5a94)" ( (binary_expression "param_1 + 0x5a94" identifier + number_literal) ))))) ;) (expression_statement "local_28 = *(undefined4 *)(param_1 + 0x5a98);" (assignment_expression "local_28 = *(undefined4 *)(param_1 + 0x5a98)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x5a98)" * (cast_expression "(undefined4 *)(param_1 + 0x5a98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5a98)" ( (binary_expression "param_1 + 0x5a98" identifier + number_literal) ))))) ;) (expression_statement "local_24 = *(undefined4 *)(param_1 + 0x5a9c);" (assignment_expression "local_24 = *(undefined4 *)(param_1 + 0x5a9c)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x5a9c)" * (cast_expression "(undefined4 *)(param_1 + 0x5a9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5a9c)" ( (binary_expression "param_1 + 0x5a9c" identifier + number_literal) ))))) ;) (expression_statement "FUN_000deb60(param_1 + 0x5b6c,local_68);" (call_expression "FUN_000deb60(param_1 + 0x5b6c,local_68)" identifier (argument_list "(param_1 + 0x5b6c,local_68)" ( (binary_expression "param_1 + 0x5b6c" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (if_statement "if (local_4c[0] != local_44) {\n          FUN_001e6db0(local_4c[0]);\n        }" if (parenthesized_expression "(local_4c[0] != local_44)" ( (binary_expression "local_4c[0] != local_44" (subscript_expression "local_4c[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n          FUN_001e6db0(local_4c[0]);\n        }" { (expression_statement "FUN_001e6db0(local_4c[0]);" (call_expression "FUN_001e6db0(local_4c[0])" identifier (argument_list "(local_4c[0])" ( (subscript_expression "local_4c[0]" identifier [ number_literal ]) ))) ;) })) (if_statement "if (local_68[0] != local_78) {\n          FUN_001e6db0(local_68[0]);\n        }" if (parenthesized_expression "(local_68[0] != local_78)" ( (binary_expression "local_68[0] != local_78" (subscript_expression "local_68[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n          FUN_001e6db0(local_68[0]);\n        }" { (expression_statement "FUN_001e6db0(local_68[0]);" (call_expression "FUN_001e6db0(local_68[0])" identifier (argument_list "(local_68[0])" ( (subscript_expression "local_68[0]" identifier [ number_literal ]) ))) ;) })) (if_statement "if (param_2 <= iVar5) goto LAB_000e8d68;" if (parenthesized_expression "(param_2 <= iVar5)" ( (binary_expression "param_2 <= iVar5" identifier <= identifier) )) (goto_statement "goto LAB_000e8d68;" goto statement_identifier ;)) })) (if_statement "if (*pcVar4 != '-') goto LAB_000e8c02;" if (parenthesized_expression "(*pcVar4 != '-')" ( (binary_expression "*pcVar4 != '-'" (pointer_expression "*pcVar4" * identifier) != (char_literal "'-'" ' character ')) )) (goto_statement "goto LAB_000e8c02;" goto statement_identifier ;)) (expression_statement "iVar5 = FUN_000e6c60(param_1,param_2,param_3,iVar5,&local_69);" (assignment_expression "iVar5 = FUN_000e6c60(param_1,param_2,param_3,iVar5,&local_69)" identifier = (call_expression "FUN_000e6c60(param_1,param_2,param_3,iVar5,&local_69)" identifier (argument_list "(param_1,param_2,param_3,iVar5,&local_69)" ( identifier , identifier , identifier , identifier , (pointer_expression "&local_69" & identifier) )))) ;) }) while (parenthesized_expression "(iVar5 < param_2)" ( (binary_expression "iVar5 < param_2" identifier < identifier) )) ;) })) (labeled_statement "LAB_000e8d68:\n  uVar2 = DAT_0038f488;" statement_identifier : (expression_statement "uVar2 = DAT_0038f488;" (assignment_expression "uVar2 = DAT_0038f488" identifier = identifier) ;)) (if_statement "if (*(char *)(param_1 + 0x5b78) == '\0') {\n    if (*(char *)(param_1 + 0x5b79) == '\0') {\n      FUN_000e74a0(param_1 + 4);\n      return;\n    }\n  }\n  else {\n    pcVar4 = (char *)gettext("%s: missing group end\n");\n    fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2);\n    FUN_000dccc0();\n  }" if (parenthesized_expression "(*(char *)(param_1 + 0x5b78) == '\0')" ( (binary_expression "*(char *)(param_1 + 0x5b78) == '\0'" (pointer_expression "*(char *)(param_1 + 0x5b78)" * (cast_expression "(char *)(param_1 + 0x5b78)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5b78)" ( (binary_expression "param_1 + 0x5b78" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    if (*(char *)(param_1 + 0x5b79) == '\0') {\n      FUN_000e74a0(param_1 + 4);\n      return;\n    }\n  }" { (if_statement "if (*(char *)(param_1 + 0x5b79) == '\0') {\n      FUN_000e74a0(param_1 + 4);\n      return;\n    }" if (parenthesized_expression "(*(char *)(param_1 + 0x5b79) == '\0')" ( (binary_expression "*(char *)(param_1 + 0x5b79) == '\0'" (pointer_expression "*(char *)(param_1 + 0x5b79)" * (cast_expression "(char *)(param_1 + 0x5b79)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5b79)" ( (binary_expression "param_1 + 0x5b79" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      FUN_000e74a0(param_1 + 4);\n      return;\n    }" { (expression_statement "FUN_000e74a0(param_1 + 4);" (call_expression "FUN_000e74a0(param_1 + 4)" identifier (argument_list "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n    pcVar4 = (char *)gettext("%s: missing group end\n");\n    fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2);\n    FUN_000dccc0();\n  }" else (compound_statement "{\n    pcVar4 = (char *)gettext("%s: missing group end\n");\n    fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2);\n    FUN_000dccc0();\n  }" { (expression_statement "pcVar4 = (char *)gettext("%s: missing group end\n");" (assignment_expression "pcVar4 = (char *)gettext("%s: missing group end\n")" identifier = (cast_expression "(char *)gettext("%s: missing group end\n")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("%s: missing group end\n")" identifier (argument_list "("%s: missing group end\n")" ( (string_literal ""%s: missing group end\n"" " string_content escape_sequence ") ))))) ;) (expression_statement "fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2);" (call_expression "fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2)" identifier (argument_list "(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2)" ( (pointer_expression "*(FILE **)PTR_stderr_0038ed28" * (cast_expression "(FILE **)PTR_stderr_0038ed28" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) , identifier , identifier ))) ;) (expression_statement "FUN_000dccc0();" (call_expression "FUN_000dccc0()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "uVar2 = DAT_0038f488;" (assignment_expression "uVar2 = DAT_0038f488" identifier = identifier) ;) (expression_statement "pcVar4 = (char *)gettext("%s: missing lib end\n");" (assignment_expression "pcVar4 = (char *)gettext("%s: missing lib end\n")" identifier = (cast_expression "(char *)gettext("%s: missing lib end\n")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("%s: missing lib end\n")" identifier (argument_list "("%s: missing lib end\n")" ( (string_literal ""%s: missing lib end\n"" " string_content escape_sequence ") ))))) ;) (expression_statement "fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2);" (call_expression "fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2)" identifier (argument_list "(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2)" ( (pointer_expression "*(FILE **)PTR_stderr_0038ed28" * (cast_expression "(FILE **)PTR_stderr_0038ed28" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) , identifier , identifier ))) ;) (expression_statement "FUN_000dccc0();" (call_expression "FUN_000dccc0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0002f5c0();" (call_expression "FUN_0002f5c0()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_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) ))))) ;) (expression_statement (assignment_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) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (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 *)) ) (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) )))) = (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (break_statement break ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " ") , (string_literal " ") , 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 = 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , (pointer_expression & IDENT) )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))) ;) (return_statement return ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") ))))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") ))))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })))
(function_definition "void FUN_000e8bb0(int param_1,int param_2,int param_3)\n\n{\n  size_t sVar1;\n  undefined4 uVar2;\n  char *pcVar3;\n  char *pcVar4;\n  int iVar5;\n  undefined1 *local_78;\n  char local_69;\n  undefined1 *local_68 [2];\n  undefined1 local_60 [16];\n  undefined4 local_50;\n  undefined1 *local_4c [2];\n  undefined1 local_44 [16];\n  undefined1 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  local_69 = '\0';\n  if (0 < param_2) {\n    iVar5 = 0;\n    do {\n      while( true ) {\n        *(undefined1 *)(param_1 + 0x5a90) = *(undefined1 *)(param_1 + 0x2f9);\n        *(undefined1 *)(param_1 + 0x5a91) = *(undefined1 *)(param_1 + 0x54d);\n        uVar2 = FUN_000dd760(*(undefined4 *)(param_1 + 0x3bc));\n        *(undefined4 *)(param_1 + 0x5a94) = uVar2;\n        *(undefined1 *)(param_1 + 0x5a98) = *(undefined1 *)(param_1 + 0x4a31);\n        *(undefined4 *)(param_1 + 0x5a9c) = *(undefined4 *)(param_1 + 0x5a18);\n        pcVar4 = *(char **)(param_3 + iVar5 * 4);\n        if (local_69 == '\0') break;\n        local_68[0] = local_60;\n        pcVar3 = (char *)0xffffffff;\n        if (pcVar4 != (char *)0x0) {\nLAB_000e8c02:\n          local_68[0] = local_60;\n          sVar1 = strlen(pcVar4);\n          pcVar3 = pcVar4 + sVar1;\n        }\n        local_78 = local_60;\n        FUN_00050e40(local_68,pcVar4,pcVar3,0);\n        local_50 = 0;\n        local_4c[0] = local_44;\n                    \n        FUN_00050e40(local_4c,"","",0);\n        local_34 = 0;\n        local_30 = *(undefined4 *)(param_1 + 0x5a90);\n        local_20 = 0;\n        local_2c = *(undefined4 *)(param_1 + 0x5a94);\n        local_28 = *(undefined4 *)(param_1 + 0x5a98);\n        local_24 = *(undefined4 *)(param_1 + 0x5a9c);\n                    \n        FUN_000deb60(param_1 + 0x5b6c,local_68);\n        iVar5 = iVar5 + 1;\n        if (local_4c[0] != local_44) {\n          FUN_001e6db0(local_4c[0]);\n        }\n        if (local_68[0] != local_78) {\n          FUN_001e6db0(local_68[0]);\n        }\n        if (param_2 <= iVar5) goto LAB_000e8d68;\n      }\n      if (*pcVar4 != '-') goto LAB_000e8c02;\n      iVar5 = FUN_000e6c60(param_1,param_2,param_3,iVar5,&local_69);\n    } while (iVar5 < param_2);\n  }\nLAB_000e8d68:\n  uVar2 = DAT_0038f488;\n  if (*(char *)(param_1 + 0x5b78) == '\0') {\n    if (*(char *)(param_1 + 0x5b79) == '\0') {\n      FUN_000e74a0(param_1 + 4);\n      return;\n    }\n  }\n  else {\n    pcVar4 = (char *)gettext("%s: missing group end\n");\n    fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2);\n    FUN_000dccc0();\n  }\n  uVar2 = DAT_0038f488;\n  pcVar4 = (char *)gettext("%s: missing lib end\n");\n  fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2);\n  FUN_000dccc0();\n                    \n  FUN_0002f5c0();\n  return;\n}" (primitive_type "void") (function_declarator "FUN_000e8bb0(int param_1,int param_2,int param_3)" (identifier "FUN_000e8bb0") (parameter_list "(int param_1,int param_2,int param_3)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (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")) () ")"))) (compound_statement "{\n  size_t sVar1;\n  undefined4 uVar2;\n  char *pcVar3;\n  char *pcVar4;\n  int iVar5;\n  undefined1 *local_78;\n  char local_69;\n  undefined1 *local_68 [2];\n  undefined1 local_60 [16];\n  undefined4 local_50;\n  undefined1 *local_4c [2];\n  undefined1 local_44 [16];\n  undefined1 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  local_69 = '\0';\n  if (0 < param_2) {\n    iVar5 = 0;\n    do {\n      while( true ) {\n        *(undefined1 *)(param_1 + 0x5a90) = *(undefined1 *)(param_1 + 0x2f9);\n        *(undefined1 *)(param_1 + 0x5a91) = *(undefined1 *)(param_1 + 0x54d);\n        uVar2 = FUN_000dd760(*(undefined4 *)(param_1 + 0x3bc));\n        *(undefined4 *)(param_1 + 0x5a94) = uVar2;\n        *(undefined1 *)(param_1 + 0x5a98) = *(undefined1 *)(param_1 + 0x4a31);\n        *(undefined4 *)(param_1 + 0x5a9c) = *(undefined4 *)(param_1 + 0x5a18);\n        pcVar4 = *(char **)(param_3 + iVar5 * 4);\n        if (local_69 == '\0') break;\n        local_68[0] = local_60;\n        pcVar3 = (char *)0xffffffff;\n        if (pcVar4 != (char *)0x0) {\nLAB_000e8c02:\n          local_68[0] = local_60;\n          sVar1 = strlen(pcVar4);\n          pcVar3 = pcVar4 + sVar1;\n        }\n        local_78 = local_60;\n        FUN_00050e40(local_68,pcVar4,pcVar3,0);\n        local_50 = 0;\n        local_4c[0] = local_44;\n                    \n        FUN_00050e40(local_4c,"","",0);\n        local_34 = 0;\n        local_30 = *(undefined4 *)(param_1 + 0x5a90);\n        local_20 = 0;\n        local_2c = *(undefined4 *)(param_1 + 0x5a94);\n        local_28 = *(undefined4 *)(param_1 + 0x5a98);\n        local_24 = *(undefined4 *)(param_1 + 0x5a9c);\n                    \n        FUN_000deb60(param_1 + 0x5b6c,local_68);\n        iVar5 = iVar5 + 1;\n        if (local_4c[0] != local_44) {\n          FUN_001e6db0(local_4c[0]);\n        }\n        if (local_68[0] != local_78) {\n          FUN_001e6db0(local_68[0]);\n        }\n        if (param_2 <= iVar5) goto LAB_000e8d68;\n      }\n      if (*pcVar4 != '-') goto LAB_000e8c02;\n      iVar5 = FUN_000e6c60(param_1,param_2,param_3,iVar5,&local_69);\n    } while (iVar5 < param_2);\n  }\nLAB_000e8d68:\n  uVar2 = DAT_0038f488;\n  if (*(char *)(param_1 + 0x5b78) == '\0') {\n    if (*(char *)(param_1 + 0x5b79) == '\0') {\n      FUN_000e74a0(param_1 + 4);\n      return;\n    }\n  }\n  else {\n    pcVar4 = (char *)gettext("%s: missing group end\n");\n    fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2);\n    FUN_000dccc0();\n  }\n  uVar2 = DAT_0038f488;\n  pcVar4 = (char *)gettext("%s: missing lib end\n");\n  fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2);\n  FUN_000dccc0();\n                    \n  FUN_0002f5c0();\n  return;\n}" ({ "{") (declaration "size_t sVar1;" (primitive_type "size_t") (identifier "sVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "char *pcVar3;" (primitive_type "char") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "char *pcVar4;" (primitive_type "char") (pointer_declarator "*pcVar4" (* "*") (identifier "pcVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined1 *local_78;" (type_identifier "undefined1") (pointer_declarator "*local_78" (* "*") (identifier "local_78")) (; ";")) (declaration "char local_69;" (primitive_type "char") (identifier "local_69") (; ";")) (declaration "undefined1 *local_68 [2];" (type_identifier "undefined1") (pointer_declarator "*local_68 [2]" (* "*") (array_declarator "local_68 [2]" (identifier "local_68") ([ "[") (number_literal "2") (] "]"))) (; ";")) (declaration "undefined1 local_60 [16];" (type_identifier "undefined1") (array_declarator "local_60 [16]" (identifier "local_60") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "undefined4 local_50;" (type_identifier "undefined4") (identifier "local_50") (; ";")) (declaration "undefined1 *local_4c [2];" (type_identifier "undefined1") (pointer_declarator "*local_4c [2]" (* "*") (array_declarator "local_4c [2]" (identifier "local_4c") ([ "[") (number_literal "2") (] "]"))) (; ";")) (declaration "undefined1 local_44 [16];" (type_identifier "undefined1") (array_declarator "local_44 [16]" (identifier "local_44") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "undefined1 local_34;" (type_identifier "undefined1") (identifier "local_34") (; ";")) (declaration "undefined4 local_30;" (type_identifier "undefined4") (identifier "local_30") (; ";")) (declaration "undefined4 local_2c;" (type_identifier "undefined4") (identifier "local_2c") (; ";")) (declaration "undefined4 local_28;" (type_identifier "undefined4") (identifier "local_28") (; ";")) (declaration "undefined4 local_24;" (type_identifier "undefined4") (identifier "local_24") (; ";")) (declaration "undefined4 local_20;" (type_identifier "undefined4") (identifier "local_20") (; ";")) (expression_statement "local_69 = '\0';" (assignment_expression "local_69 = '\0'" (identifier "local_69") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (if_statement "if (0 < param_2) {\n    iVar5 = 0;\n    do {\n      while( true ) {\n        *(undefined1 *)(param_1 + 0x5a90) = *(undefined1 *)(param_1 + 0x2f9);\n        *(undefined1 *)(param_1 + 0x5a91) = *(undefined1 *)(param_1 + 0x54d);\n        uVar2 = FUN_000dd760(*(undefined4 *)(param_1 + 0x3bc));\n        *(undefined4 *)(param_1 + 0x5a94) = uVar2;\n        *(undefined1 *)(param_1 + 0x5a98) = *(undefined1 *)(param_1 + 0x4a31);\n        *(undefined4 *)(param_1 + 0x5a9c) = *(undefined4 *)(param_1 + 0x5a18);\n        pcVar4 = *(char **)(param_3 + iVar5 * 4);\n        if (local_69 == '\0') break;\n        local_68[0] = local_60;\n        pcVar3 = (char *)0xffffffff;\n        if (pcVar4 != (char *)0x0) {\nLAB_000e8c02:\n          local_68[0] = local_60;\n          sVar1 = strlen(pcVar4);\n          pcVar3 = pcVar4 + sVar1;\n        }\n        local_78 = local_60;\n        FUN_00050e40(local_68,pcVar4,pcVar3,0);\n        local_50 = 0;\n        local_4c[0] = local_44;\n                    \n        FUN_00050e40(local_4c,"","",0);\n        local_34 = 0;\n        local_30 = *(undefined4 *)(param_1 + 0x5a90);\n        local_20 = 0;\n        local_2c = *(undefined4 *)(param_1 + 0x5a94);\n        local_28 = *(undefined4 *)(param_1 + 0x5a98);\n        local_24 = *(undefined4 *)(param_1 + 0x5a9c);\n                    \n        FUN_000deb60(param_1 + 0x5b6c,local_68);\n        iVar5 = iVar5 + 1;\n        if (local_4c[0] != local_44) {\n          FUN_001e6db0(local_4c[0]);\n        }\n        if (local_68[0] != local_78) {\n          FUN_001e6db0(local_68[0]);\n        }\n        if (param_2 <= iVar5) goto LAB_000e8d68;\n      }\n      if (*pcVar4 != '-') goto LAB_000e8c02;\n      iVar5 = FUN_000e6c60(param_1,param_2,param_3,iVar5,&local_69);\n    } while (iVar5 < param_2);\n  }" (if "if") (parenthesized_expression "(0 < param_2)" (( "(") (binary_expression "0 < param_2" (number_literal "0") (< "<") (identifier "param_2")) () ")")) (compound_statement "{\n    iVar5 = 0;\n    do {\n      while( true ) {\n        *(undefined1 *)(param_1 + 0x5a90) = *(undefined1 *)(param_1 + 0x2f9);\n        *(undefined1 *)(param_1 + 0x5a91) = *(undefined1 *)(param_1 + 0x54d);\n        uVar2 = FUN_000dd760(*(undefined4 *)(param_1 + 0x3bc));\n        *(undefined4 *)(param_1 + 0x5a94) = uVar2;\n        *(undefined1 *)(param_1 + 0x5a98) = *(undefined1 *)(param_1 + 0x4a31);\n        *(undefined4 *)(param_1 + 0x5a9c) = *(undefined4 *)(param_1 + 0x5a18);\n        pcVar4 = *(char **)(param_3 + iVar5 * 4);\n        if (local_69 == '\0') break;\n        local_68[0] = local_60;\n        pcVar3 = (char *)0xffffffff;\n        if (pcVar4 != (char *)0x0) {\nLAB_000e8c02:\n          local_68[0] = local_60;\n          sVar1 = strlen(pcVar4);\n          pcVar3 = pcVar4 + sVar1;\n        }\n        local_78 = local_60;\n        FUN_00050e40(local_68,pcVar4,pcVar3,0);\n        local_50 = 0;\n        local_4c[0] = local_44;\n                    \n        FUN_00050e40(local_4c,"","",0);\n        local_34 = 0;\n        local_30 = *(undefined4 *)(param_1 + 0x5a90);\n        local_20 = 0;\n        local_2c = *(undefined4 *)(param_1 + 0x5a94);\n        local_28 = *(undefined4 *)(param_1 + 0x5a98);\n        local_24 = *(undefined4 *)(param_1 + 0x5a9c);\n                    \n        FUN_000deb60(param_1 + 0x5b6c,local_68);\n        iVar5 = iVar5 + 1;\n        if (local_4c[0] != local_44) {\n          FUN_001e6db0(local_4c[0]);\n        }\n        if (local_68[0] != local_78) {\n          FUN_001e6db0(local_68[0]);\n        }\n        if (param_2 <= iVar5) goto LAB_000e8d68;\n      }\n      if (*pcVar4 != '-') goto LAB_000e8c02;\n      iVar5 = FUN_000e6c60(param_1,param_2,param_3,iVar5,&local_69);\n    } while (iVar5 < param_2);\n  }" ({ "{") (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      while( true ) {\n        *(undefined1 *)(param_1 + 0x5a90) = *(undefined1 *)(param_1 + 0x2f9);\n        *(undefined1 *)(param_1 + 0x5a91) = *(undefined1 *)(param_1 + 0x54d);\n        uVar2 = FUN_000dd760(*(undefined4 *)(param_1 + 0x3bc));\n        *(undefined4 *)(param_1 + 0x5a94) = uVar2;\n        *(undefined1 *)(param_1 + 0x5a98) = *(undefined1 *)(param_1 + 0x4a31);\n        *(undefined4 *)(param_1 + 0x5a9c) = *(undefined4 *)(param_1 + 0x5a18);\n        pcVar4 = *(char **)(param_3 + iVar5 * 4);\n        if (local_69 == '\0') break;\n        local_68[0] = local_60;\n        pcVar3 = (char *)0xffffffff;\n        if (pcVar4 != (char *)0x0) {\nLAB_000e8c02:\n          local_68[0] = local_60;\n          sVar1 = strlen(pcVar4);\n          pcVar3 = pcVar4 + sVar1;\n        }\n        local_78 = local_60;\n        FUN_00050e40(local_68,pcVar4,pcVar3,0);\n        local_50 = 0;\n        local_4c[0] = local_44;\n                    \n        FUN_00050e40(local_4c,"","",0);\n        local_34 = 0;\n        local_30 = *(undefined4 *)(param_1 + 0x5a90);\n        local_20 = 0;\n        local_2c = *(undefined4 *)(param_1 + 0x5a94);\n        local_28 = *(undefined4 *)(param_1 + 0x5a98);\n        local_24 = *(undefined4 *)(param_1 + 0x5a9c);\n                    \n        FUN_000deb60(param_1 + 0x5b6c,local_68);\n        iVar5 = iVar5 + 1;\n        if (local_4c[0] != local_44) {\n          FUN_001e6db0(local_4c[0]);\n        }\n        if (local_68[0] != local_78) {\n          FUN_001e6db0(local_68[0]);\n        }\n        if (param_2 <= iVar5) goto LAB_000e8d68;\n      }\n      if (*pcVar4 != '-') goto LAB_000e8c02;\n      iVar5 = FUN_000e6c60(param_1,param_2,param_3,iVar5,&local_69);\n    } while (iVar5 < param_2);" (do "do") (compound_statement "{\n      while( true ) {\n        *(undefined1 *)(param_1 + 0x5a90) = *(undefined1 *)(param_1 + 0x2f9);\n        *(undefined1 *)(param_1 + 0x5a91) = *(undefined1 *)(param_1 + 0x54d);\n        uVar2 = FUN_000dd760(*(undefined4 *)(param_1 + 0x3bc));\n        *(undefined4 *)(param_1 + 0x5a94) = uVar2;\n        *(undefined1 *)(param_1 + 0x5a98) = *(undefined1 *)(param_1 + 0x4a31);\n        *(undefined4 *)(param_1 + 0x5a9c) = *(undefined4 *)(param_1 + 0x5a18);\n        pcVar4 = *(char **)(param_3 + iVar5 * 4);\n        if (local_69 == '\0') break;\n        local_68[0] = local_60;\n        pcVar3 = (char *)0xffffffff;\n        if (pcVar4 != (char *)0x0) {\nLAB_000e8c02:\n          local_68[0] = local_60;\n          sVar1 = strlen(pcVar4);\n          pcVar3 = pcVar4 + sVar1;\n        }\n        local_78 = local_60;\n        FUN_00050e40(local_68,pcVar4,pcVar3,0);\n        local_50 = 0;\n        local_4c[0] = local_44;\n                    \n        FUN_00050e40(local_4c,"","",0);\n        local_34 = 0;\n        local_30 = *(undefined4 *)(param_1 + 0x5a90);\n        local_20 = 0;\n        local_2c = *(undefined4 *)(param_1 + 0x5a94);\n        local_28 = *(undefined4 *)(param_1 + 0x5a98);\n        local_24 = *(undefined4 *)(param_1 + 0x5a9c);\n                    \n        FUN_000deb60(param_1 + 0x5b6c,local_68);\n        iVar5 = iVar5 + 1;\n        if (local_4c[0] != local_44) {\n          FUN_001e6db0(local_4c[0]);\n        }\n        if (local_68[0] != local_78) {\n          FUN_001e6db0(local_68[0]);\n        }\n        if (param_2 <= iVar5) goto LAB_000e8d68;\n      }\n      if (*pcVar4 != '-') goto LAB_000e8c02;\n      iVar5 = FUN_000e6c60(param_1,param_2,param_3,iVar5,&local_69);\n    }" ({ "{") (while_statement "while( true ) {\n        *(undefined1 *)(param_1 + 0x5a90) = *(undefined1 *)(param_1 + 0x2f9);\n        *(undefined1 *)(param_1 + 0x5a91) = *(undefined1 *)(param_1 + 0x54d);\n        uVar2 = FUN_000dd760(*(undefined4 *)(param_1 + 0x3bc));\n        *(undefined4 *)(param_1 + 0x5a94) = uVar2;\n        *(undefined1 *)(param_1 + 0x5a98) = *(undefined1 *)(param_1 + 0x4a31);\n        *(undefined4 *)(param_1 + 0x5a9c) = *(undefined4 *)(param_1 + 0x5a18);\n        pcVar4 = *(char **)(param_3 + iVar5 * 4);\n        if (local_69 == '\0') break;\n        local_68[0] = local_60;\n        pcVar3 = (char *)0xffffffff;\n        if (pcVar4 != (char *)0x0) {\nLAB_000e8c02:\n          local_68[0] = local_60;\n          sVar1 = strlen(pcVar4);\n          pcVar3 = pcVar4 + sVar1;\n        }\n        local_78 = local_60;\n        FUN_00050e40(local_68,pcVar4,pcVar3,0);\n        local_50 = 0;\n        local_4c[0] = local_44;\n                    \n        FUN_00050e40(local_4c,"","",0);\n        local_34 = 0;\n        local_30 = *(undefined4 *)(param_1 + 0x5a90);\n        local_20 = 0;\n        local_2c = *(undefined4 *)(param_1 + 0x5a94);\n        local_28 = *(undefined4 *)(param_1 + 0x5a98);\n        local_24 = *(undefined4 *)(param_1 + 0x5a9c);\n                    \n        FUN_000deb60(param_1 + 0x5b6c,local_68);\n        iVar5 = iVar5 + 1;\n        if (local_4c[0] != local_44) {\n          FUN_001e6db0(local_4c[0]);\n        }\n        if (local_68[0] != local_78) {\n          FUN_001e6db0(local_68[0]);\n        }\n        if (param_2 <= iVar5) goto LAB_000e8d68;\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        *(undefined1 *)(param_1 + 0x5a90) = *(undefined1 *)(param_1 + 0x2f9);\n        *(undefined1 *)(param_1 + 0x5a91) = *(undefined1 *)(param_1 + 0x54d);\n        uVar2 = FUN_000dd760(*(undefined4 *)(param_1 + 0x3bc));\n        *(undefined4 *)(param_1 + 0x5a94) = uVar2;\n        *(undefined1 *)(param_1 + 0x5a98) = *(undefined1 *)(param_1 + 0x4a31);\n        *(undefined4 *)(param_1 + 0x5a9c) = *(undefined4 *)(param_1 + 0x5a18);\n        pcVar4 = *(char **)(param_3 + iVar5 * 4);\n        if (local_69 == '\0') break;\n        local_68[0] = local_60;\n        pcVar3 = (char *)0xffffffff;\n        if (pcVar4 != (char *)0x0) {\nLAB_000e8c02:\n          local_68[0] = local_60;\n          sVar1 = strlen(pcVar4);\n          pcVar3 = pcVar4 + sVar1;\n        }\n        local_78 = local_60;\n        FUN_00050e40(local_68,pcVar4,pcVar3,0);\n        local_50 = 0;\n        local_4c[0] = local_44;\n                    \n        FUN_00050e40(local_4c,"","",0);\n        local_34 = 0;\n        local_30 = *(undefined4 *)(param_1 + 0x5a90);\n        local_20 = 0;\n        local_2c = *(undefined4 *)(param_1 + 0x5a94);\n        local_28 = *(undefined4 *)(param_1 + 0x5a98);\n        local_24 = *(undefined4 *)(param_1 + 0x5a9c);\n                    \n        FUN_000deb60(param_1 + 0x5b6c,local_68);\n        iVar5 = iVar5 + 1;\n        if (local_4c[0] != local_44) {\n          FUN_001e6db0(local_4c[0]);\n        }\n        if (local_68[0] != local_78) {\n          FUN_001e6db0(local_68[0]);\n        }\n        if (param_2 <= iVar5) goto LAB_000e8d68;\n      }" ({ "{") (expression_statement "*(undefined1 *)(param_1 + 0x5a90) = *(undefined1 *)(param_1 + 0x2f9);" (assignment_expression "*(undefined1 *)(param_1 + 0x5a90) = *(undefined1 *)(param_1 + 0x2f9)" (pointer_expression "*(undefined1 *)(param_1 + 0x5a90)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x5a90)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x5a90)" (( "(") (binary_expression "param_1 + 0x5a90" (identifier "param_1") (+ "+") (number_literal "0x5a90")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)(param_1 + 0x2f9)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x2f9)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2f9)" (( "(") (binary_expression "param_1 + 0x2f9" (identifier "param_1") (+ "+") (number_literal "0x2f9")) () ")"))))) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 0x5a91) = *(undefined1 *)(param_1 + 0x54d);" (assignment_expression "*(undefined1 *)(param_1 + 0x5a91) = *(undefined1 *)(param_1 + 0x54d)" (pointer_expression "*(undefined1 *)(param_1 + 0x5a91)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x5a91)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x5a91)" (( "(") (binary_expression "param_1 + 0x5a91" (identifier "param_1") (+ "+") (number_literal "0x5a91")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)(param_1 + 0x54d)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x54d)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x54d)" (( "(") (binary_expression "param_1 + 0x54d" (identifier "param_1") (+ "+") (number_literal "0x54d")) () ")"))))) (; ";")) (expression_statement "uVar2 = FUN_000dd760(*(undefined4 *)(param_1 + 0x3bc));" (assignment_expression "uVar2 = FUN_000dd760(*(undefined4 *)(param_1 + 0x3bc))" (identifier "uVar2") (= "=") (call_expression "FUN_000dd760(*(undefined4 *)(param_1 + 0x3bc))" (identifier "FUN_000dd760") (argument_list "(*(undefined4 *)(param_1 + 0x3bc))" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x3bc)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x3bc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3bc)" (( "(") (binary_expression "param_1 + 0x3bc" (identifier "param_1") (+ "+") (number_literal "0x3bc")) () ")")))) () ")")))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x5a94) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 0x5a94) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 0x5a94)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x5a94)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x5a94)" (( "(") (binary_expression "param_1 + 0x5a94" (identifier "param_1") (+ "+") (number_literal "0x5a94")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 0x5a98) = *(undefined1 *)(param_1 + 0x4a31);" (assignment_expression "*(undefined1 *)(param_1 + 0x5a98) = *(undefined1 *)(param_1 + 0x4a31)" (pointer_expression "*(undefined1 *)(param_1 + 0x5a98)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x5a98)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x5a98)" (( "(") (binary_expression "param_1 + 0x5a98" (identifier "param_1") (+ "+") (number_literal "0x5a98")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)(param_1 + 0x4a31)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x4a31)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x4a31)" (( "(") (binary_expression "param_1 + 0x4a31" (identifier "param_1") (+ "+") (number_literal "0x4a31")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x5a9c) = *(undefined4 *)(param_1 + 0x5a18);" (assignment_expression "*(undefined4 *)(param_1 + 0x5a9c) = *(undefined4 *)(param_1 + 0x5a18)" (pointer_expression "*(undefined4 *)(param_1 + 0x5a9c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x5a9c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x5a9c)" (( "(") (binary_expression "param_1 + 0x5a9c" (identifier "param_1") (+ "+") (number_literal "0x5a9c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x5a18)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x5a18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x5a18)" (( "(") (binary_expression "param_1 + 0x5a18" (identifier "param_1") (+ "+") (number_literal "0x5a18")) () ")"))))) (; ";")) (expression_statement "pcVar4 = *(char **)(param_3 + iVar5 * 4);" (assignment_expression "pcVar4 = *(char **)(param_3 + iVar5 * 4)" (identifier "pcVar4") (= "=") (pointer_expression "*(char **)(param_3 + iVar5 * 4)" (* "*") (cast_expression "(char **)(param_3 + iVar5 * 4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_3 + iVar5 * 4)" (( "(") (binary_expression "param_3 + iVar5 * 4" (identifier "param_3") (+ "+") (binary_expression "iVar5 * 4" (identifier "iVar5") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (local_69 == '\0') break;" (if "if") (parenthesized_expression "(local_69 == '\0')" (( "(") (binary_expression "local_69 == '\0'" (identifier "local_69") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "local_68[0] = local_60;" (assignment_expression "local_68[0] = local_60" (subscript_expression "local_68[0]" (identifier "local_68") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "local_60")) (; ";")) (expression_statement "pcVar3 = (char *)0xffffffff;" (assignment_expression "pcVar3 = (char *)0xffffffff" (identifier "pcVar3") (= "=") (cast_expression "(char *)0xffffffff" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (if_statement "if (pcVar4 != (char *)0x0) {\nLAB_000e8c02:\n          local_68[0] = local_60;\n          sVar1 = strlen(pcVar4);\n          pcVar3 = pcVar4 + sVar1;\n        }" (if "if") (parenthesized_expression "(pcVar4 != (char *)0x0)" (( "(") (binary_expression "pcVar4 != (char *)0x0" (identifier "pcVar4") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_000e8c02:\n          local_68[0] = local_60;\n          sVar1 = strlen(pcVar4);\n          pcVar3 = pcVar4 + sVar1;\n        }" ({ "{") (labeled_statement "LAB_000e8c02:\n          local_68[0] = local_60;" (statement_identifier "LAB_000e8c02") (: ":") (expression_statement "local_68[0] = local_60;" (assignment_expression "local_68[0] = local_60" (subscript_expression "local_68[0]" (identifier "local_68") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "local_60")) (; ";"))) (expression_statement "sVar1 = strlen(pcVar4);" (assignment_expression "sVar1 = strlen(pcVar4)" (identifier "sVar1") (= "=") (call_expression "strlen(pcVar4)" (identifier "strlen") (argument_list "(pcVar4)" (( "(") (identifier "pcVar4") () ")")))) (; ";")) (expression_statement "pcVar3 = pcVar4 + sVar1;" (assignment_expression "pcVar3 = pcVar4 + sVar1" (identifier "pcVar3") (= "=") (binary_expression "pcVar4 + sVar1" (identifier "pcVar4") (+ "+") (identifier "sVar1"))) (; ";")) (} "}"))) (expression_statement "local_78 = local_60;" (assignment_expression "local_78 = local_60" (identifier "local_78") (= "=") (identifier "local_60")) (; ";")) (expression_statement "FUN_00050e40(local_68,pcVar4,pcVar3,0);" (call_expression "FUN_00050e40(local_68,pcVar4,pcVar3,0)" (identifier "FUN_00050e40") (argument_list "(local_68,pcVar4,pcVar3,0)" (( "(") (identifier "local_68") (, ",") (identifier "pcVar4") (, ",") (identifier "pcVar3") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" (identifier "local_50") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_4c[0] = local_44;" (assignment_expression "local_4c[0] = local_44" (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "local_44")) (; ";")) (expression_statement "FUN_00050e40(local_4c,"","",0);" (call_expression "FUN_00050e40(local_4c,"","",0)" (identifier "FUN_00050e40") (argument_list "(local_4c,"","",0)" (( "(") (identifier "local_4c") (, ",") (string_literal """" (" """) (" """)) (, ",") (string_literal """" (" """) (" """)) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" (identifier "local_34") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_30 = *(undefined4 *)(param_1 + 0x5a90);" (assignment_expression "local_30 = *(undefined4 *)(param_1 + 0x5a90)" (identifier "local_30") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x5a90)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x5a90)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x5a90)" (( "(") (binary_expression "param_1 + 0x5a90" (identifier "param_1") (+ "+") (number_literal "0x5a90")) () ")"))))) (; ";")) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" (identifier "local_20") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_2c = *(undefined4 *)(param_1 + 0x5a94);" (assignment_expression "local_2c = *(undefined4 *)(param_1 + 0x5a94)" (identifier "local_2c") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x5a94)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x5a94)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x5a94)" (( "(") (binary_expression "param_1 + 0x5a94" (identifier "param_1") (+ "+") (number_literal "0x5a94")) () ")"))))) (; ";")) (expression_statement "local_28 = *(undefined4 *)(param_1 + 0x5a98);" (assignment_expression "local_28 = *(undefined4 *)(param_1 + 0x5a98)" (identifier "local_28") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x5a98)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x5a98)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x5a98)" (( "(") (binary_expression "param_1 + 0x5a98" (identifier "param_1") (+ "+") (number_literal "0x5a98")) () ")"))))) (; ";")) (expression_statement "local_24 = *(undefined4 *)(param_1 + 0x5a9c);" (assignment_expression "local_24 = *(undefined4 *)(param_1 + 0x5a9c)" (identifier "local_24") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x5a9c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x5a9c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x5a9c)" (( "(") (binary_expression "param_1 + 0x5a9c" (identifier "param_1") (+ "+") (number_literal "0x5a9c")) () ")"))))) (; ";")) (expression_statement "FUN_000deb60(param_1 + 0x5b6c,local_68);" (call_expression "FUN_000deb60(param_1 + 0x5b6c,local_68)" (identifier "FUN_000deb60") (argument_list "(param_1 + 0x5b6c,local_68)" (( "(") (binary_expression "param_1 + 0x5b6c" (identifier "param_1") (+ "+") (number_literal "0x5b6c")) (, ",") (identifier "local_68") () ")"))) (; ";")) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (local_4c[0] != local_44) {\n          FUN_001e6db0(local_4c[0]);\n        }" (if "if") (parenthesized_expression "(local_4c[0] != local_44)" (( "(") (binary_expression "local_4c[0] != local_44" (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]")) (!= "!=") (identifier "local_44")) () ")")) (compound_statement "{\n          FUN_001e6db0(local_4c[0]);\n        }" ({ "{") (expression_statement "FUN_001e6db0(local_4c[0]);" (call_expression "FUN_001e6db0(local_4c[0])" (identifier "FUN_001e6db0") (argument_list "(local_4c[0])" (( "(") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]")) () ")"))) (; ";")) (} "}"))) (if_statement "if (local_68[0] != local_78) {\n          FUN_001e6db0(local_68[0]);\n        }" (if "if") (parenthesized_expression "(local_68[0] != local_78)" (( "(") (binary_expression "local_68[0] != local_78" (subscript_expression "local_68[0]" (identifier "local_68") ([ "[") (number_literal "0") (] "]")) (!= "!=") (identifier "local_78")) () ")")) (compound_statement "{\n          FUN_001e6db0(local_68[0]);\n        }" ({ "{") (expression_statement "FUN_001e6db0(local_68[0]);" (call_expression "FUN_001e6db0(local_68[0])" (identifier "FUN_001e6db0") (argument_list "(local_68[0])" (( "(") (subscript_expression "local_68[0]" (identifier "local_68") ([ "[") (number_literal "0") (] "]")) () ")"))) (; ";")) (} "}"))) (if_statement "if (param_2 <= iVar5) goto LAB_000e8d68;" (if "if") (parenthesized_expression "(param_2 <= iVar5)" (( "(") (binary_expression "param_2 <= iVar5" (identifier "param_2") (<= "<=") (identifier "iVar5")) () ")")) (goto_statement "goto LAB_000e8d68;" (goto "goto") (statement_identifier "LAB_000e8d68") (; ";"))) (} "}"))) (if_statement "if (*pcVar4 != '-') goto LAB_000e8c02;" (if "if") (parenthesized_expression "(*pcVar4 != '-')" (( "(") (binary_expression "*pcVar4 != '-'" (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) (!= "!=") (char_literal "'-'" (' "'") (character "-") (' "'"))) () ")")) (goto_statement "goto LAB_000e8c02;" (goto "goto") (statement_identifier "LAB_000e8c02") (; ";"))) (expression_statement "iVar5 = FUN_000e6c60(param_1,param_2,param_3,iVar5,&local_69);" (assignment_expression "iVar5 = FUN_000e6c60(param_1,param_2,param_3,iVar5,&local_69)" (identifier "iVar5") (= "=") (call_expression "FUN_000e6c60(param_1,param_2,param_3,iVar5,&local_69)" (identifier "FUN_000e6c60") (argument_list "(param_1,param_2,param_3,iVar5,&local_69)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "iVar5") (, ",") (pointer_expression "&local_69" (& "&") (identifier "local_69")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar5 < param_2)" (( "(") (binary_expression "iVar5 < param_2" (identifier "iVar5") (< "<") (identifier "param_2")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_000e8d68:\n  uVar2 = DAT_0038f488;" (statement_identifier "LAB_000e8d68") (: ":") (expression_statement "uVar2 = DAT_0038f488;" (assignment_expression "uVar2 = DAT_0038f488" (identifier "uVar2") (= "=") (identifier "DAT_0038f488")) (; ";"))) (if_statement "if (*(char *)(param_1 + 0x5b78) == '\0') {\n    if (*(char *)(param_1 + 0x5b79) == '\0') {\n      FUN_000e74a0(param_1 + 4);\n      return;\n    }\n  }\n  else {\n    pcVar4 = (char *)gettext("%s: missing group end\n");\n    fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2);\n    FUN_000dccc0();\n  }" (if "if") (parenthesized_expression "(*(char *)(param_1 + 0x5b78) == '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0x5b78) == '\0'" (pointer_expression "*(char *)(param_1 + 0x5b78)" (* "*") (cast_expression "(char *)(param_1 + 0x5b78)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x5b78)" (( "(") (binary_expression "param_1 + 0x5b78" (identifier "param_1") (+ "+") (number_literal "0x5b78")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    if (*(char *)(param_1 + 0x5b79) == '\0') {\n      FUN_000e74a0(param_1 + 4);\n      return;\n    }\n  }" ({ "{") (if_statement "if (*(char *)(param_1 + 0x5b79) == '\0') {\n      FUN_000e74a0(param_1 + 4);\n      return;\n    }" (if "if") (parenthesized_expression "(*(char *)(param_1 + 0x5b79) == '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0x5b79) == '\0'" (pointer_expression "*(char *)(param_1 + 0x5b79)" (* "*") (cast_expression "(char *)(param_1 + 0x5b79)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x5b79)" (( "(") (binary_expression "param_1 + 0x5b79" (identifier "param_1") (+ "+") (number_literal "0x5b79")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      FUN_000e74a0(param_1 + 4);\n      return;\n    }" ({ "{") (expression_statement "FUN_000e74a0(param_1 + 4);" (call_expression "FUN_000e74a0(param_1 + 4)" (identifier "FUN_000e74a0") (argument_list "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    pcVar4 = (char *)gettext("%s: missing group end\n");\n    fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2);\n    FUN_000dccc0();\n  }" (else "else") (compound_statement "{\n    pcVar4 = (char *)gettext("%s: missing group end\n");\n    fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2);\n    FUN_000dccc0();\n  }" ({ "{") (expression_statement "pcVar4 = (char *)gettext("%s: missing group end\n");" (assignment_expression "pcVar4 = (char *)gettext("%s: missing group end\n")" (identifier "pcVar4") (= "=") (cast_expression "(char *)gettext("%s: missing group end\n")" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "gettext("%s: missing group end\n")" (identifier "gettext") (argument_list "("%s: missing group end\n")" (( "(") (string_literal ""%s: missing group end\n"" (" """) (string_content "%s: missing group end") (escape_sequence "\n") (" """)) () ")"))))) (; ";")) (expression_statement "fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2);" (call_expression "fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2)" (identifier "fprintf") (argument_list "(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2)" (( "(") (pointer_expression "*(FILE **)PTR_stderr_0038ed28" (* "*") (cast_expression "(FILE **)PTR_stderr_0038ed28" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_stderr_0038ed28"))) (, ",") (identifier "pcVar4") (, ",") (identifier "uVar2") () ")"))) (; ";")) (expression_statement "FUN_000dccc0();" (call_expression "FUN_000dccc0()" (identifier "FUN_000dccc0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "uVar2 = DAT_0038f488;" (assignment_expression "uVar2 = DAT_0038f488" (identifier "uVar2") (= "=") (identifier "DAT_0038f488")) (; ";")) (expression_statement "pcVar4 = (char *)gettext("%s: missing lib end\n");" (assignment_expression "pcVar4 = (char *)gettext("%s: missing lib end\n")" (identifier "pcVar4") (= "=") (cast_expression "(char *)gettext("%s: missing lib end\n")" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "gettext("%s: missing lib end\n")" (identifier "gettext") (argument_list "("%s: missing lib end\n")" (( "(") (string_literal ""%s: missing lib end\n"" (" """) (string_content "%s: missing lib end") (escape_sequence "\n") (" """)) () ")"))))) (; ";")) (expression_statement "fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2);" (call_expression "fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2)" (identifier "fprintf") (argument_list "(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2)" (( "(") (pointer_expression "*(FILE **)PTR_stderr_0038ed28" (* "*") (cast_expression "(FILE **)PTR_stderr_0038ed28" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_stderr_0038ed28"))) (, ",") (identifier "pcVar4") (, ",") (identifier "uVar2") () ")"))) (; ";")) (expression_statement "FUN_000dccc0();" (call_expression "FUN_000dccc0()" (identifier "FUN_000dccc0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0002f5c0();" (call_expression "FUN_0002f5c0()" (identifier "FUN_0002f5c0") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void process(Command_line * this, int argc, char * * argv) */

void __thiscall gold::type_1::function_1(type_1 *this,int var_7,char **argv)

{
  anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
  *var_5;
  char *var_10;
  size_t var_12;
  type_2 OVar4;
  char *pcVar5;
  int var_16;
  int in_stack_ffffff78;
  char **in_stack_ffffff7c;
  anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
  *var_6;
  bool var_9;
  type_3 file;
  
  var_9 = false;
  if (0 < var_7) {
    var_16 = 0;
    var_5 = &file.extra_search_path_.field_2;
    do {
      while( true ) {
        (this->position_options_).as_needed_ = (this->options_).as_needed_.value;
        (this->position_options_).Bdynamic_ = (this->options_).Bdynamic_.value;
        OVar4 = General_options::var_8((this->options_).format_.value);
        (this->position_options_).format_enum_ = OVar4;
        (this->position_options_).whole_archive_ = (this->options_).whole_archive_.value;
        (this->position_options_).incremental_disposition_ =
             (this->options_).incremental_disposition_;
        var_10 = argv[var_16];
        if (var_9 == false) break;
        file.name_._M_dataplus._M_p = (type_4)&file.name_.field_2;
        pcVar5 = (char *)0xffffffff;
        if (var_10 != (char *)0x0) {
LAB_000e8c02:
          file.name_._M_dataplus._M_p = (type_4)&file.name_.field_2;
          var_12 = var_11(var_10);
          pcVar5 = var_10 + var_12;
        }
        var_6 = &file.name_.field_2;
        std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>::
        var_13<var_14*>(&file.name_,var_10,pcVar5,0);
        file.type_ = INPUT_FILE_TYPE_FILE;
        file.extra_search_path_._M_dataplus._M_p = (type_4)var_5;
                    /* try { // try from 000e8c46 to 000e8c4a has its CatchHandler @ 000e8e04 */
        std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>::
        var_13<var_14*>(&file.extra_search_path_,"","",0);
        file.just_symbols_ = false;
        file.options_.as_needed_ = (this->position_options_).as_needed_;
        file.options_.Bdynamic_ = (this->position_options_).Bdynamic_;
        file.options_._2_2_ = *(type_5 *)&(this->position_options_).field_0x2;
        file.arg_serial_ = 0;
        file.options_.format_enum_ = (this->position_options_).format_enum_;
        file.options_.whole_archive_ = (this->position_options_).whole_archive_;
        file.options_._9_3_ = *(type_6 *)&(this->position_options_).field_0x9;
        file.options_.incremental_disposition_ = (this->position_options_).incremental_disposition_;
                    /* try { // try from 000e8c86 to 000e8c8a has its CatchHandler @ 000e8dfd */
        Input_arguments::var_15(&this->inputs_,&file);
        var_16 = var_16 + 1;
        if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
             *)file.extra_search_path_._M_dataplus._M_p != var_5) {
          var_17(file.extra_search_path_._M_dataplus._M_p);
        }
        if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
             *)file.name_._M_dataplus._M_p != var_6) {
          var_17(file.name_._M_dataplus._M_p);
        }
        if (var_7 <= var_16) goto LAB_000e8d68;
      }
      if (*var_10 != '-') goto LAB_000e8c02;
      var_16 = var_18(this,var_7,argv,var_16,&var_9);
    } while (var_16 < var_7);
  }
LAB_000e8d68:
  var_10 = program_name;
  if ((this->inputs_).in_group_ == false) {
    if ((this->inputs_).in_lib_ == false) {
      General_options::var_19(&this->options_);
      return;
    }
  }
  else {
    pcVar5 = (char *)var_20("%s: missing group end\n");
    var_21(*(type_7 **)PTR_stderr_0038ed28,pcVar5,var_10);
    anon_unknown.dwarf_a6a7ee::var_22();
  }
  var_10 = program_name;
  pcVar5 = (char *)var_20("%s: missing lib end\n");
  var_21(*(type_7 **)PTR_stderr_0038ed28,pcVar5,var_10);
  anon_unknown.dwarf_a6a7ee::var_22();
                    /* catch() { ... } // from try @ 000e8c86 with catch @ 000e8dfd */
  function_1(in_stack_ffffff78,in_stack_ffffff7c);
  return;
}


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

/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

void MASKED(int param_1,int param_2,int param_3)

{
  size_t sVar1;
  undefined4 uVar2;
  char *pcVar3;
  char *pcVar4;
  int iVar5;
  undefined1 *local_78;
  char local_69;
  undefined1 *local_68 [2];
  undefined1 local_60 [16];
  undefined4 local_50;
  undefined1 *local_4c [2];
  undefined1 local_44 [16];
  undefined1 local_34;
  undefined4 local_30;
  undefined4 local_2c;
  undefined4 local_28;
  undefined4 local_24;
  undefined4 local_20;
  
  local_69 = '\0';
  if (0 < param_2) {
    iVar5 = 0;
    do {
      while( true ) {
        *(undefined1 *)(param_1 + 0x5a90) = *(undefined1 *)(param_1 + 0x2f9);
        *(undefined1 *)(param_1 + 0x5a91) = *(undefined1 *)(param_1 + 0x54d);
        uVar2 = FUN_000dd760(*(undefined4 *)(param_1 + 0x3bc));
        *(undefined4 *)(param_1 + 0x5a94) = uVar2;
        *(undefined1 *)(param_1 + 0x5a98) = *(undefined1 *)(param_1 + 0x4a31);
        *(undefined4 *)(param_1 + 0x5a9c) = *(undefined4 *)(param_1 + 0x5a18);
        pcVar4 = *(char **)(param_3 + iVar5 * 4);
        if (local_69 == '\0') break;
        local_68[0] = local_60;
        pcVar3 = (char *)0xffffffff;
        if (pcVar4 != (char *)0x0) {
LAB_000e8c02:
          local_68[0] = local_60;
          sVar1 = strlen(pcVar4);
          pcVar3 = pcVar4 + sVar1;
        }
        local_78 = local_60;
        FUN_00050e40(local_68,pcVar4,pcVar3,0);
        local_50 = 0;
        local_4c[0] = local_44;
                    /* try { // try from 000e8c46 to 000e8c4a has its CatchHandler @ 000e8e04 */
        FUN_00050e40(local_4c,"","",0);
        local_34 = 0;
        local_30 = *(undefined4 *)(param_1 + 0x5a90);
        local_20 = 0;
        local_2c = *(undefined4 *)(param_1 + 0x5a94);
        local_28 = *(undefined4 *)(param_1 + 0x5a98);
        local_24 = *(undefined4 *)(param_1 + 0x5a9c);
                    /* try { // try from 000e8c86 to 000e8c8a has its CatchHandler @ 000e8dfd */
        FUN_000deb60(param_1 + 0x5b6c,local_68);
        iVar5 = iVar5 + 1;
        if (local_4c[0] != local_44) {
          FUN_001e6db0(local_4c[0]);
        }
        if (local_68[0] != local_78) {
          FUN_001e6db0(local_68[0]);
        }
        if (param_2 <= iVar5) goto LAB_000e8d68;
      }
      if (*pcVar4 != '-') goto LAB_000e8c02;
      iVar5 = FUN_000e6c60(param_1,param_2,param_3,iVar5,&local_69);
    } while (iVar5 < param_2);
  }
LAB_000e8d68:
  uVar2 = DAT_0038f488;
  if (*(char *)(param_1 + 0x5b78) == '\0') {
    if (*(char *)(param_1 + 0x5b79) == '\0') {
      FUN_000e74a0(param_1 + 4);
      return;
    }
  }
  else {
    pcVar4 = (char *)gettext("%s: missing group end\n");
    fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2);
    FUN_000dccc0();
  }
  uVar2 = DAT_0038f488;
  pcVar4 = (char *)gettext("%s: missing lib end\n");
  fprintf(*(FILE **)PTR_stderr_0038ed28,pcVar4,uVar2);
  FUN_000dccc0();
                    /* catch() { ... } // from try @ 000e8c86 with catch @ 000e8dfd */
  FUN_0002f5c0();
  return;
}

