
void def_import(char *internal_name,char *module,char *dllext,char *name,int ordinal,char *its_name)

{
  size_t sVar1;
  size_t sVar2;
  char *__s;
  int is_dup;
  
  if (dllext == (char *)0x0) {
    dllext = "dll";
  }
  is_dup = 0;
  sVar1 = strlen(module);
  sVar2 = strlen(dllext);
  __s = (char *)xmalloc(sVar1 + 2 + sVar2);
  sprintf(__s,"%s.%s",module,dllext);
  def_file_add_import(def,name,__s,ordinal,internal_name,its_name,&is_dup);
  free(__s);
  return;
}



void FUN_0014b2b0(undefined8 param_1,char *param_2,char *param_3,undefined8 param_4,
                 undefined4 param_5,undefined8 param_6)

{
  size_t sVar1;
  size_t sVar2;
  char *__s;
  undefined4 local_3c [3];
  
  if (param_3 == (char *)0x0) {
    param_3 = "dll";
  }
  local_3c[0] = 0;
  sVar1 = strlen(param_2);
  sVar2 = strlen(param_3);
  __s = (char *)xmalloc(sVar1 + 2 + sVar2);
  sprintf(__s,"%s.%s",param_2,param_3);
  FUN_0014b160(DAT_002b5a98,param_4,__s,param_5,param_1,param_6,local_3c);
  free(__s);
  return;
}


