
/* DWARF original name: add_from_incrobj<64, false>
   DWARF original prototype: Sized_symbol<64> * add_from_incrobj<64,_false>(Symbol_table * this,
   Object * obj, char * name, char * ver, Sym<64,_false> * sym) */

Sized_symbol<64> * __thiscall
gold::Symbol_table::add_from_incrobj<64,_false>
          (Symbol_table *this,Object *obj,char *name,char *ver,Sym<64,_false> *sym)

{
  ushort uVar1;
  char *name_00;
  Sized_symbol<64> *pSVar2;
  Key name_key;
  
  uVar1 = sym->p_->st_shndx;
  name_00 = Stringpool_template<char>::add(&this->namepool_,name,true,&name_key);
  pSVar2 = add_from_object<64,_false>
                     (this,obj,name_00,name_key,ver,0,false,sym,(uint)uVar1,uVar1 < 0xff00,
                      (uint)uVar1);
  return pSVar2;
}



void FUN_0022c420(long param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,
                 long *param_5)

{
  ushort uVar1;
  undefined8 uVar2;
  undefined8 local_30;
  
  uVar1 = *(ushort *)(*param_5 + 6);
  uVar2 = FUN_0021bf40(param_1 + 0x68,param_3,1,&local_30);
  FUN_0022ad40(param_1,param_2,uVar2,local_30,param_4,0,0,param_5,uVar1,uVar1 < 0xff00,uVar1);
  return;
}


