
/* DWARF original prototype: void One_option(One_option * this, char * ln, Dashes d, char sn, char *
   dv, char * hs, char * ha, bool oa, Struct_var * r, bool id) */

void __thiscall
gold::options::One_option::One_option
          (One_option *this,char *ln,Dashes d,char sn,char *dv,char *hs,char *ha,bool oa,
          Struct_var *r,bool id)

{
  size_t sVar1;
  char *pcVar2;
  
  pcVar2 = (char *)0xffffffffffffffff;
  (this->longname)._M_dataplus._M_p = (pointer)&(this->longname).field_2;
  if (ln != (char *)0x0) {
    sVar1 = strlen(ln);
    pcVar2 = ln + sVar1;
  }
  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
  _M_construct<char_const*>(&this->longname,ln,pcVar2);
  this->dashes = d;
  pcVar2 = (this->longname)._M_dataplus._M_p;
  this->shortname = sn;
  if (dv == (char *)0x0) {
    dv = "";
  }
  this->helpstring = hs;
  this->helparg = ha;
  this->default_value = dv;
  this->optional_arg = oa;
  this->reader = r;
  this->is_default = id;
  pcVar2 = strchr(pcVar2,0x5f);
  if (pcVar2 != (char *)0x0) {
    do {
      *pcVar2 = '-';
      pcVar2 = strchr(pcVar2,0x5f);
    } while (pcVar2 != (char *)0x0);
    hs = this->helpstring;
  }
  if ((hs != (char *)0x0) && (ready_to_register != false)) {
                    /* try { // try from 001f3663 to 001f3667 has its CatchHandler @ 001f3677 */
    register_option(this);
    return;
  }
  return;
}



void FUN_001f3570(long *param_1,char *param_2,undefined4 param_3,undefined1 param_4,char *param_5,
                 long param_6,long param_7,undefined1 param_8,long param_9,undefined1 param_10)

{
  size_t sVar1;
  char *pcVar2;
  
  pcVar2 = (char *)0xffffffffffffffff;
  *param_1 = (long)(param_1 + 2);
  if (param_2 != (char *)0x0) {
    sVar1 = strlen(param_2);
    pcVar2 = param_2 + sVar1;
  }
  FUN_001665c0(param_1,param_2,pcVar2);
  *(undefined4 *)(param_1 + 4) = param_3;
  *(undefined1 *)((long)param_1 + 0x24) = param_4;
  if (param_5 == (char *)0x0) {
    param_5 = "";
  }
  param_1[6] = param_6;
  param_1[7] = param_7;
  param_1[5] = (long)param_5;
  *(undefined1 *)(param_1 + 8) = param_8;
  param_1[9] = param_9;
  *(undefined1 *)(param_1 + 10) = param_10;
  pcVar2 = strchr((char *)*param_1,0x5f);
  if (pcVar2 != (char *)0x0) {
    do {
      *pcVar2 = '-';
      pcVar2 = strchr(pcVar2,0x5f);
    } while (pcVar2 != (char *)0x0);
    param_6 = param_1[6];
  }
  if ((param_6 != 0) && (DAT_00448128 != '\0')) {
                    /* try { // try from 001f3663 to 001f3667 has its CatchHandler @ 001f3677 */
    FUN_001e7950(param_1);
    return;
  }
  return;
}