PUSH R15
LEA RAX,[0x2851cf]
MOV R15,RDI
MOV RDI,RSI
PUSH R14
MOV R14D,R8D
PUSH R13
MOV R13,RCX
PUSH R12
MOV R12,RSI
PUSH RBP
PUSH RBX
MOV RBX,RDX
SUB RSP,0x28
TEST RDX,RDX
CMOVZ RBX,RAX
MOV qword ptr [RSP + 0x8],R9
MOV dword ptr [RSP + 0x1c],0x0
CALL 0x0010d330
MOV RDI,RBX
MOV RBP,RAX
CALL 0x0010d330
LEA RDI,[RBP + RAX*0x1 + 0x2]
CALL 0x0010dda0
MOV RCX,RBX
MOV RDX,R12
LEA RSI,[0x29e4d8]
MOV RBP,RAX
MOV RDI,RAX
XOR EAX,EAX
CALL 0x0010dbc0
SUB RSP,0x8
MOV R8,R15
MOV ECX,R14D
LEA RAX,[RSP + 0x24]
MOV RDI,qword ptr [0x002b5a98]
MOV RDX,RBP
MOV RSI,R13
PUSH RAX
MOV R9,qword ptr [RSP + 0x18]
CALL 0x0014b160
ADD RSP,0x38
MOV RDI,RBP
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
JMP 0x0010dd90
(translation_unit "void FUN_0014b2b0(undefined8 param_1,char *param_2,char *param_3,undefined8 param_4,\n                 undefined4 param_5,undefined8 param_6)\n\n{\n  size_t sVar1;\n  size_t sVar2;\n  char *__s;\n  undefined4 local_3c [3];\n  \n  if (param_3 == (char *)0x0) {\n    param_3 = "dll";\n  }\n  local_3c[0] = 0;\n  sVar1 = strlen(param_2);\n  sVar2 = strlen(param_3);\n  __s = (char *)xmalloc(sVar1 + 2 + sVar2);\n  sprintf(__s,"%s.%s",param_2,param_3);\n  FUN_0014b160(DAT_002b5a98,param_4,__s,param_5,param_1,param_6,local_3c);\n  free(__s);\n  return;\n}\n\n" (function_definition "void FUN_0014b2b0(undefined8 param_1,char *param_2,char *param_3,undefined8 param_4,\n                 undefined4 param_5,undefined8 param_6)\n\n{\n  size_t sVar1;\n  size_t sVar2;\n  char *__s;\n  undefined4 local_3c [3];\n  \n  if (param_3 == (char *)0x0) {\n    param_3 = "dll";\n  }\n  local_3c[0] = 0;\n  sVar1 = strlen(param_2);\n  sVar2 = strlen(param_3);\n  __s = (char *)xmalloc(sVar1 + 2 + sVar2);\n  sprintf(__s,"%s.%s",param_2,param_3);\n  FUN_0014b160(DAT_002b5a98,param_4,__s,param_5,param_1,param_6,local_3c);\n  free(__s);\n  return;\n}" primitive_type (function_declarator "FUN_0014b2b0(undefined8 param_1,char *param_2,char *param_3,undefined8 param_4,\n                 undefined4 param_5,undefined8 param_6)" identifier (parameter_list "(undefined8 param_1,char *param_2,char *param_3,undefined8 param_4,\n                 undefined4 param_5,undefined8 param_6)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "undefined8 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "undefined8 param_6" type_identifier identifier) ))) (compound_statement "{\n  size_t sVar1;\n  size_t sVar2;\n  char *__s;\n  undefined4 local_3c [3];\n  \n  if (param_3 == (char *)0x0) {\n    param_3 = "dll";\n  }\n  local_3c[0] = 0;\n  sVar1 = strlen(param_2);\n  sVar2 = strlen(param_3);\n  __s = (char *)xmalloc(sVar1 + 2 + sVar2);\n  sprintf(__s,"%s.%s",param_2,param_3);\n  FUN_0014b160(DAT_002b5a98,param_4,__s,param_5,param_1,param_6,local_3c);\n  free(__s);\n  return;\n}" { (declaration "size_t sVar1;" primitive_type identifier ;) (declaration "size_t sVar2;" primitive_type identifier ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "undefined4 local_3c [3];" type_identifier (array_declarator "local_3c [3]" identifier [ number_literal ]) ;) (if_statement "if (param_3 == (char *)0x0) {\n    param_3 = "dll";\n  }" if (parenthesized_expression "(param_3 == (char *)0x0)" ( (binary_expression "param_3 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    param_3 = "dll";\n  }" { (expression_statement "param_3 = "dll";" (assignment_expression "param_3 = "dll"" identifier = (string_literal ""dll"" " string_content ")) ;) })) (expression_statement "local_3c[0] = 0;" (assignment_expression "local_3c[0] = 0" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = number_literal) ;) (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 "sVar2 = strlen(param_3);" (assignment_expression "sVar2 = strlen(param_3)" identifier = (call_expression "strlen(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) (expression_statement "__s = (char *)xmalloc(sVar1 + 2 + sVar2);" (assignment_expression "__s = (char *)xmalloc(sVar1 + 2 + sVar2)" identifier = (cast_expression "(char *)xmalloc(sVar1 + 2 + sVar2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar1 + 2 + sVar2)" identifier (argument_list "(sVar1 + 2 + sVar2)" ( (binary_expression "sVar1 + 2 + sVar2" (binary_expression "sVar1 + 2" identifier + number_literal) + identifier) ))))) ;) (expression_statement "sprintf(__s,"%s.%s",param_2,param_3);" (call_expression "sprintf(__s,"%s.%s",param_2,param_3)" identifier (argument_list "(__s,"%s.%s",param_2,param_3)" ( identifier , (string_literal ""%s.%s"" " string_content ") , identifier , identifier ))) ;) (expression_statement "FUN_0014b160(DAT_002b5a98,param_4,__s,param_5,param_1,param_6,local_3c);" (call_expression "FUN_0014b160(DAT_002b5a98,param_4,__s,param_5,param_1,param_6,local_3c)" identifier (argument_list "(DAT_002b5a98,param_4,__s,param_5,param_1,param_6,local_3c)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "free(__s);" (call_expression "free(__s)" identifier (argument_list "(__s)" ( identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void def_import(char *internal_name,char *module,char *dllext,char *name,int ordinal,char *its_name)\n\n{\n  size_t sVar1;\n  size_t sVar2;\n  char *__s;\n  int is_dup;\n  \n  if (dllext == (char *)0x0) {\n    dllext = "dll";\n  }\n  is_dup = 0;\n  sVar1 = strlen(module);\n  sVar2 = strlen(dllext);\n  __s = (char *)xmalloc(sVar1 + 2 + sVar2);\n  sprintf(__s,"%s.%s",module,dllext);\n  def_file_add_import(def,name,__s,ordinal,internal_name,its_name,&is_dup);\n  free(__s);\n  return;\n}\n\n" (function_definition "void def_import(char *internal_name,char *module,char *dllext,char *name,int ordinal,char *its_name)\n\n{\n  size_t sVar1;\n  size_t sVar2;\n  char *__s;\n  int is_dup;\n  \n  if (dllext == (char *)0x0) {\n    dllext = "dll";\n  }\n  is_dup = 0;\n  sVar1 = strlen(module);\n  sVar2 = strlen(dllext);\n  __s = (char *)xmalloc(sVar1 + 2 + sVar2);\n  sprintf(__s,"%s.%s",module,dllext);\n  def_file_add_import(def,name,__s,ordinal,internal_name,its_name,&is_dup);\n  free(__s);\n  return;\n}" primitive_type (function_declarator "def_import(char *internal_name,char *module,char *dllext,char *name,int ordinal,char *its_name)" identifier (parameter_list "(char *internal_name,char *module,char *dllext,char *name,int ordinal,char *its_name)" ( (parameter_declaration "char *internal_name" primitive_type (pointer_declarator "*internal_name" * identifier)) , (parameter_declaration "char *module" primitive_type (pointer_declarator "*module" * identifier)) , (parameter_declaration "char *dllext" primitive_type (pointer_declarator "*dllext" * identifier)) , (parameter_declaration "char *name" primitive_type (pointer_declarator "*name" * identifier)) , (parameter_declaration "int ordinal" primitive_type identifier) , (parameter_declaration "char *its_name" primitive_type (pointer_declarator "*its_name" * identifier)) ))) (compound_statement "{\n  size_t sVar1;\n  size_t sVar2;\n  char *__s;\n  int is_dup;\n  \n  if (dllext == (char *)0x0) {\n    dllext = "dll";\n  }\n  is_dup = 0;\n  sVar1 = strlen(module);\n  sVar2 = strlen(dllext);\n  __s = (char *)xmalloc(sVar1 + 2 + sVar2);\n  sprintf(__s,"%s.%s",module,dllext);\n  def_file_add_import(def,name,__s,ordinal,internal_name,its_name,&is_dup);\n  free(__s);\n  return;\n}" { (declaration "size_t sVar1;" primitive_type identifier ;) (declaration "size_t sVar2;" primitive_type identifier ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "int is_dup;" primitive_type identifier ;) (if_statement "if (dllext == (char *)0x0) {\n    dllext = "dll";\n  }" if (parenthesized_expression "(dllext == (char *)0x0)" ( (binary_expression "dllext == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    dllext = "dll";\n  }" { (expression_statement "dllext = "dll";" (assignment_expression "dllext = "dll"" identifier = (string_literal ""dll"" " string_content ")) ;) })) (expression_statement "is_dup = 0;" (assignment_expression "is_dup = 0" identifier = number_literal) ;) (expression_statement "sVar1 = strlen(module);" (assignment_expression "sVar1 = strlen(module)" identifier = (call_expression "strlen(module)" identifier (argument_list "(module)" ( identifier )))) ;) (expression_statement "sVar2 = strlen(dllext);" (assignment_expression "sVar2 = strlen(dllext)" identifier = (call_expression "strlen(dllext)" identifier (argument_list "(dllext)" ( identifier )))) ;) (expression_statement "__s = (char *)xmalloc(sVar1 + 2 + sVar2);" (assignment_expression "__s = (char *)xmalloc(sVar1 + 2 + sVar2)" identifier = (cast_expression "(char *)xmalloc(sVar1 + 2 + sVar2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar1 + 2 + sVar2)" identifier (argument_list "(sVar1 + 2 + sVar2)" ( (binary_expression "sVar1 + 2 + sVar2" (binary_expression "sVar1 + 2" identifier + number_literal) + identifier) ))))) ;) (expression_statement "sprintf(__s,"%s.%s",module,dllext);" (call_expression "sprintf(__s,"%s.%s",module,dllext)" identifier (argument_list "(__s,"%s.%s",module,dllext)" ( identifier , (string_literal ""%s.%s"" " string_content ") , identifier , identifier ))) ;) (expression_statement "def_file_add_import(def,name,__s,ordinal,internal_name,its_name,&is_dup);" (call_expression "def_file_add_import(def,name,__s,ordinal,internal_name,its_name,&is_dup)" identifier (argument_list "(def,name,__s,ordinal,internal_name,its_name,&is_dup)" ( identifier , identifier , identifier , identifier , identifier , identifier , (pointer_expression "&is_dup" & identifier) ))) ;) (expression_statement "free(__s);" (call_expression "free(__s)" identifier (argument_list "(__s)" ( identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0014b2b0(undefined8 param_1,char *param_2,char *param_3,undefined8 param_4,\n                 undefined4 param_5,undefined8 param_6)\n\n{\n  size_t sVar1;\n  size_t sVar2;\n  char *__s;\n  undefined4 local_3c [3];\n  \n  if (param_3 == (char *)0x0) {\n    param_3 = "dll";\n  }\n  local_3c[0] = 0;\n  sVar1 = strlen(param_2);\n  sVar2 = strlen(param_3);\n  __s = (char *)xmalloc(sVar1 + 2 + sVar2);\n  sprintf(__s,"%s.%s",param_2,param_3);\n  FUN_0014b160(DAT_002b5a98,param_4,__s,param_5,param_1,param_6,local_3c);\n  free(__s);\n  return;\n}\n\n" (function_definition "void FUN_0014b2b0(undefined8 param_1,char *param_2,char *param_3,undefined8 param_4,\n                 undefined4 param_5,undefined8 param_6)\n\n{\n  size_t sVar1;\n  size_t sVar2;\n  char *__s;\n  undefined4 local_3c [3];\n  \n  if (param_3 == (char *)0x0) {\n    param_3 = "dll";\n  }\n  local_3c[0] = 0;\n  sVar1 = strlen(param_2);\n  sVar2 = strlen(param_3);\n  __s = (char *)xmalloc(sVar1 + 2 + sVar2);\n  sprintf(__s,"%s.%s",param_2,param_3);\n  FUN_0014b160(DAT_002b5a98,param_4,__s,param_5,param_1,param_6,local_3c);\n  free(__s);\n  return;\n}" primitive_type (function_declarator "FUN_0014b2b0(undefined8 param_1,char *param_2,char *param_3,undefined8 param_4,\n                 undefined4 param_5,undefined8 param_6)" identifier (parameter_list "(undefined8 param_1,char *param_2,char *param_3,undefined8 param_4,\n                 undefined4 param_5,undefined8 param_6)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "undefined8 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "undefined8 param_6" type_identifier identifier) ))) (compound_statement "{\n  size_t sVar1;\n  size_t sVar2;\n  char *__s;\n  undefined4 local_3c [3];\n  \n  if (param_3 == (char *)0x0) {\n    param_3 = "dll";\n  }\n  local_3c[0] = 0;\n  sVar1 = strlen(param_2);\n  sVar2 = strlen(param_3);\n  __s = (char *)xmalloc(sVar1 + 2 + sVar2);\n  sprintf(__s,"%s.%s",param_2,param_3);\n  FUN_0014b160(DAT_002b5a98,param_4,__s,param_5,param_1,param_6,local_3c);\n  free(__s);\n  return;\n}" { (declaration "size_t sVar1;" primitive_type identifier ;) (declaration "size_t sVar2;" primitive_type identifier ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "undefined4 local_3c [3];" type_identifier (array_declarator "local_3c [3]" identifier [ number_literal ]) ;) (if_statement "if (param_3 == (char *)0x0) {\n    param_3 = "dll";\n  }" if (parenthesized_expression "(param_3 == (char *)0x0)" ( (binary_expression "param_3 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    param_3 = "dll";\n  }" { (expression_statement "param_3 = "dll";" (assignment_expression "param_3 = "dll"" identifier = (string_literal ""dll"" " string_content ")) ;) })) (expression_statement "local_3c[0] = 0;" (assignment_expression "local_3c[0] = 0" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = number_literal) ;) (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 "sVar2 = strlen(param_3);" (assignment_expression "sVar2 = strlen(param_3)" identifier = (call_expression "strlen(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) (expression_statement "__s = (char *)xmalloc(sVar1 + 2 + sVar2);" (assignment_expression "__s = (char *)xmalloc(sVar1 + 2 + sVar2)" identifier = (cast_expression "(char *)xmalloc(sVar1 + 2 + sVar2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar1 + 2 + sVar2)" identifier (argument_list "(sVar1 + 2 + sVar2)" ( (binary_expression "sVar1 + 2 + sVar2" (binary_expression "sVar1 + 2" identifier + number_literal) + identifier) ))))) ;) (expression_statement "sprintf(__s,"%s.%s",param_2,param_3);" (call_expression "sprintf(__s,"%s.%s",param_2,param_3)" identifier (argument_list "(__s,"%s.%s",param_2,param_3)" ( identifier , (string_literal ""%s.%s"" " string_content ") , identifier , identifier ))) ;) (expression_statement "FUN_0014b160(DAT_002b5a98,param_4,__s,param_5,param_1,param_6,local_3c);" (call_expression "FUN_0014b160(DAT_002b5a98,param_4,__s,param_5,param_1,param_6,local_3c)" identifier (argument_list "(DAT_002b5a98,param_4,__s,param_5,param_1,param_6,local_3c)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "free(__s);" (call_expression "free(__s)" identifier (argument_list "(__s)" ( identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator 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 = (string_literal " string_content ")) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression (binary_expression IDENT + LIT) + IDENT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return ;) })))
(function_definition "void FUN_0014b2b0(undefined8 param_1,char *param_2,char *param_3,undefined8 param_4,\n                 undefined4 param_5,undefined8 param_6)\n\n{\n  size_t sVar1;\n  size_t sVar2;\n  char *__s;\n  undefined4 local_3c [3];\n  \n  if (param_3 == (char *)0x0) {\n    param_3 = "dll";\n  }\n  local_3c[0] = 0;\n  sVar1 = strlen(param_2);\n  sVar2 = strlen(param_3);\n  __s = (char *)xmalloc(sVar1 + 2 + sVar2);\n  sprintf(__s,"%s.%s",param_2,param_3);\n  FUN_0014b160(DAT_002b5a98,param_4,__s,param_5,param_1,param_6,local_3c);\n  free(__s);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0014b2b0(undefined8 param_1,char *param_2,char *param_3,undefined8 param_4,\n                 undefined4 param_5,undefined8 param_6)" (identifier "FUN_0014b2b0") (parameter_list "(undefined8 param_1,char *param_2,char *param_3,undefined8 param_4,\n                 undefined4 param_5,undefined8 param_6)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "char *param_3" (primitive_type "char") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "undefined8 param_4" (type_identifier "undefined8") (identifier "param_4")) (, ",") (parameter_declaration "undefined4 param_5" (type_identifier "undefined4") (identifier "param_5")) (, ",") (parameter_declaration "undefined8 param_6" (type_identifier "undefined8") (identifier "param_6")) () ")"))) (compound_statement "{\n  size_t sVar1;\n  size_t sVar2;\n  char *__s;\n  undefined4 local_3c [3];\n  \n  if (param_3 == (char *)0x0) {\n    param_3 = "dll";\n  }\n  local_3c[0] = 0;\n  sVar1 = strlen(param_2);\n  sVar2 = strlen(param_3);\n  __s = (char *)xmalloc(sVar1 + 2 + sVar2);\n  sprintf(__s,"%s.%s",param_2,param_3);\n  FUN_0014b160(DAT_002b5a98,param_4,__s,param_5,param_1,param_6,local_3c);\n  free(__s);\n  return;\n}" ({ "{") (declaration "size_t sVar1;" (primitive_type "size_t") (identifier "sVar1") (; ";")) (declaration "size_t sVar2;" (primitive_type "size_t") (identifier "sVar2") (; ";")) (declaration "char *__s;" (primitive_type "char") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "undefined4 local_3c [3];" (type_identifier "undefined4") (array_declarator "local_3c [3]" (identifier "local_3c") ([ "[") (number_literal "3") (] "]")) (; ";")) (if_statement "if (param_3 == (char *)0x0) {\n    param_3 = "dll";\n  }" (if "if") (parenthesized_expression "(param_3 == (char *)0x0)" (( "(") (binary_expression "param_3 == (char *)0x0" (identifier "param_3") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    param_3 = "dll";\n  }" ({ "{") (expression_statement "param_3 = "dll";" (assignment_expression "param_3 = "dll"" (identifier "param_3") (= "=") (string_literal ""dll"" (" """) (string_content "dll") (" """))) (; ";")) (} "}"))) (expression_statement "local_3c[0] = 0;" (assignment_expression "local_3c[0] = 0" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "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 "sVar2 = strlen(param_3);" (assignment_expression "sVar2 = strlen(param_3)" (identifier "sVar2") (= "=") (call_expression "strlen(param_3)" (identifier "strlen") (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (expression_statement "__s = (char *)xmalloc(sVar1 + 2 + sVar2);" (assignment_expression "__s = (char *)xmalloc(sVar1 + 2 + sVar2)" (identifier "__s") (= "=") (cast_expression "(char *)xmalloc(sVar1 + 2 + sVar2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar1 + 2 + sVar2)" (identifier "xmalloc") (argument_list "(sVar1 + 2 + sVar2)" (( "(") (binary_expression "sVar1 + 2 + sVar2" (binary_expression "sVar1 + 2" (identifier "sVar1") (+ "+") (number_literal "2")) (+ "+") (identifier "sVar2")) () ")"))))) (; ";")) (expression_statement "sprintf(__s,"%s.%s",param_2,param_3);" (call_expression "sprintf(__s,"%s.%s",param_2,param_3)" (identifier "sprintf") (argument_list "(__s,"%s.%s",param_2,param_3)" (( "(") (identifier "__s") (, ",") (string_literal ""%s.%s"" (" """) (string_content "%s.%s") (" """)) (, ",") (identifier "param_2") (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "FUN_0014b160(DAT_002b5a98,param_4,__s,param_5,param_1,param_6,local_3c);" (call_expression "FUN_0014b160(DAT_002b5a98,param_4,__s,param_5,param_1,param_6,local_3c)" (identifier "FUN_0014b160") (argument_list "(DAT_002b5a98,param_4,__s,param_5,param_1,param_6,local_3c)" (( "(") (identifier "DAT_002b5a98") (, ",") (identifier "param_4") (, ",") (identifier "__s") (, ",") (identifier "param_5") (, ",") (identifier "param_1") (, ",") (identifier "param_6") (, ",") (identifier "local_3c") () ")"))) (; ";")) (expression_statement "free(__s);" (call_expression "free(__s)" (identifier "free") (argument_list "(__s)" (( "(") (identifier "__s") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(char *internal_name,char *module,char *var_1,char *name,int ordinal,char *its_name)

{
  size_t var_4;
  size_t var_5;
  char *__s;
  int is_dup;
  
  if (var_1 == (char *)0x0) {
    var_1 = "dll";
  }
  is_dup = 0;
  var_4 = var_2(module);
  var_5 = var_2(var_1);
  __s = (char *)var_3(var_4 + 2 + var_5);
  var_6(__s,"%s.%s",module,var_1);
  var_7(def,name,__s,ordinal,internal_name,its_name,&is_dup);
  var_8(__s);
  return;
}


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

void MASKED(undefined8 param_1,char *param_2,char *param_3,undefined8 param_4,
                 undefined4 param_5,undefined8 param_6)

{
  size_t sVar1;
  size_t sVar2;
  char *__s;
  undefined4 local_3c [3];
  
  if (param_3 == (char *)0x0) {
    param_3 = "dll";
  }
  local_3c[0] = 0;
  sVar1 = strlen(param_2);
  sVar2 = strlen(param_3);
  __s = (char *)xmalloc(sVar1 + 2 + sVar2);
  sprintf(__s,"%s.%s",param_2,param_3);
  FUN_0014b160(DAT_002b5a98,param_4,__s,param_5,param_1,param_6,local_3c);
  free(__s);
  return;
}