PUSH R14
MOV R14,RCX
PUSH R13
MOV R13,RSI
MOV RSI,RDX
MOV EDX,0x1
PUSH R12
MOV R12,R8
PUSH RBP
MOV RBP,RDI
LEA RDI,[RDI + 0x68]
PUSH RBX
SUB RSP,0x10
MOV RAX,qword ptr [R8]
LEA RCX,[RSP + 0x8]
MOVZX EBX,word ptr [RAX + 0x6]
CALL 0x0021bf40
SUB RSP,0x8
XOR EDX,EDX
MOV R8,R14
CMP EBX,0xfeff
PUSH RBX
MOV RSI,R13
MOV RDI,RBP
SETBE DL
XOR R9D,R9D
PUSH RDX
MOV RDX,RAX
PUSH RBX
PUSH R12
PUSH 0x0
MOV RCX,qword ptr [RSP + 0x38]
CALL 0x0022ad40
ADD RSP,0x40
POP RBX
POP RBP
POP R12
POP R13
POP R14
RET
(translation_unit "void FUN_0022c420(long param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 long *param_5)\n\n{\n  ushort uVar1;\n  undefined8 uVar2;\n  undefined8 local_30;\n  \n  uVar1 = *(ushort *)(*param_5 + 6);\n  uVar2 = FUN_0021bf40(param_1 + 0x68,param_3,1,&local_30);\n  FUN_0022ad40(param_1,param_2,uVar2,local_30,param_4,0,0,param_5,uVar1,uVar1 < 0xff00,uVar1);\n  return;\n}\n\n" (function_definition "void FUN_0022c420(long param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 long *param_5)\n\n{\n  ushort uVar1;\n  undefined8 uVar2;\n  undefined8 local_30;\n  \n  uVar1 = *(ushort *)(*param_5 + 6);\n  uVar2 = FUN_0021bf40(param_1 + 0x68,param_3,1,&local_30);\n  FUN_0022ad40(param_1,param_2,uVar2,local_30,param_4,0,0,param_5,uVar1,uVar1 < 0xff00,uVar1);\n  return;\n}" primitive_type (function_declarator "FUN_0022c420(long param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 long *param_5)" identifier (parameter_list "(long param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 long *param_5)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "undefined8 param_4" type_identifier identifier) , (parameter_declaration "long *param_5" (sized_type_specifier "long" long) (pointer_declarator "*param_5" * identifier)) ))) (compound_statement "{\n  ushort uVar1;\n  undefined8 uVar2;\n  undefined8 local_30;\n  \n  uVar1 = *(ushort *)(*param_5 + 6);\n  uVar2 = FUN_0021bf40(param_1 + 0x68,param_3,1,&local_30);\n  FUN_0022ad40(param_1,param_2,uVar2,local_30,param_4,0,0,param_5,uVar1,uVar1 < 0xff00,uVar1);\n  return;\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "undefined8 local_30;" type_identifier identifier ;) (expression_statement "uVar1 = *(ushort *)(*param_5 + 6);" (assignment_expression "uVar1 = *(ushort *)(*param_5 + 6)" identifier = (pointer_expression "*(ushort *)(*param_5 + 6)" * (cast_expression "(ushort *)(*param_5 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_5 + 6)" ( (binary_expression "*param_5 + 6" (pointer_expression "*param_5" * identifier) + number_literal) ))))) ;) (expression_statement "uVar2 = FUN_0021bf40(param_1 + 0x68,param_3,1,&local_30);" (assignment_expression "uVar2 = FUN_0021bf40(param_1 + 0x68,param_3,1,&local_30)" identifier = (call_expression "FUN_0021bf40(param_1 + 0x68,param_3,1,&local_30)" identifier (argument_list "(param_1 + 0x68,param_3,1,&local_30)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) , identifier , number_literal , (pointer_expression "&local_30" & identifier) )))) ;) (expression_statement "FUN_0022ad40(param_1,param_2,uVar2,local_30,param_4,0,0,param_5,uVar1,uVar1 < 0xff00,uVar1);" (call_expression "FUN_0022ad40(param_1,param_2,uVar2,local_30,param_4,0,0,param_5,uVar1,uVar1 < 0xff00,uVar1)" identifier (argument_list "(param_1,param_2,uVar2,local_30,param_4,0,0,param_5,uVar1,uVar1 < 0xff00,uVar1)" ( identifier , identifier , identifier , identifier , identifier , number_literal , number_literal , identifier , identifier , (binary_expression "uVar1 < 0xff00" identifier < number_literal) , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* DWARF original name: add_from_incrobj<64, false>\n   DWARF original prototype: Sized_symbol<64> * add_from_incrobj<64,_false>(Symbol_table * this,\n   Object * obj, char * name, char * ver, Sym<64,_false> * sym) */\n\nSized_symbol<64> * __thiscall\ngold::Symbol_table::add_from_incrobj<64,_false>\n          (Symbol_table *this,Object *obj,char *name,char *ver,Sym<64,_false> *sym)\n\n{\n  ushort uVar1;\n  char *name_00;\n  Sized_symbol<64> *pSVar2;\n  Key name_key;\n  \n  uVar1 = sym->p_->st_shndx;\n  name_00 = Stringpool_template<char>::add(&this->namepool_,name,true,&name_key);\n  pSVar2 = add_from_object<64,_false>\n                     (this,obj,name_00,name_key,ver,0,false,sym,(uint)uVar1,uVar1 < 0xff00,\n                      (uint)uVar1);\n  return pSVar2;\n}\n\n" comment (ERROR "Sized_symbol<64> * __thiscall\ngold::Symbol_table::add_from_incrobj<64,_false>\n          (Symbol_table *this,Object *obj,char *name,char *ver,Sym<64,_false> *sym)" (binary_expression "Sized_symbol<64> * __thiscall\ngold::Symbol_table::add_from_incrobj<64,_false>\n          (Symbol_table *this,Object *obj,char *name,char *ver,Sym<64,_false> *sym)" (binary_expression "Sized_symbol<64> * __thiscall\ngold::Symbol_table::add_from_incrobj<64" (binary_expression "Sized_symbol<64> * __thiscall" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "* __thiscall" * identifier)) (ERROR "gold::Symbol_table::add_from_incrobj" identifier : : identifier : : identifier) < number_literal) (ERROR ",_false" , identifier) > (parenthesized_expression "(Symbol_table *this,Object *obj,char *name,char *ver,Sym<64,_false> *sym)" ( (comma_expression "Symbol_table *this,Object *obj,char *name,char *ver,Sym<64,_false> *sym" (binary_expression "Symbol_table *this" identifier * identifier) , (comma_expression "Object *obj,char *name,char *ver,Sym<64,_false> *sym" (binary_expression "Object *obj" identifier * identifier) , (comma_expression "char *name,char *ver,Sym<64,_false> *sym" (binary_expression "char *name" identifier * identifier) , (comma_expression "char *ver,Sym<64,_false> *sym" (binary_expression "char *ver" identifier * identifier) , (comma_expression "Sym<64,_false> *sym" (binary_expression "Sym<64" identifier < number_literal) , (binary_expression "_false> *sym" identifier > (pointer_expression "*sym" * identifier))))))) )))) (compound_statement "{\n  ushort uVar1;\n  char *name_00;\n  Sized_symbol<64> *pSVar2;\n  Key name_key;\n  \n  uVar1 = sym->p_->st_shndx;\n  name_00 = Stringpool_template<char>::add(&this->namepool_,name,true,&name_key);\n  pSVar2 = add_from_object<64,_false>\n                     (this,obj,name_00,name_key,ver,0,false,sym,(uint)uVar1,uVar1 < 0xff00,\n                      (uint)uVar1);\n  return pSVar2;\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "char *name_00;" primitive_type (pointer_declarator "*name_00" * identifier) ;) (expression_statement "Sized_symbol<64> *pSVar2;" (binary_expression "Sized_symbol<64> *pSVar2" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*pSVar2" * identifier)) ;) (declaration "Key name_key;" type_identifier identifier ;) (expression_statement "uVar1 = sym->p_->st_shndx;" (assignment_expression "uVar1 = sym->p_->st_shndx" identifier = (field_expression "sym->p_->st_shndx" (field_expression "sym->p_" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "name_00 = Stringpool_template<char>::add(&this->namepool_,name,true,&name_key);" (assignment_expression "name_00 = Stringpool_template<char>::add(&this->namepool_,name,true,&name_key)" identifier = (binary_expression "Stringpool_template<char>::add(&this->namepool_,name,true,&name_key)" (binary_expression "Stringpool_template<char" identifier < identifier) > (ERROR "::" : :) (call_expression "add(&this->namepool_,name,true,&name_key)" identifier (argument_list "(&this->namepool_,name,true,&name_key)" ( (pointer_expression "&this->namepool_" & (field_expression "this->namepool_" identifier -> field_identifier)) , identifier , true , (pointer_expression "&name_key" & identifier) ))))) ;) (expression_statement "pSVar2 = add_from_object<64,_false>\n                     (this,obj,name_00,name_key,ver,0,false,sym,(uint)uVar1,uVar1 < 0xff00,\n                      (uint)uVar1);" (comma_expression "pSVar2 = add_from_object<64,_false>\n                     (this,obj,name_00,name_key,ver,0,false,sym,(uint)uVar1,uVar1 < 0xff00,\n                      (uint)uVar1)" (assignment_expression "pSVar2 = add_from_object<64" identifier = (binary_expression "add_from_object<64" identifier < number_literal)) , (binary_expression "_false>\n                     (this,obj,name_00,name_key,ver,0,false,sym,(uint)uVar1,uVar1 < 0xff00,\n                      (uint)uVar1)" identifier > (parenthesized_expression "(this,obj,name_00,name_key,ver,0,false,sym,(uint)uVar1,uVar1 < 0xff00,\n                      (uint)uVar1)" ( (comma_expression "this,obj,name_00,name_key,ver,0,false,sym,(uint)uVar1,uVar1 < 0xff00,\n                      (uint)uVar1" identifier , (comma_expression "obj,name_00,name_key,ver,0,false,sym,(uint)uVar1,uVar1 < 0xff00,\n                      (uint)uVar1" identifier , (comma_expression "name_00,name_key,ver,0,false,sym,(uint)uVar1,uVar1 < 0xff00,\n                      (uint)uVar1" identifier , (comma_expression "name_key,ver,0,false,sym,(uint)uVar1,uVar1 < 0xff00,\n                      (uint)uVar1" identifier , (comma_expression "ver,0,false,sym,(uint)uVar1,uVar1 < 0xff00,\n                      (uint)uVar1" identifier , (comma_expression "0,false,sym,(uint)uVar1,uVar1 < 0xff00,\n                      (uint)uVar1" number_literal , (comma_expression "false,sym,(uint)uVar1,uVar1 < 0xff00,\n                      (uint)uVar1" false , (comma_expression "sym,(uint)uVar1,uVar1 < 0xff00,\n                      (uint)uVar1" identifier , (comma_expression "(uint)uVar1,uVar1 < 0xff00,\n                      (uint)uVar1" (cast_expression "(uint)uVar1" ( (type_descriptor "uint" type_identifier) ) identifier) , (comma_expression "uVar1 < 0xff00,\n                      (uint)uVar1" (binary_expression "uVar1 < 0xff00" identifier < number_literal) , (cast_expression "(uint)uVar1" ( (type_descriptor "uint" type_identifier) ) identifier))))))))))) )))) ;) (return_statement "return pSVar2;" return identifier ;) }))
(translation_unit "void FUN_0022c420(long param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 long *param_5)\n\n{\n  ushort uVar1;\n  undefined8 uVar2;\n  undefined8 local_30;\n  \n  uVar1 = *(ushort *)(*param_5 + 6);\n  uVar2 = FUN_0021bf40(param_1 + 0x68,param_3,1,&local_30);\n  FUN_0022ad40(param_1,param_2,uVar2,local_30,param_4,0,0,param_5,uVar1,uVar1 < 0xff00,uVar1);\n  return;\n}\n\n" (function_definition "void FUN_0022c420(long param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 long *param_5)\n\n{\n  ushort uVar1;\n  undefined8 uVar2;\n  undefined8 local_30;\n  \n  uVar1 = *(ushort *)(*param_5 + 6);\n  uVar2 = FUN_0021bf40(param_1 + 0x68,param_3,1,&local_30);\n  FUN_0022ad40(param_1,param_2,uVar2,local_30,param_4,0,0,param_5,uVar1,uVar1 < 0xff00,uVar1);\n  return;\n}" primitive_type (function_declarator "FUN_0022c420(long param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 long *param_5)" identifier (parameter_list "(long param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 long *param_5)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "undefined8 param_4" type_identifier identifier) , (parameter_declaration "long *param_5" (sized_type_specifier "long" long) (pointer_declarator "*param_5" * identifier)) ))) (compound_statement "{\n  ushort uVar1;\n  undefined8 uVar2;\n  undefined8 local_30;\n  \n  uVar1 = *(ushort *)(*param_5 + 6);\n  uVar2 = FUN_0021bf40(param_1 + 0x68,param_3,1,&local_30);\n  FUN_0022ad40(param_1,param_2,uVar2,local_30,param_4,0,0,param_5,uVar1,uVar1 < 0xff00,uVar1);\n  return;\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "undefined8 local_30;" type_identifier identifier ;) (expression_statement "uVar1 = *(ushort *)(*param_5 + 6);" (assignment_expression "uVar1 = *(ushort *)(*param_5 + 6)" identifier = (pointer_expression "*(ushort *)(*param_5 + 6)" * (cast_expression "(ushort *)(*param_5 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_5 + 6)" ( (binary_expression "*param_5 + 6" (pointer_expression "*param_5" * identifier) + number_literal) ))))) ;) (expression_statement "uVar2 = FUN_0021bf40(param_1 + 0x68,param_3,1,&local_30);" (assignment_expression "uVar2 = FUN_0021bf40(param_1 + 0x68,param_3,1,&local_30)" identifier = (call_expression "FUN_0021bf40(param_1 + 0x68,param_3,1,&local_30)" identifier (argument_list "(param_1 + 0x68,param_3,1,&local_30)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) , identifier , number_literal , (pointer_expression "&local_30" & identifier) )))) ;) (expression_statement "FUN_0022ad40(param_1,param_2,uVar2,local_30,param_4,0,0,param_5,uVar1,uVar1 < 0xff00,uVar1);" (call_expression "FUN_0022ad40(param_1,param_2,uVar2,local_30,param_4,0,0,param_5,uVar1,uVar1 < 0xff00,uVar1)" identifier (argument_list "(param_1,param_2,uVar2,local_30,param_4,0,0,param_5,uVar1,uVar1 < 0xff00,uVar1)" ( identifier , identifier , identifier , identifier , identifier , number_literal , number_literal , identifier , identifier , (binary_expression "uVar1 < 0xff00" identifier < number_literal) , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , LIT , (pointer_expression & IDENT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , LIT , LIT , IDENT , IDENT , (binary_expression IDENT < LIT) , IDENT ))) ;) (return_statement return ;) })))
(function_definition "void FUN_0022c420(long param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 long *param_5)\n\n{\n  ushort uVar1;\n  undefined8 uVar2;\n  undefined8 local_30;\n  \n  uVar1 = *(ushort *)(*param_5 + 6);\n  uVar2 = FUN_0021bf40(param_1 + 0x68,param_3,1,&local_30);\n  FUN_0022ad40(param_1,param_2,uVar2,local_30,param_4,0,0,param_5,uVar1,uVar1 < 0xff00,uVar1);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0022c420(long param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 long *param_5)" (identifier "FUN_0022c420") (parameter_list "(long param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 long *param_5)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) (, ",") (parameter_declaration "undefined8 param_3" (type_identifier "undefined8") (identifier "param_3")) (, ",") (parameter_declaration "undefined8 param_4" (type_identifier "undefined8") (identifier "param_4")) (, ",") (parameter_declaration "long *param_5" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) () ")"))) (compound_statement "{\n  ushort uVar1;\n  undefined8 uVar2;\n  undefined8 local_30;\n  \n  uVar1 = *(ushort *)(*param_5 + 6);\n  uVar2 = FUN_0021bf40(param_1 + 0x68,param_3,1,&local_30);\n  FUN_0022ad40(param_1,param_2,uVar2,local_30,param_4,0,0,param_5,uVar1,uVar1 < 0xff00,uVar1);\n  return;\n}" ({ "{") (declaration "ushort uVar1;" (type_identifier "ushort") (identifier "uVar1") (; ";")) (declaration "undefined8 uVar2;" (type_identifier "undefined8") (identifier "uVar2") (; ";")) (declaration "undefined8 local_30;" (type_identifier "undefined8") (identifier "local_30") (; ";")) (expression_statement "uVar1 = *(ushort *)(*param_5 + 6);" (assignment_expression "uVar1 = *(ushort *)(*param_5 + 6)" (identifier "uVar1") (= "=") (pointer_expression "*(ushort *)(*param_5 + 6)" (* "*") (cast_expression "(ushort *)(*param_5 + 6)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_5 + 6)" (( "(") (binary_expression "*param_5 + 6" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (+ "+") (number_literal "6")) () ")"))))) (; ";")) (expression_statement "uVar2 = FUN_0021bf40(param_1 + 0x68,param_3,1,&local_30);" (assignment_expression "uVar2 = FUN_0021bf40(param_1 + 0x68,param_3,1,&local_30)" (identifier "uVar2") (= "=") (call_expression "FUN_0021bf40(param_1 + 0x68,param_3,1,&local_30)" (identifier "FUN_0021bf40") (argument_list "(param_1 + 0x68,param_3,1,&local_30)" (( "(") (binary_expression "param_1 + 0x68" (identifier "param_1") (+ "+") (number_literal "0x68")) (, ",") (identifier "param_3") (, ",") (number_literal "1") (, ",") (pointer_expression "&local_30" (& "&") (identifier "local_30")) () ")")))) (; ";")) (expression_statement "FUN_0022ad40(param_1,param_2,uVar2,local_30,param_4,0,0,param_5,uVar1,uVar1 < 0xff00,uVar1);" (call_expression "FUN_0022ad40(param_1,param_2,uVar2,local_30,param_4,0,0,param_5,uVar1,uVar1 < 0xff00,uVar1)" (identifier "FUN_0022ad40") (argument_list "(param_1,param_2,uVar2,local_30,param_4,0,0,param_5,uVar1,uVar1 < 0xff00,uVar1)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "uVar2") (, ",") (identifier "local_30") (, ",") (identifier "param_4") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (identifier "param_5") (, ",") (identifier "uVar1") (, ",") (binary_expression "uVar1 < 0xff00" (identifier "uVar1") (< "<") (number_literal "0xff00")) (, ",") (identifier "uVar1") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* DWARF original name: add_from_incrobj<64, false>
   DWARF original prototype: Sized_symbol<64> * add_from_incrobj<64,_false>(Symbol_table * this,
   Object * obj, char * name, char * ver, Sym<64,_false> * sym) */

var_1<64> * __thiscall
gold::Symbol_table::add_from_incrobj<64,var_6>
          (Symbol_table *this,Object *obj,var_3 *name,var_3 *ver,Sym<64,var_6> *sym)

{
  type_1 var_7;
  char *name_00;
  var_1<64> *pSVar2;
  type_2 name_key;
  
  var_7 = sym->p_->st_shndx;
  name_00 = var_2<var_3>::var_4(&this->namepool_,name,true,&name_key);
  pSVar2 = var_5<64,var_6>
                     (this,obj,name_00,name_key,ver,0,false,sym,(type_3)var_7,var_7 < 0xff00,
                      (type_3)var_7);
  return pSVar2;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (sized_type_specifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier) (number_literal) (pointer_expression argument: (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (identifier) (number_literal) (number_literal) (identifier) (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier)))) (return_statement))))

void MASKED(long param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,
                 long *param_5)

{
  ushort uVar1;
  undefined8 uVar2;
  undefined8 local_30;
  
  uVar1 = *(ushort *)(*param_5 + 6);
  uVar2 = FUN_0021bf40(param_1 + 0x68,param_3,1,&local_30);
  FUN_0022ad40(param_1,param_2,uVar2,local_30,param_4,0,0,param_5,uVar1,uVar1 < 0xff00,uVar1);
  return;
}