PUSH R15
MOV R15D,EDX
MOV RDX,-0x1
PUSH R14
MOV R14D,ECX
PUSH R13
MOV R13,R8
PUSH R12
LEA R12,[RDI + 0x10]
PUSH RBP
MOV RBP,R9
PUSH RBX
MOV RBX,RDI
SUB RSP,0x18
MOV EAX,dword ptr [RSP + 0x58]
MOV dword ptr [RSP],EAX
MOV EAX,dword ptr [RSP + 0x68]
MOV qword ptr [RDI],R12
MOV dword ptr [RSP + 0x4],EAX
TEST RSI,RSI
JZ 0x001f35c5
MOV RDI,RSI
MOV qword ptr [RSP + 0x8],RSI
CALL 0x00147490
MOV RSI,qword ptr [RSP + 0x8]
LEA RDX,[RSI + RAX*0x1]
MOV RDI,RBX
CALL 0x001665c0
TEST R13,R13
MOV dword ptr [RBX + 0x20],R15D
MOV RDI,qword ptr [RBX]
LEA RAX,[0x38b016]
MOV byte ptr [RBX + 0x24],R14B
MOV ESI,0x5f
CMOVZ R13,RAX
MOV RAX,qword ptr [RSP + 0x50]
MOV qword ptr [RBX + 0x30],RBP
MOV qword ptr [RBX + 0x38],RAX
MOVZX EAX,byte ptr [RSP]
MOV qword ptr [RBX + 0x28],R13
MOV byte ptr [RBX + 0x40],AL
MOV RAX,qword ptr [RSP + 0x60]
MOV qword ptr [RBX + 0x48],RAX
MOVZX EAX,byte ptr [RSP + 0x4]
MOV byte ptr [RBX + 0x50],AL
CALL 0x001476e0
TEST RAX,RAX
JZ 0x001f3639
NOP
MOV byte ptr [RAX],0x2d
MOV ESI,0x5f
MOV RDI,RAX
CALL 0x001476e0
TEST RAX,RAX
JNZ 0x001f3620
MOV RBP,qword ptr [RBX + 0x30]
TEST RBP,RBP
JZ 0x001f3647
CMP byte ptr [0x00448128],0x0
JNZ 0x001f3660
ADD RSP,0x18
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV RDI,RBX
CALL 0x001e7950
ADD RSP,0x18
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
(translation_unit "void FUN_001f3570(long *param_1,char *param_2,undefined4 param_3,undefined1 param_4,char *param_5,\n                 long param_6,long param_7,undefined1 param_8,long param_9,undefined1 param_10)\n\n{\n  size_t sVar1;\n  char *pcVar2;\n  \n  pcVar2 = (char *)0xffffffffffffffff;\n  *param_1 = (long)(param_1 + 2);\n  if (param_2 != (char *)0x0) {\n    sVar1 = strlen(param_2);\n    pcVar2 = param_2 + sVar1;\n  }\n  FUN_001665c0(param_1,param_2,pcVar2);\n  *(undefined4 *)(param_1 + 4) = param_3;\n  *(undefined1 *)((long)param_1 + 0x24) = param_4;\n  if (param_5 == (char *)0x0) {\n    param_5 = "";\n  }\n  param_1[6] = param_6;\n  param_1[7] = param_7;\n  param_1[5] = (long)param_5;\n  *(undefined1 *)(param_1 + 8) = param_8;\n  param_1[9] = param_9;\n  *(undefined1 *)(param_1 + 10) = param_10;\n  pcVar2 = strchr((char *)*param_1,0x5f);\n  if (pcVar2 != (char *)0x0) {\n    do {\n      *pcVar2 = '-';\n      pcVar2 = strchr(pcVar2,0x5f);\n    } while (pcVar2 != (char *)0x0);\n    param_6 = param_1[6];\n  }\n  if ((param_6 != 0) && (DAT_00448128 != '\0')) {\n                    /* try { // try from 001f3663 to 001f3667 has its CatchHandler @ 001f3677 */\n    FUN_001e7950(param_1);\n    return;\n  }\n  return;\n}\n\n" (function_definition "void FUN_001f3570(long *param_1,char *param_2,undefined4 param_3,undefined1 param_4,char *param_5,\n                 long param_6,long param_7,undefined1 param_8,long param_9,undefined1 param_10)\n\n{\n  size_t sVar1;\n  char *pcVar2;\n  \n  pcVar2 = (char *)0xffffffffffffffff;\n  *param_1 = (long)(param_1 + 2);\n  if (param_2 != (char *)0x0) {\n    sVar1 = strlen(param_2);\n    pcVar2 = param_2 + sVar1;\n  }\n  FUN_001665c0(param_1,param_2,pcVar2);\n  *(undefined4 *)(param_1 + 4) = param_3;\n  *(undefined1 *)((long)param_1 + 0x24) = param_4;\n  if (param_5 == (char *)0x0) {\n    param_5 = "";\n  }\n  param_1[6] = param_6;\n  param_1[7] = param_7;\n  param_1[5] = (long)param_5;\n  *(undefined1 *)(param_1 + 8) = param_8;\n  param_1[9] = param_9;\n  *(undefined1 *)(param_1 + 10) = param_10;\n  pcVar2 = strchr((char *)*param_1,0x5f);\n  if (pcVar2 != (char *)0x0) {\n    do {\n      *pcVar2 = '-';\n      pcVar2 = strchr(pcVar2,0x5f);\n    } while (pcVar2 != (char *)0x0);\n    param_6 = param_1[6];\n  }\n  if ((param_6 != 0) && (DAT_00448128 != '\0')) {\n                    /* try { // try from 001f3663 to 001f3667 has its CatchHandler @ 001f3677 */\n    FUN_001e7950(param_1);\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_001f3570(long *param_1,char *param_2,undefined4 param_3,undefined1 param_4,char *param_5,\n                 long param_6,long param_7,undefined1 param_8,long param_9,undefined1 param_10)" identifier (parameter_list "(long *param_1,char *param_2,undefined4 param_3,undefined1 param_4,char *param_5,\n                 long param_6,long param_7,undefined1 param_8,long param_9,undefined1 param_10)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined1 param_4" type_identifier identifier) , (parameter_declaration "char *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "long param_6" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_7" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined1 param_8" type_identifier identifier) , (parameter_declaration "long param_9" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined1 param_10" type_identifier identifier) ))) (compound_statement "{\n  size_t sVar1;\n  char *pcVar2;\n  \n  pcVar2 = (char *)0xffffffffffffffff;\n  *param_1 = (long)(param_1 + 2);\n  if (param_2 != (char *)0x0) {\n    sVar1 = strlen(param_2);\n    pcVar2 = param_2 + sVar1;\n  }\n  FUN_001665c0(param_1,param_2,pcVar2);\n  *(undefined4 *)(param_1 + 4) = param_3;\n  *(undefined1 *)((long)param_1 + 0x24) = param_4;\n  if (param_5 == (char *)0x0) {\n    param_5 = "";\n  }\n  param_1[6] = param_6;\n  param_1[7] = param_7;\n  param_1[5] = (long)param_5;\n  *(undefined1 *)(param_1 + 8) = param_8;\n  param_1[9] = param_9;\n  *(undefined1 *)(param_1 + 10) = param_10;\n  pcVar2 = strchr((char *)*param_1,0x5f);\n  if (pcVar2 != (char *)0x0) {\n    do {\n      *pcVar2 = '-';\n      pcVar2 = strchr(pcVar2,0x5f);\n    } while (pcVar2 != (char *)0x0);\n    param_6 = param_1[6];\n  }\n  if ((param_6 != 0) && (DAT_00448128 != '\0')) {\n                    /* try { // try from 001f3663 to 001f3667 has its CatchHandler @ 001f3677 */\n    FUN_001e7950(param_1);\n    return;\n  }\n  return;\n}" { (declaration "size_t sVar1;" primitive_type identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (expression_statement "pcVar2 = (char *)0xffffffffffffffff;" (assignment_expression "pcVar2 = (char *)0xffffffffffffffff" identifier = (cast_expression "(char *)0xffffffffffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*param_1 = (long)(param_1 + 2);" (assignment_expression "*param_1 = (long)(param_1 + 2)" (pointer_expression "*param_1" * identifier) = (cast_expression "(long)(param_1 + 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) )))) ;) (if_statement "if (param_2 != (char *)0x0) {\n    sVar1 = strlen(param_2);\n    pcVar2 = param_2 + sVar1;\n  }" if (parenthesized_expression "(param_2 != (char *)0x0)" ( (binary_expression "param_2 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sVar1 = strlen(param_2);\n    pcVar2 = param_2 + sVar1;\n  }" { (expression_statement "sVar1 = strlen(param_2);" (assignment_expression "sVar1 = strlen(param_2)" identifier = (call_expression "strlen(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "pcVar2 = param_2 + sVar1;" (assignment_expression "pcVar2 = param_2 + sVar1" identifier = (binary_expression "param_2 + sVar1" identifier + identifier)) ;) })) (expression_statement "FUN_001665c0(param_1,param_2,pcVar2);" (call_expression "FUN_001665c0(param_1,param_2,pcVar2)" identifier (argument_list "(param_1,param_2,pcVar2)" ( identifier , identifier , identifier ))) ;) (expression_statement "*(undefined4 *)(param_1 + 4) = param_3;" (assignment_expression "*(undefined4 *)(param_1 + 4) = param_3" (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)((long)param_1 + 0x24) = param_4;" (assignment_expression "*(undefined1 *)((long)param_1 + 0x24) = param_4" (pointer_expression "*(undefined1 *)((long)param_1 + 0x24)" * (cast_expression "(undefined1 *)((long)param_1 + 0x24)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x24)" ( (binary_expression "(long)param_1 + 0x24" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (if_statement "if (param_5 == (char *)0x0) {\n    param_5 = "";\n  }" if (parenthesized_expression "(param_5 == (char *)0x0)" ( (binary_expression "param_5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    param_5 = "";\n  }" { (expression_statement "param_5 = "";" (assignment_expression "param_5 = """ identifier = (string_literal """" " ")) ;) })) (expression_statement "param_1[6] = param_6;" (assignment_expression "param_1[6] = param_6" (subscript_expression "param_1[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[7] = param_7;" (assignment_expression "param_1[7] = param_7" (subscript_expression "param_1[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[5] = (long)param_5;" (assignment_expression "param_1[5] = (long)param_5" (subscript_expression "param_1[5]" identifier [ number_literal ]) = (cast_expression "(long)param_5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*(undefined1 *)(param_1 + 8) = param_8;" (assignment_expression "*(undefined1 *)(param_1 + 8) = param_8" (pointer_expression "*(undefined1 *)(param_1 + 8)" * (cast_expression "(undefined1 *)(param_1 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "param_1[9] = param_9;" (assignment_expression "param_1[9] = param_9" (subscript_expression "param_1[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(param_1 + 10) = param_10;" (assignment_expression "*(undefined1 *)(param_1 + 10) = param_10" (pointer_expression "*(undefined1 *)(param_1 + 10)" * (cast_expression "(undefined1 *)(param_1 + 10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 10)" ( (binary_expression "param_1 + 10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = strchr((char *)*param_1,0x5f);" (assignment_expression "pcVar2 = strchr((char *)*param_1,0x5f)" identifier = (call_expression "strchr((char *)*param_1,0x5f)" identifier (argument_list "((char *)*param_1,0x5f)" ( (cast_expression "(char *)*param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) , number_literal )))) ;) (if_statement "if (pcVar2 != (char *)0x0) {\n    do {\n      *pcVar2 = '-';\n      pcVar2 = strchr(pcVar2,0x5f);\n    } while (pcVar2 != (char *)0x0);\n    param_6 = param_1[6];\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 "{\n    do {\n      *pcVar2 = '-';\n      pcVar2 = strchr(pcVar2,0x5f);\n    } while (pcVar2 != (char *)0x0);\n    param_6 = param_1[6];\n  }" { (do_statement "do {\n      *pcVar2 = '-';\n      pcVar2 = strchr(pcVar2,0x5f);\n    } while (pcVar2 != (char *)0x0);" do (compound_statement "{\n      *pcVar2 = '-';\n      pcVar2 = strchr(pcVar2,0x5f);\n    }" { (expression_statement "*pcVar2 = '-';" (assignment_expression "*pcVar2 = '-'" (pointer_expression "*pcVar2" * identifier) = (char_literal "'-'" ' character ')) ;) (expression_statement "pcVar2 = strchr(pcVar2,0x5f);" (assignment_expression "pcVar2 = strchr(pcVar2,0x5f)" identifier = (call_expression "strchr(pcVar2,0x5f)" identifier (argument_list "(pcVar2,0x5f)" ( identifier , number_literal )))) ;) }) while (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)) )) ;) (expression_statement "param_6 = param_1[6];" (assignment_expression "param_6 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) })) (if_statement "if ((param_6 != 0) && (DAT_00448128 != '\0')) {\n                    /* try { // try from 001f3663 to 001f3667 has its CatchHandler @ 001f3677 */\n    FUN_001e7950(param_1);\n    return;\n  }" if (parenthesized_expression "((param_6 != 0) && (DAT_00448128 != '\0'))" ( (binary_expression "(param_6 != 0) && (DAT_00448128 != '\0')" (parenthesized_expression "(param_6 != 0)" ( (binary_expression "param_6 != 0" identifier != number_literal) )) && (parenthesized_expression "(DAT_00448128 != '\0')" ( (binary_expression "DAT_00448128 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n                    /* try { // try from 001f3663 to 001f3667 has its CatchHandler @ 001f3677 */\n    FUN_001e7950(param_1);\n    return;\n  }" { comment (expression_statement "FUN_001e7950(param_1);" (call_expression "FUN_001e7950(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* DWARF original prototype: void One_option(One_option * this, char * ln, Dashes d, char sn, char *\n   dv, char * hs, char * ha, bool oa, Struct_var * r, bool id) */\n\nvoid __thiscall\ngold::options::One_option::One_option\n          (One_option *this,char *ln,Dashes d,char sn,char *dv,char *hs,char *ha,bool oa,\n          Struct_var *r,bool id)\n\n{\n  size_t sVar1;\n  char *pcVar2;\n  \n  pcVar2 = (char *)0xffffffffffffffff;\n  (this->longname)._M_dataplus._M_p = (pointer)&(this->longname).field_2;\n  if (ln != (char *)0x0) {\n    sVar1 = strlen(ln);\n    pcVar2 = ln + sVar1;\n  }\n  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>(&this->longname,ln,pcVar2);\n  this->dashes = d;\n  pcVar2 = (this->longname)._M_dataplus._M_p;\n  this->shortname = sn;\n  if (dv == (char *)0x0) {\n    dv = "";\n  }\n  this->helpstring = hs;\n  this->helparg = ha;\n  this->default_value = dv;\n  this->optional_arg = oa;\n  this->reader = r;\n  this->is_default = id;\n  pcVar2 = strchr(pcVar2,0x5f);\n  if (pcVar2 != (char *)0x0) {\n    do {\n      *pcVar2 = '-';\n      pcVar2 = strchr(pcVar2,0x5f);\n    } while (pcVar2 != (char *)0x0);\n    hs = this->helpstring;\n  }\n  if ((hs != (char *)0x0) && (ready_to_register != false)) {\n                    /* try { // try from 001f3663 to 001f3667 has its CatchHandler @ 001f3677 */\n    register_option(this);\n    return;\n  }\n  return;\n}\n\n" comment (function_definition "void __thiscall\ngold::options::One_option::One_option\n          (One_option *this,char *ln,Dashes d,char sn,char *dv,char *hs,char *ha,bool oa,\n          Struct_var *r,bool id)\n\n{\n  size_t sVar1;\n  char *pcVar2;\n  \n  pcVar2 = (char *)0xffffffffffffffff;\n  (this->longname)._M_dataplus._M_p = (pointer)&(this->longname).field_2;\n  if (ln != (char *)0x0) {\n    sVar1 = strlen(ln);\n    pcVar2 = ln + sVar1;\n  }\n  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>(&this->longname,ln,pcVar2);\n  this->dashes = d;\n  pcVar2 = (this->longname)._M_dataplus._M_p;\n  this->shortname = sn;\n  if (dv == (char *)0x0) {\n    dv = "";\n  }\n  this->helpstring = hs;\n  this->helparg = ha;\n  this->default_value = dv;\n  this->optional_arg = oa;\n  this->reader = r;\n  this->is_default = id;\n  pcVar2 = strchr(pcVar2,0x5f);\n  if (pcVar2 != (char *)0x0) {\n    do {\n      *pcVar2 = '-';\n      pcVar2 = strchr(pcVar2,0x5f);\n    } while (pcVar2 != (char *)0x0);\n    hs = this->helpstring;\n  }\n  if ((hs != (char *)0x0) && (ready_to_register != false)) {\n                    /* try { // try from 001f3663 to 001f3667 has its CatchHandler @ 001f3677 */\n    register_option(this);\n    return;\n  }\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::options::One_option::" identifier : : identifier : : identifier : :) (function_declarator "One_option\n          (One_option *this,char *ln,Dashes d,char sn,char *dv,char *hs,char *ha,bool oa,\n          Struct_var *r,bool id)" identifier (parameter_list "(One_option *this,char *ln,Dashes d,char sn,char *dv,char *hs,char *ha,bool oa,\n          Struct_var *r,bool id)" ( (parameter_declaration "One_option *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "char *ln" primitive_type (pointer_declarator "*ln" * identifier)) , (parameter_declaration "Dashes d" type_identifier identifier) , (parameter_declaration "char sn" primitive_type identifier) , (parameter_declaration "char *dv" primitive_type (pointer_declarator "*dv" * identifier)) , (parameter_declaration "char *hs" primitive_type (pointer_declarator "*hs" * identifier)) , (parameter_declaration "char *ha" primitive_type (pointer_declarator "*ha" * identifier)) , (parameter_declaration "bool oa" primitive_type identifier) , (parameter_declaration "Struct_var *r" type_identifier (pointer_declarator "*r" * identifier)) , (parameter_declaration "bool id" primitive_type identifier) ))) (compound_statement "{\n  size_t sVar1;\n  char *pcVar2;\n  \n  pcVar2 = (char *)0xffffffffffffffff;\n  (this->longname)._M_dataplus._M_p = (pointer)&(this->longname).field_2;\n  if (ln != (char *)0x0) {\n    sVar1 = strlen(ln);\n    pcVar2 = ln + sVar1;\n  }\n  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>(&this->longname,ln,pcVar2);\n  this->dashes = d;\n  pcVar2 = (this->longname)._M_dataplus._M_p;\n  this->shortname = sn;\n  if (dv == (char *)0x0) {\n    dv = "";\n  }\n  this->helpstring = hs;\n  this->helparg = ha;\n  this->default_value = dv;\n  this->optional_arg = oa;\n  this->reader = r;\n  this->is_default = id;\n  pcVar2 = strchr(pcVar2,0x5f);\n  if (pcVar2 != (char *)0x0) {\n    do {\n      *pcVar2 = '-';\n      pcVar2 = strchr(pcVar2,0x5f);\n    } while (pcVar2 != (char *)0x0);\n    hs = this->helpstring;\n  }\n  if ((hs != (char *)0x0) && (ready_to_register != false)) {\n                    /* try { // try from 001f3663 to 001f3667 has its CatchHandler @ 001f3677 */\n    register_option(this);\n    return;\n  }\n  return;\n}" { (declaration "size_t sVar1;" primitive_type identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (expression_statement "pcVar2 = (char *)0xffffffffffffffff;" (assignment_expression "pcVar2 = (char *)0xffffffffffffffff" identifier = (cast_expression "(char *)0xffffffffffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(this->longname)._M_dataplus._M_p = (pointer)&(this->longname).field_2;" (assignment_expression "(this->longname)._M_dataplus._M_p = (pointer)&(this->longname).field_2" (field_expression "(this->longname)._M_dataplus._M_p" (field_expression "(this->longname)._M_dataplus" (parenthesized_expression "(this->longname)" ( (field_expression "this->longname" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (binary_expression "(pointer)&(this->longname).field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "(this->longname).field_2" (parenthesized_expression "(this->longname)" ( (field_expression "this->longname" identifier -> field_identifier) )) . field_identifier))) ;) (if_statement "if (ln != (char *)0x0) {\n    sVar1 = strlen(ln);\n    pcVar2 = ln + sVar1;\n  }" if (parenthesized_expression "(ln != (char *)0x0)" ( (binary_expression "ln != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sVar1 = strlen(ln);\n    pcVar2 = ln + sVar1;\n  }" { (expression_statement "sVar1 = strlen(ln);" (assignment_expression "sVar1 = strlen(ln)" identifier = (call_expression "strlen(ln)" identifier (argument_list "(ln)" ( identifier )))) ;) (expression_statement "pcVar2 = ln + sVar1;" (assignment_expression "pcVar2 = ln + sVar1" identifier = (binary_expression "ln + sVar1" identifier + identifier)) ;) })) (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>(&this->longname,ln,pcVar2);" 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*>(&this->longname,ln,pcVar2);" (binary_expression "_M_construct<char_const*>(&this->longname,ln,pcVar2)" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "(&this->longname,ln,pcVar2)" ( (comma_expression "&this->longname,ln,pcVar2" (pointer_expression "&this->longname" & (field_expression "this->longname" identifier -> field_identifier)) , (comma_expression "ln,pcVar2" identifier , identifier)) ))) ;)) (expression_statement "this->dashes = d;" (assignment_expression "this->dashes = d" (field_expression "this->dashes" identifier -> field_identifier) = identifier) ;) (expression_statement "pcVar2 = (this->longname)._M_dataplus._M_p;" (assignment_expression "pcVar2 = (this->longname)._M_dataplus._M_p" identifier = (field_expression "(this->longname)._M_dataplus._M_p" (field_expression "(this->longname)._M_dataplus" (parenthesized_expression "(this->longname)" ( (field_expression "this->longname" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "this->shortname = sn;" (assignment_expression "this->shortname = sn" (field_expression "this->shortname" identifier -> field_identifier) = identifier) ;) (if_statement "if (dv == (char *)0x0) {\n    dv = "";\n  }" if (parenthesized_expression "(dv == (char *)0x0)" ( (binary_expression "dv == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    dv = "";\n  }" { (expression_statement "dv = "";" (assignment_expression "dv = """ identifier = (string_literal """" " ")) ;) })) (expression_statement "this->helpstring = hs;" (assignment_expression "this->helpstring = hs" (field_expression "this->helpstring" identifier -> field_identifier) = identifier) ;) (expression_statement "this->helparg = ha;" (assignment_expression "this->helparg = ha" (field_expression "this->helparg" identifier -> field_identifier) = identifier) ;) (expression_statement "this->default_value = dv;" (assignment_expression "this->default_value = dv" (field_expression "this->default_value" identifier -> field_identifier) = identifier) ;) (expression_statement "this->optional_arg = oa;" (assignment_expression "this->optional_arg = oa" (field_expression "this->optional_arg" identifier -> field_identifier) = identifier) ;) (expression_statement "this->reader = r;" (assignment_expression "this->reader = r" (field_expression "this->reader" identifier -> field_identifier) = identifier) ;) (expression_statement "this->is_default = id;" (assignment_expression "this->is_default = id" (field_expression "this->is_default" identifier -> field_identifier) = identifier) ;) (expression_statement "pcVar2 = strchr(pcVar2,0x5f);" (assignment_expression "pcVar2 = strchr(pcVar2,0x5f)" identifier = (call_expression "strchr(pcVar2,0x5f)" identifier (argument_list "(pcVar2,0x5f)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar2 != (char *)0x0) {\n    do {\n      *pcVar2 = '-';\n      pcVar2 = strchr(pcVar2,0x5f);\n    } while (pcVar2 != (char *)0x0);\n    hs = this->helpstring;\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 "{\n    do {\n      *pcVar2 = '-';\n      pcVar2 = strchr(pcVar2,0x5f);\n    } while (pcVar2 != (char *)0x0);\n    hs = this->helpstring;\n  }" { (do_statement "do {\n      *pcVar2 = '-';\n      pcVar2 = strchr(pcVar2,0x5f);\n    } while (pcVar2 != (char *)0x0);" do (compound_statement "{\n      *pcVar2 = '-';\n      pcVar2 = strchr(pcVar2,0x5f);\n    }" { (expression_statement "*pcVar2 = '-';" (assignment_expression "*pcVar2 = '-'" (pointer_expression "*pcVar2" * identifier) = (char_literal "'-'" ' character ')) ;) (expression_statement "pcVar2 = strchr(pcVar2,0x5f);" (assignment_expression "pcVar2 = strchr(pcVar2,0x5f)" identifier = (call_expression "strchr(pcVar2,0x5f)" identifier (argument_list "(pcVar2,0x5f)" ( identifier , number_literal )))) ;) }) while (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)) )) ;) (expression_statement "hs = this->helpstring;" (assignment_expression "hs = this->helpstring" identifier = (field_expression "this->helpstring" identifier -> field_identifier)) ;) })) (if_statement "if ((hs != (char *)0x0) && (ready_to_register != false)) {\n                    /* try { // try from 001f3663 to 001f3667 has its CatchHandler @ 001f3677 */\n    register_option(this);\n    return;\n  }" if (parenthesized_expression "((hs != (char *)0x0) && (ready_to_register != false))" ( (binary_expression "(hs != (char *)0x0) && (ready_to_register != false)" (parenthesized_expression "(hs != (char *)0x0)" ( (binary_expression "hs != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(ready_to_register != false)" ( (binary_expression "ready_to_register != false" identifier != false) ))) )) (compound_statement "{\n                    /* try { // try from 001f3663 to 001f3667 has its CatchHandler @ 001f3677 */\n    register_option(this);\n    return;\n  }" { comment (expression_statement "register_option(this);" (call_expression "register_option(this)" identifier (argument_list "(this)" ( identifier ))) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_001f3570(long *param_1,char *param_2,undefined4 param_3,undefined1 param_4,char *param_5,\n                 long param_6,long param_7,undefined1 param_8,long param_9,undefined1 param_10)\n\n{\n  size_t sVar1;\n  char *pcVar2;\n  \n  pcVar2 = (char *)0xffffffffffffffff;\n  *param_1 = (long)(param_1 + 2);\n  if (param_2 != (char *)0x0) {\n    sVar1 = strlen(param_2);\n    pcVar2 = param_2 + sVar1;\n  }\n  FUN_001665c0(param_1,param_2,pcVar2);\n  *(undefined4 *)(param_1 + 4) = param_3;\n  *(undefined1 *)((long)param_1 + 0x24) = param_4;\n  if (param_5 == (char *)0x0) {\n    param_5 = "";\n  }\n  param_1[6] = param_6;\n  param_1[7] = param_7;\n  param_1[5] = (long)param_5;\n  *(undefined1 *)(param_1 + 8) = param_8;\n  param_1[9] = param_9;\n  *(undefined1 *)(param_1 + 10) = param_10;\n  pcVar2 = strchr((char *)*param_1,0x5f);\n  if (pcVar2 != (char *)0x0) {\n    do {\n      *pcVar2 = '-';\n      pcVar2 = strchr(pcVar2,0x5f);\n    } while (pcVar2 != (char *)0x0);\n    param_6 = param_1[6];\n  }\n  if ((param_6 != 0) && (DAT_00448128 != '\0')) {\n                    \n    FUN_001e7950(param_1);\n    return;\n  }\n  return;\n}\n\n" (function_definition "void FUN_001f3570(long *param_1,char *param_2,undefined4 param_3,undefined1 param_4,char *param_5,\n                 long param_6,long param_7,undefined1 param_8,long param_9,undefined1 param_10)\n\n{\n  size_t sVar1;\n  char *pcVar2;\n  \n  pcVar2 = (char *)0xffffffffffffffff;\n  *param_1 = (long)(param_1 + 2);\n  if (param_2 != (char *)0x0) {\n    sVar1 = strlen(param_2);\n    pcVar2 = param_2 + sVar1;\n  }\n  FUN_001665c0(param_1,param_2,pcVar2);\n  *(undefined4 *)(param_1 + 4) = param_3;\n  *(undefined1 *)((long)param_1 + 0x24) = param_4;\n  if (param_5 == (char *)0x0) {\n    param_5 = "";\n  }\n  param_1[6] = param_6;\n  param_1[7] = param_7;\n  param_1[5] = (long)param_5;\n  *(undefined1 *)(param_1 + 8) = param_8;\n  param_1[9] = param_9;\n  *(undefined1 *)(param_1 + 10) = param_10;\n  pcVar2 = strchr((char *)*param_1,0x5f);\n  if (pcVar2 != (char *)0x0) {\n    do {\n      *pcVar2 = '-';\n      pcVar2 = strchr(pcVar2,0x5f);\n    } while (pcVar2 != (char *)0x0);\n    param_6 = param_1[6];\n  }\n  if ((param_6 != 0) && (DAT_00448128 != '\0')) {\n                    \n    FUN_001e7950(param_1);\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_001f3570(long *param_1,char *param_2,undefined4 param_3,undefined1 param_4,char *param_5,\n                 long param_6,long param_7,undefined1 param_8,long param_9,undefined1 param_10)" identifier (parameter_list "(long *param_1,char *param_2,undefined4 param_3,undefined1 param_4,char *param_5,\n                 long param_6,long param_7,undefined1 param_8,long param_9,undefined1 param_10)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined1 param_4" type_identifier identifier) , (parameter_declaration "char *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "long param_6" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_7" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined1 param_8" type_identifier identifier) , (parameter_declaration "long param_9" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined1 param_10" type_identifier identifier) ))) (compound_statement "{\n  size_t sVar1;\n  char *pcVar2;\n  \n  pcVar2 = (char *)0xffffffffffffffff;\n  *param_1 = (long)(param_1 + 2);\n  if (param_2 != (char *)0x0) {\n    sVar1 = strlen(param_2);\n    pcVar2 = param_2 + sVar1;\n  }\n  FUN_001665c0(param_1,param_2,pcVar2);\n  *(undefined4 *)(param_1 + 4) = param_3;\n  *(undefined1 *)((long)param_1 + 0x24) = param_4;\n  if (param_5 == (char *)0x0) {\n    param_5 = "";\n  }\n  param_1[6] = param_6;\n  param_1[7] = param_7;\n  param_1[5] = (long)param_5;\n  *(undefined1 *)(param_1 + 8) = param_8;\n  param_1[9] = param_9;\n  *(undefined1 *)(param_1 + 10) = param_10;\n  pcVar2 = strchr((char *)*param_1,0x5f);\n  if (pcVar2 != (char *)0x0) {\n    do {\n      *pcVar2 = '-';\n      pcVar2 = strchr(pcVar2,0x5f);\n    } while (pcVar2 != (char *)0x0);\n    param_6 = param_1[6];\n  }\n  if ((param_6 != 0) && (DAT_00448128 != '\0')) {\n                    \n    FUN_001e7950(param_1);\n    return;\n  }\n  return;\n}" { (declaration "size_t sVar1;" primitive_type identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (expression_statement "pcVar2 = (char *)0xffffffffffffffff;" (assignment_expression "pcVar2 = (char *)0xffffffffffffffff" identifier = (cast_expression "(char *)0xffffffffffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*param_1 = (long)(param_1 + 2);" (assignment_expression "*param_1 = (long)(param_1 + 2)" (pointer_expression "*param_1" * identifier) = (cast_expression "(long)(param_1 + 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) )))) ;) (if_statement "if (param_2 != (char *)0x0) {\n    sVar1 = strlen(param_2);\n    pcVar2 = param_2 + sVar1;\n  }" if (parenthesized_expression "(param_2 != (char *)0x0)" ( (binary_expression "param_2 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sVar1 = strlen(param_2);\n    pcVar2 = param_2 + sVar1;\n  }" { (expression_statement "sVar1 = strlen(param_2);" (assignment_expression "sVar1 = strlen(param_2)" identifier = (call_expression "strlen(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "pcVar2 = param_2 + sVar1;" (assignment_expression "pcVar2 = param_2 + sVar1" identifier = (binary_expression "param_2 + sVar1" identifier + identifier)) ;) })) (expression_statement "FUN_001665c0(param_1,param_2,pcVar2);" (call_expression "FUN_001665c0(param_1,param_2,pcVar2)" identifier (argument_list "(param_1,param_2,pcVar2)" ( identifier , identifier , identifier ))) ;) (expression_statement "*(undefined4 *)(param_1 + 4) = param_3;" (assignment_expression "*(undefined4 *)(param_1 + 4) = param_3" (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)((long)param_1 + 0x24) = param_4;" (assignment_expression "*(undefined1 *)((long)param_1 + 0x24) = param_4" (pointer_expression "*(undefined1 *)((long)param_1 + 0x24)" * (cast_expression "(undefined1 *)((long)param_1 + 0x24)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x24)" ( (binary_expression "(long)param_1 + 0x24" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (if_statement "if (param_5 == (char *)0x0) {\n    param_5 = "";\n  }" if (parenthesized_expression "(param_5 == (char *)0x0)" ( (binary_expression "param_5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    param_5 = "";\n  }" { (expression_statement "param_5 = "";" (assignment_expression "param_5 = """ identifier = (string_literal """" " ")) ;) })) (expression_statement "param_1[6] = param_6;" (assignment_expression "param_1[6] = param_6" (subscript_expression "param_1[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[7] = param_7;" (assignment_expression "param_1[7] = param_7" (subscript_expression "param_1[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[5] = (long)param_5;" (assignment_expression "param_1[5] = (long)param_5" (subscript_expression "param_1[5]" identifier [ number_literal ]) = (cast_expression "(long)param_5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*(undefined1 *)(param_1 + 8) = param_8;" (assignment_expression "*(undefined1 *)(param_1 + 8) = param_8" (pointer_expression "*(undefined1 *)(param_1 + 8)" * (cast_expression "(undefined1 *)(param_1 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "param_1[9] = param_9;" (assignment_expression "param_1[9] = param_9" (subscript_expression "param_1[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(param_1 + 10) = param_10;" (assignment_expression "*(undefined1 *)(param_1 + 10) = param_10" (pointer_expression "*(undefined1 *)(param_1 + 10)" * (cast_expression "(undefined1 *)(param_1 + 10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 10)" ( (binary_expression "param_1 + 10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = strchr((char *)*param_1,0x5f);" (assignment_expression "pcVar2 = strchr((char *)*param_1,0x5f)" identifier = (call_expression "strchr((char *)*param_1,0x5f)" identifier (argument_list "((char *)*param_1,0x5f)" ( (cast_expression "(char *)*param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) , number_literal )))) ;) (if_statement "if (pcVar2 != (char *)0x0) {\n    do {\n      *pcVar2 = '-';\n      pcVar2 = strchr(pcVar2,0x5f);\n    } while (pcVar2 != (char *)0x0);\n    param_6 = param_1[6];\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 "{\n    do {\n      *pcVar2 = '-';\n      pcVar2 = strchr(pcVar2,0x5f);\n    } while (pcVar2 != (char *)0x0);\n    param_6 = param_1[6];\n  }" { (do_statement "do {\n      *pcVar2 = '-';\n      pcVar2 = strchr(pcVar2,0x5f);\n    } while (pcVar2 != (char *)0x0);" do (compound_statement "{\n      *pcVar2 = '-';\n      pcVar2 = strchr(pcVar2,0x5f);\n    }" { (expression_statement "*pcVar2 = '-';" (assignment_expression "*pcVar2 = '-'" (pointer_expression "*pcVar2" * identifier) = (char_literal "'-'" ' character ')) ;) (expression_statement "pcVar2 = strchr(pcVar2,0x5f);" (assignment_expression "pcVar2 = strchr(pcVar2,0x5f)" identifier = (call_expression "strchr(pcVar2,0x5f)" identifier (argument_list "(pcVar2,0x5f)" ( identifier , number_literal )))) ;) }) while (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)) )) ;) (expression_statement "param_6 = param_1[6];" (assignment_expression "param_6 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) })) (if_statement "if ((param_6 != 0) && (DAT_00448128 != '\0')) {\n                    \n    FUN_001e7950(param_1);\n    return;\n  }" if (parenthesized_expression "((param_6 != 0) && (DAT_00448128 != '\0'))" ( (binary_expression "(param_6 != 0) && (DAT_00448128 != '\0')" (parenthesized_expression "(param_6 != 0)" ( (binary_expression "param_6 != 0" identifier != number_literal) )) && (parenthesized_expression "(DAT_00448128 != '\0')" ( (binary_expression "DAT_00448128 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n                    \n    FUN_001e7950(param_1);\n    return;\n  }" { (expression_statement "FUN_001e7950(param_1);" (call_expression "FUN_001e7950(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " ")) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' character ')) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return ;) })) (return_statement return ;) })))
(function_definition "void FUN_001f3570(long *param_1,char *param_2,undefined4 param_3,undefined1 param_4,char *param_5,\n                 long param_6,long param_7,undefined1 param_8,long param_9,undefined1 param_10)\n\n{\n  size_t sVar1;\n  char *pcVar2;\n  \n  pcVar2 = (char *)0xffffffffffffffff;\n  *param_1 = (long)(param_1 + 2);\n  if (param_2 != (char *)0x0) {\n    sVar1 = strlen(param_2);\n    pcVar2 = param_2 + sVar1;\n  }\n  FUN_001665c0(param_1,param_2,pcVar2);\n  *(undefined4 *)(param_1 + 4) = param_3;\n  *(undefined1 *)((long)param_1 + 0x24) = param_4;\n  if (param_5 == (char *)0x0) {\n    param_5 = "";\n  }\n  param_1[6] = param_6;\n  param_1[7] = param_7;\n  param_1[5] = (long)param_5;\n  *(undefined1 *)(param_1 + 8) = param_8;\n  param_1[9] = param_9;\n  *(undefined1 *)(param_1 + 10) = param_10;\n  pcVar2 = strchr((char *)*param_1,0x5f);\n  if (pcVar2 != (char *)0x0) {\n    do {\n      *pcVar2 = '-';\n      pcVar2 = strchr(pcVar2,0x5f);\n    } while (pcVar2 != (char *)0x0);\n    param_6 = param_1[6];\n  }\n  if ((param_6 != 0) && (DAT_00448128 != '\0')) {\n                    \n    FUN_001e7950(param_1);\n    return;\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_001f3570(long *param_1,char *param_2,undefined4 param_3,undefined1 param_4,char *param_5,\n                 long param_6,long param_7,undefined1 param_8,long param_9,undefined1 param_10)" (identifier "FUN_001f3570") (parameter_list "(long *param_1,char *param_2,undefined4 param_3,undefined1 param_4,char *param_5,\n                 long param_6,long param_7,undefined1 param_8,long param_9,undefined1 param_10)" (( "(") (parameter_declaration "long *param_1" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "undefined1 param_4" (type_identifier "undefined1") (identifier "param_4")) (, ",") (parameter_declaration "char *param_5" (primitive_type "char") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) (, ",") (parameter_declaration "long param_6" (sized_type_specifier "long" (long "long")) (identifier "param_6")) (, ",") (parameter_declaration "long param_7" (sized_type_specifier "long" (long "long")) (identifier "param_7")) (, ",") (parameter_declaration "undefined1 param_8" (type_identifier "undefined1") (identifier "param_8")) (, ",") (parameter_declaration "long param_9" (sized_type_specifier "long" (long "long")) (identifier "param_9")) (, ",") (parameter_declaration "undefined1 param_10" (type_identifier "undefined1") (identifier "param_10")) () ")"))) (compound_statement "{\n  size_t sVar1;\n  char *pcVar2;\n  \n  pcVar2 = (char *)0xffffffffffffffff;\n  *param_1 = (long)(param_1 + 2);\n  if (param_2 != (char *)0x0) {\n    sVar1 = strlen(param_2);\n    pcVar2 = param_2 + sVar1;\n  }\n  FUN_001665c0(param_1,param_2,pcVar2);\n  *(undefined4 *)(param_1 + 4) = param_3;\n  *(undefined1 *)((long)param_1 + 0x24) = param_4;\n  if (param_5 == (char *)0x0) {\n    param_5 = "";\n  }\n  param_1[6] = param_6;\n  param_1[7] = param_7;\n  param_1[5] = (long)param_5;\n  *(undefined1 *)(param_1 + 8) = param_8;\n  param_1[9] = param_9;\n  *(undefined1 *)(param_1 + 10) = param_10;\n  pcVar2 = strchr((char *)*param_1,0x5f);\n  if (pcVar2 != (char *)0x0) {\n    do {\n      *pcVar2 = '-';\n      pcVar2 = strchr(pcVar2,0x5f);\n    } while (pcVar2 != (char *)0x0);\n    param_6 = param_1[6];\n  }\n  if ((param_6 != 0) && (DAT_00448128 != '\0')) {\n                    \n    FUN_001e7950(param_1);\n    return;\n  }\n  return;\n}" ({ "{") (declaration "size_t sVar1;" (primitive_type "size_t") (identifier "sVar1") (; ";")) (declaration "char *pcVar2;" (primitive_type "char") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (expression_statement "pcVar2 = (char *)0xffffffffffffffff;" (assignment_expression "pcVar2 = (char *)0xffffffffffffffff" (identifier "pcVar2") (= "=") (cast_expression "(char *)0xffffffffffffffff" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffffffffffff"))) (; ";")) (expression_statement "*param_1 = (long)(param_1 + 2);" (assignment_expression "*param_1 = (long)(param_1 + 2)" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (cast_expression "(long)(param_1 + 2)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(param_1 + 2)" (( "(") (binary_expression "param_1 + 2" (identifier "param_1") (+ "+") (number_literal "2")) () ")")))) (; ";")) (if_statement "if (param_2 != (char *)0x0) {\n    sVar1 = strlen(param_2);\n    pcVar2 = param_2 + sVar1;\n  }" (if "if") (parenthesized_expression "(param_2 != (char *)0x0)" (( "(") (binary_expression "param_2 != (char *)0x0" (identifier "param_2") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    sVar1 = strlen(param_2);\n    pcVar2 = param_2 + sVar1;\n  }" ({ "{") (expression_statement "sVar1 = strlen(param_2);" (assignment_expression "sVar1 = strlen(param_2)" (identifier "sVar1") (= "=") (call_expression "strlen(param_2)" (identifier "strlen") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "pcVar2 = param_2 + sVar1;" (assignment_expression "pcVar2 = param_2 + sVar1" (identifier "pcVar2") (= "=") (binary_expression "param_2 + sVar1" (identifier "param_2") (+ "+") (identifier "sVar1"))) (; ";")) (} "}"))) (expression_statement "FUN_001665c0(param_1,param_2,pcVar2);" (call_expression "FUN_001665c0(param_1,param_2,pcVar2)" (identifier "FUN_001665c0") (argument_list "(param_1,param_2,pcVar2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "pcVar2") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 4) = param_3;" (assignment_expression "*(undefined4 *)(param_1 + 4) = param_3" (pointer_expression "*(undefined4 *)(param_1 + 4)" (* "*") (cast_expression "(undefined4 *)(param_1 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (expression_statement "*(undefined1 *)((long)param_1 + 0x24) = param_4;" (assignment_expression "*(undefined1 *)((long)param_1 + 0x24) = param_4" (pointer_expression "*(undefined1 *)((long)param_1 + 0x24)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + 0x24)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x24)" (( "(") (binary_expression "(long)param_1 + 0x24" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x24")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (if_statement "if (param_5 == (char *)0x0) {\n    param_5 = "";\n  }" (if "if") (parenthesized_expression "(param_5 == (char *)0x0)" (( "(") (binary_expression "param_5 == (char *)0x0" (identifier "param_5") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    param_5 = "";\n  }" ({ "{") (expression_statement "param_5 = "";" (assignment_expression "param_5 = """ (identifier "param_5") (= "=") (string_literal """" (" """) (" """))) (; ";")) (} "}"))) (expression_statement "param_1[6] = param_6;" (assignment_expression "param_1[6] = param_6" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "param_6")) (; ";")) (expression_statement "param_1[7] = param_7;" (assignment_expression "param_1[7] = param_7" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "param_7")) (; ";")) (expression_statement "param_1[5] = (long)param_5;" (assignment_expression "param_1[5] = (long)param_5" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (= "=") (cast_expression "(long)param_5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_5"))) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 8) = param_8;" (assignment_expression "*(undefined1 *)(param_1 + 8) = param_8" (pointer_expression "*(undefined1 *)(param_1 + 8)" (* "*") (cast_expression "(undefined1 *)(param_1 + 8)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "param_8")) (; ";")) (expression_statement "param_1[9] = param_9;" (assignment_expression "param_1[9] = param_9" (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "param_9")) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 10) = param_10;" (assignment_expression "*(undefined1 *)(param_1 + 10) = param_10" (pointer_expression "*(undefined1 *)(param_1 + 10)" (* "*") (cast_expression "(undefined1 *)(param_1 + 10)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 10)" (( "(") (binary_expression "param_1 + 10" (identifier "param_1") (+ "+") (number_literal "10")) () ")")))) (= "=") (identifier "param_10")) (; ";")) (expression_statement "pcVar2 = strchr((char *)*param_1,0x5f);" (assignment_expression "pcVar2 = strchr((char *)*param_1,0x5f)" (identifier "pcVar2") (= "=") (call_expression "strchr((char *)*param_1,0x5f)" (identifier "strchr") (argument_list "((char *)*param_1,0x5f)" (( "(") (cast_expression "(char *)*param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (, ",") (number_literal "0x5f") () ")")))) (; ";")) (if_statement "if (pcVar2 != (char *)0x0) {\n    do {\n      *pcVar2 = '-';\n      pcVar2 = strchr(pcVar2,0x5f);\n    } while (pcVar2 != (char *)0x0);\n    param_6 = param_1[6];\n  }" (if "if") (parenthesized_expression "(pcVar2 != (char *)0x0)" (( "(") (binary_expression "pcVar2 != (char *)0x0" (identifier "pcVar2") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    do {\n      *pcVar2 = '-';\n      pcVar2 = strchr(pcVar2,0x5f);\n    } while (pcVar2 != (char *)0x0);\n    param_6 = param_1[6];\n  }" ({ "{") (do_statement "do {\n      *pcVar2 = '-';\n      pcVar2 = strchr(pcVar2,0x5f);\n    } while (pcVar2 != (char *)0x0);" (do "do") (compound_statement "{\n      *pcVar2 = '-';\n      pcVar2 = strchr(pcVar2,0x5f);\n    }" ({ "{") (expression_statement "*pcVar2 = '-';" (assignment_expression "*pcVar2 = '-'" (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) (= "=") (char_literal "'-'" (' "'") (character "-") (' "'"))) (; ";")) (expression_statement "pcVar2 = strchr(pcVar2,0x5f);" (assignment_expression "pcVar2 = strchr(pcVar2,0x5f)" (identifier "pcVar2") (= "=") (call_expression "strchr(pcVar2,0x5f)" (identifier "strchr") (argument_list "(pcVar2,0x5f)" (( "(") (identifier "pcVar2") (, ",") (number_literal "0x5f") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pcVar2 != (char *)0x0)" (( "(") (binary_expression "pcVar2 != (char *)0x0" (identifier "pcVar2") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "param_6 = param_1[6];" (assignment_expression "param_6 = param_1[6]" (identifier "param_6") (= "=") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]"))) (; ";")) (} "}"))) (if_statement "if ((param_6 != 0) && (DAT_00448128 != '\0')) {\n                    \n    FUN_001e7950(param_1);\n    return;\n  }" (if "if") (parenthesized_expression "((param_6 != 0) && (DAT_00448128 != '\0'))" (( "(") (binary_expression "(param_6 != 0) && (DAT_00448128 != '\0')" (parenthesized_expression "(param_6 != 0)" (( "(") (binary_expression "param_6 != 0" (identifier "param_6") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(DAT_00448128 != '\0')" (( "(") (binary_expression "DAT_00448128 != '\0'" (identifier "DAT_00448128") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n                    \n    FUN_001e7950(param_1);\n    return;\n  }" ({ "{") (expression_statement "FUN_001e7950(param_1);" (call_expression "FUN_001e7950(param_1)" (identifier "FUN_001e7950") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* DWARF original prototype: void One_option(One_option * this, char * ln, Dashes d, char sn, char *
   dv, char * hs, char * ha, bool oa, Struct_var * r, bool id) */

void __thiscall
gold::options::function_1::function_1
          (function_1 *this,char *var_1,type_1 d,char sn,char *var_6,char *var_9,char *ha,bool oa,
          type_2 *r,bool id)

{
  size_t var_3;
  char *var_8;
  
  var_8 = (char *)0xffffffffffffffff;
  (this->longname)._M_dataplus._M_p = (pointer)&(this->longname).field_2;
  if (var_1 != (char *)0x0) {
    var_3 = var_2(var_1);
    var_8 = var_1 + var_3;
  }
  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
  var_4<var_5*>(&this->longname,var_1,var_8);
  this->dashes = d;
  var_8 = (this->longname)._M_dataplus._M_p;
  this->shortname = sn;
  if (var_6 == (char *)0x0) {
    var_6 = "";
  }
  this->helpstring = var_9;
  this->helparg = ha;
  this->default_value = var_6;
  this->optional_arg = oa;
  this->reader = r;
  this->is_default = id;
  var_8 = var_7(var_8,0x5f);
  if (var_8 != (char *)0x0) {
    do {
      *var_8 = '-';
      var_8 = var_7(var_8,0x5f);
    } while (var_8 != (char *)0x0);
    var_9 = this->helpstring;
  }
  if ((var_9 != (char *)0x0) && (var_10 != false)) {
                    /* try { // try from 001f3663 to 001f3667 has its CatchHandler @ 001f3677 */
    var_11(this);
    return;
  }
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (sized_type_specifier) declarator: (identifier)) (parameter_declaration type: (sized_type_specifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (sized_type_specifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (number_literal))))) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (char_literal (character)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (return_statement))) (return_statement))))

void MASKED(long *param_1,char *param_2,undefined4 param_3,undefined1 param_4,char *param_5,
                 long param_6,long param_7,undefined1 param_8,long param_9,undefined1 param_10)

{
  size_t sVar1;
  char *pcVar2;
  
  pcVar2 = (char *)0xffffffffffffffff;
  *param_1 = (long)(param_1 + 2);
  if (param_2 != (char *)0x0) {
    sVar1 = strlen(param_2);
    pcVar2 = param_2 + sVar1;
  }
  FUN_001665c0(param_1,param_2,pcVar2);
  *(undefined4 *)(param_1 + 4) = param_3;
  *(undefined1 *)((long)param_1 + 0x24) = param_4;
  if (param_5 == (char *)0x0) {
    param_5 = "";
  }
  param_1[6] = param_6;
  param_1[7] = param_7;
  param_1[5] = (long)param_5;
  *(undefined1 *)(param_1 + 8) = param_8;
  param_1[9] = param_9;
  *(undefined1 *)(param_1 + 10) = param_10;
  pcVar2 = strchr((char *)*param_1,0x5f);
  if (pcVar2 != (char *)0x0) {
    do {
      *pcVar2 = '-';
      pcVar2 = strchr(pcVar2,0x5f);
    } while (pcVar2 != (char *)0x0);
    param_6 = param_1[6];
  }
  if ((param_6 != 0) && (DAT_00448128 != '\0')) {
                    /* try { // try from 001f3663 to 001f3667 has its CatchHandler @ 001f3677 */
    FUN_001e7950(param_1);
    return;
  }
  return;
}

