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

debug_name * __regparm3
debug_add_to_current_namespace
          (debug_handle *info,char *name,debug_object_kind kind,debug_object_linkage linkage)

{
  debug_handle *info_00;
  debug_name *pdVar1;
  undefined4 uVar2;
  debug_object_linkage in_stack_ffffffe8;
  
  if ((info->current_unit != (debug_unit *)0x0) && (info->current_file != (debug_file *)0x0)) {
    info_00 = (debug_handle *)&info->current_block->locals;
    if (info->current_block == (debug_block *)0x0) {
      info_00 = (debug_handle *)&info->current_file->globals;
    }
    pdVar1 = debug_add_to_namespace
                       (info_00,(debug_namespace **)name,(char *)kind,DEBUG_OBJECT_FUNCTION,
                        in_stack_ffffffe8);
    return pdVar1;
  }
  uVar2 = dcgettext(0,"debug_add_to_current_namespace: no current file",5);
  fprintf(*(FILE **)PTR_stderr_0003ffa8,"%s\n",uVar2);
  return (debug_name *)0x0;
}



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

undefined4 __regparm3 FUN_0001ec90(int param_1)

{
  undefined4 uVar1;
  
  if ((*(int *)(param_1 + 4) != 0) && (*(int *)(param_1 + 8) != 0)) {
    uVar1 = FUN_0001d390(3);
    return uVar1;
  }
  uVar1 = dcgettext(0,"debug_add_to_current_namespace: no current file",5);
  fprintf(*(FILE **)PTR_stderr_0003ffa8,"%s\n",uVar1);
  return 0;
}


PUSH ESI
PUSH EBX
CALL 0x000166c0
ADD EBX,0x21369
SUB ESP,0x4
MOV ESI,dword ptr [EAX + 0x4]
TEST ESI,ESI
JZ 0x0001ecd0
MOV ESI,dword ptr [EAX + 0x8]
TEST ESI,ESI
JZ 0x0001ecd0
MOV EBX,dword ptr [EAX + 0x10]
ADD ESI,0x8
LEA EAX,[EBX + 0x1c]
TEST EBX,EBX
CMOVZ EAX,ESI
SUB ESP,0xc
PUSH 0x3
CALL 0x0001d390
ADD ESP,0x10
ADD ESP,0x4
POP EBX
POP ESI
RET
SUB ESP,0x4
LEA EAX,[EBX + 0xffff3958]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013200
ADD ESP,0xc
PUSH EAX
LEA EAX,[EBX + 0xffff532f]
PUSH EAX
MOV EAX,dword ptr [EBX + 0xffffffa8]
PUSH dword ptr [EAX]
CALL 0x00013520
ADD ESP,0x10
XOR EAX,EAX
ADD ESP,0x4
POP EBX
POP ESI
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 __regparm3 FUN_0001ec90(int param_1)\n\n{\n  undefined4 uVar1;\n  \n  if ((*(int *)(param_1 + 4) != 0) && (*(int *)(param_1 + 8) != 0)) {\n    uVar1 = FUN_0001d390(3);\n    return uVar1;\n  }\n  uVar1 = dcgettext(0,"debug_add_to_current_namespace: no current file",5);\n  fprintf(*(FILE **)PTR_stderr_0003ffa8,"%s\n",uVar1);\n  return 0;\n}\n\n" comment (function_definition "undefined4 __regparm3 FUN_0001ec90(int param_1)\n\n{\n  undefined4 uVar1;\n  \n  if ((*(int *)(param_1 + 4) != 0) && (*(int *)(param_1 + 8) != 0)) {\n    uVar1 = FUN_0001d390(3);\n    return uVar1;\n  }\n  uVar1 = dcgettext(0,"debug_add_to_current_namespace: no current file",5);\n  fprintf(*(FILE **)PTR_stderr_0003ffa8,"%s\n",uVar1);\n  return 0;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_0001ec90(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  \n  if ((*(int *)(param_1 + 4) != 0) && (*(int *)(param_1 + 8) != 0)) {\n    uVar1 = FUN_0001d390(3);\n    return uVar1;\n  }\n  uVar1 = dcgettext(0,"debug_add_to_current_namespace: no current file",5);\n  fprintf(*(FILE **)PTR_stderr_0003ffa8,"%s\n",uVar1);\n  return 0;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (if_statement "if ((*(int *)(param_1 + 4) != 0) && (*(int *)(param_1 + 8) != 0)) {\n    uVar1 = FUN_0001d390(3);\n    return uVar1;\n  }" if (parenthesized_expression "((*(int *)(param_1 + 4) != 0) && (*(int *)(param_1 + 8) != 0))" ( (binary_expression "(*(int *)(param_1 + 4) != 0) && (*(int *)(param_1 + 8) != 0)" (parenthesized_expression "(*(int *)(param_1 + 4) != 0)" ( (binary_expression "*(int *)(param_1 + 4) != 0" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(*(int *)(param_1 + 8) != 0)" ( (binary_expression "*(int *)(param_1 + 8) != 0" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n    uVar1 = FUN_0001d390(3);\n    return uVar1;\n  }" { (expression_statement "uVar1 = FUN_0001d390(3);" (assignment_expression "uVar1 = FUN_0001d390(3)" identifier = (call_expression "FUN_0001d390(3)" identifier (argument_list "(3)" ( number_literal )))) ;) (return_statement "return uVar1;" return identifier ;) })) (expression_statement "uVar1 = dcgettext(0,"debug_add_to_current_namespace: no current file",5);" (assignment_expression "uVar1 = dcgettext(0,"debug_add_to_current_namespace: no current file",5)" identifier = (call_expression "dcgettext(0,"debug_add_to_current_namespace: no current file",5)" identifier (argument_list "(0,"debug_add_to_current_namespace: no current file",5)" ( number_literal , (string_literal ""debug_add_to_current_namespace: no current file"" " string_content ") , number_literal )))) ;) (expression_statement "fprintf(*(FILE **)PTR_stderr_0003ffa8,"%s\n",uVar1);" (call_expression "fprintf(*(FILE **)PTR_stderr_0003ffa8,"%s\n",uVar1)" identifier (argument_list "(*(FILE **)PTR_stderr_0003ffa8,"%s\n",uVar1)" ( (pointer_expression "*(FILE **)PTR_stderr_0003ffa8" * (cast_expression "(FILE **)PTR_stderr_0003ffa8" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) , (string_literal ""%s\n"" " string_content escape_sequence ") , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\ndebug_name * __regparm3\ndebug_add_to_current_namespace\n          (debug_handle *info,char *name,debug_object_kind kind,debug_object_linkage linkage)\n\n{\n  debug_handle *info_00;\n  debug_name *pdVar1;\n  undefined4 uVar2;\n  debug_object_linkage in_stack_ffffffe8;\n  \n  if ((info->current_unit != (debug_unit *)0x0) && (info->current_file != (debug_file *)0x0)) {\n    info_00 = (debug_handle *)&info->current_block->locals;\n    if (info->current_block == (debug_block *)0x0) {\n      info_00 = (debug_handle *)&info->current_file->globals;\n    }\n    pdVar1 = debug_add_to_namespace\n                       (info_00,(debug_namespace **)name,(char *)kind,DEBUG_OBJECT_FUNCTION,\n                        in_stack_ffffffe8);\n    return pdVar1;\n  }\n  uVar2 = dcgettext(0,"debug_add_to_current_namespace: no current file",5);\n  fprintf(*(FILE **)PTR_stderr_0003ffa8,"%s\n",uVar2);\n  return (debug_name *)0x0;\n}\n\n" comment (ERROR "debug_name * __regparm3\ndebug_add_to_current_namespace\n          (debug_handle *info,char *name,debug_object_kind kind,debug_object_linkage linkage)" (binary_expression "debug_name * __regparm3\ndebug_add_to_current_namespace\n          (debug_handle *info,char *name,debug_object_kind kind,debug_object_linkage linkage)" identifier * (ERROR "__regparm3" identifier) (call_expression "debug_add_to_current_namespace\n          (debug_handle *info,char *name,debug_object_kind kind,debug_object_linkage linkage)" identifier (argument_list "(debug_handle *info,char *name,debug_object_kind kind,debug_object_linkage linkage)" ( (binary_expression "debug_handle *info" identifier * identifier) , (binary_expression "char *name" identifier * identifier) , identifier (ERROR "kind" identifier) , identifier (ERROR "linkage" identifier) ))))) (compound_statement "{\n  debug_handle *info_00;\n  debug_name *pdVar1;\n  undefined4 uVar2;\n  debug_object_linkage in_stack_ffffffe8;\n  \n  if ((info->current_unit != (debug_unit *)0x0) && (info->current_file != (debug_file *)0x0)) {\n    info_00 = (debug_handle *)&info->current_block->locals;\n    if (info->current_block == (debug_block *)0x0) {\n      info_00 = (debug_handle *)&info->current_file->globals;\n    }\n    pdVar1 = debug_add_to_namespace\n                       (info_00,(debug_namespace **)name,(char *)kind,DEBUG_OBJECT_FUNCTION,\n                        in_stack_ffffffe8);\n    return pdVar1;\n  }\n  uVar2 = dcgettext(0,"debug_add_to_current_namespace: no current file",5);\n  fprintf(*(FILE **)PTR_stderr_0003ffa8,"%s\n",uVar2);\n  return (debug_name *)0x0;\n}" { (declaration "debug_handle *info_00;" type_identifier (pointer_declarator "*info_00" * identifier) ;) (declaration "debug_name *pdVar1;" type_identifier (pointer_declarator "*pdVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "debug_object_linkage in_stack_ffffffe8;" type_identifier identifier ;) (if_statement "if ((info->current_unit != (debug_unit *)0x0) && (info->current_file != (debug_file *)0x0)) {\n    info_00 = (debug_handle *)&info->current_block->locals;\n    if (info->current_block == (debug_block *)0x0) {\n      info_00 = (debug_handle *)&info->current_file->globals;\n    }\n    pdVar1 = debug_add_to_namespace\n                       (info_00,(debug_namespace **)name,(char *)kind,DEBUG_OBJECT_FUNCTION,\n                        in_stack_ffffffe8);\n    return pdVar1;\n  }" if (parenthesized_expression "((info->current_unit != (debug_unit *)0x0) && (info->current_file != (debug_file *)0x0))" ( (binary_expression "(info->current_unit != (debug_unit *)0x0) && (info->current_file != (debug_file *)0x0)" (parenthesized_expression "(info->current_unit != (debug_unit *)0x0)" ( (binary_expression "info->current_unit != (debug_unit *)0x0" (field_expression "info->current_unit" identifier -> field_identifier) != (cast_expression "(debug_unit *)0x0" ( (type_descriptor "debug_unit *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(info->current_file != (debug_file *)0x0)" ( (binary_expression "info->current_file != (debug_file *)0x0" (field_expression "info->current_file" identifier -> field_identifier) != (cast_expression "(debug_file *)0x0" ( (type_descriptor "debug_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    info_00 = (debug_handle *)&info->current_block->locals;\n    if (info->current_block == (debug_block *)0x0) {\n      info_00 = (debug_handle *)&info->current_file->globals;\n    }\n    pdVar1 = debug_add_to_namespace\n                       (info_00,(debug_namespace **)name,(char *)kind,DEBUG_OBJECT_FUNCTION,\n                        in_stack_ffffffe8);\n    return pdVar1;\n  }" { (expression_statement "info_00 = (debug_handle *)&info->current_block->locals;" (assignment_expression "info_00 = (debug_handle *)&info->current_block->locals" identifier = (cast_expression "(debug_handle *)&info->current_block->locals" ( (type_descriptor "debug_handle *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&info->current_block->locals" & (field_expression "info->current_block->locals" (field_expression "info->current_block" identifier -> field_identifier) -> field_identifier)))) ;) (if_statement "if (info->current_block == (debug_block *)0x0) {\n      info_00 = (debug_handle *)&info->current_file->globals;\n    }" if (parenthesized_expression "(info->current_block == (debug_block *)0x0)" ( (binary_expression "info->current_block == (debug_block *)0x0" (field_expression "info->current_block" identifier -> field_identifier) == (cast_expression "(debug_block *)0x0" ( (type_descriptor "debug_block *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      info_00 = (debug_handle *)&info->current_file->globals;\n    }" { (expression_statement "info_00 = (debug_handle *)&info->current_file->globals;" (assignment_expression "info_00 = (debug_handle *)&info->current_file->globals" identifier = (cast_expression "(debug_handle *)&info->current_file->globals" ( (type_descriptor "debug_handle *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&info->current_file->globals" & (field_expression "info->current_file->globals" (field_expression "info->current_file" identifier -> field_identifier) -> field_identifier)))) ;) })) (expression_statement "pdVar1 = debug_add_to_namespace\n                       (info_00,(debug_namespace **)name,(char *)kind,DEBUG_OBJECT_FUNCTION,\n                        in_stack_ffffffe8);" (assignment_expression "pdVar1 = debug_add_to_namespace\n                       (info_00,(debug_namespace **)name,(char *)kind,DEBUG_OBJECT_FUNCTION,\n                        in_stack_ffffffe8)" identifier = (call_expression "debug_add_to_namespace\n                       (info_00,(debug_namespace **)name,(char *)kind,DEBUG_OBJECT_FUNCTION,\n                        in_stack_ffffffe8)" identifier (argument_list "(info_00,(debug_namespace **)name,(char *)kind,DEBUG_OBJECT_FUNCTION,\n                        in_stack_ffffffe8)" ( identifier , (cast_expression "(debug_namespace **)name" ( (type_descriptor "debug_namespace **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) , (cast_expression "(char *)kind" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier )))) ;) (return_statement "return pdVar1;" return identifier ;) })) (expression_statement "uVar2 = dcgettext(0,"debug_add_to_current_namespace: no current file",5);" (assignment_expression "uVar2 = dcgettext(0,"debug_add_to_current_namespace: no current file",5)" identifier = (call_expression "dcgettext(0,"debug_add_to_current_namespace: no current file",5)" identifier (argument_list "(0,"debug_add_to_current_namespace: no current file",5)" ( number_literal , (string_literal ""debug_add_to_current_namespace: no current file"" " string_content ") , number_literal )))) ;) (expression_statement "fprintf(*(FILE **)PTR_stderr_0003ffa8,"%s\n",uVar2);" (call_expression "fprintf(*(FILE **)PTR_stderr_0003ffa8,"%s\n",uVar2)" identifier (argument_list "(*(FILE **)PTR_stderr_0003ffa8,"%s\n",uVar2)" ( (pointer_expression "*(FILE **)PTR_stderr_0003ffa8" * (cast_expression "(FILE **)PTR_stderr_0003ffa8" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) , (string_literal ""%s\n"" " string_content escape_sequence ") , identifier ))) ;) (return_statement "return (debug_name *)0x0;" return (cast_expression "(debug_name *)0x0" ( (type_descriptor "debug_name *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) }))
(translation_unit "undefined4 __regparm3 FUN_0001ec90(int param_1)\n\n{\n  undefined4 uVar1;\n  \n  if ((*(int *)(param_1 + 4) != 0) && (*(int *)(param_1 + 8) != 0)) {\n    uVar1 = FUN_0001d390(3);\n    return uVar1;\n  }\n  uVar1 = dcgettext(0,"debug_add_to_current_namespace: no current file",5);\n  fprintf(*(FILE **)PTR_stderr_0003ffa8,"%s\n",uVar1);\n  return 0;\n}\n\n" (function_definition "undefined4 __regparm3 FUN_0001ec90(int param_1)\n\n{\n  undefined4 uVar1;\n  \n  if ((*(int *)(param_1 + 4) != 0) && (*(int *)(param_1 + 8) != 0)) {\n    uVar1 = FUN_0001d390(3);\n    return uVar1;\n  }\n  uVar1 = dcgettext(0,"debug_add_to_current_namespace: no current file",5);\n  fprintf(*(FILE **)PTR_stderr_0003ffa8,"%s\n",uVar1);\n  return 0;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_0001ec90(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  \n  if ((*(int *)(param_1 + 4) != 0) && (*(int *)(param_1 + 8) != 0)) {\n    uVar1 = FUN_0001d390(3);\n    return uVar1;\n  }\n  uVar1 = dcgettext(0,"debug_add_to_current_namespace: no current file",5);\n  fprintf(*(FILE **)PTR_stderr_0003ffa8,"%s\n",uVar1);\n  return 0;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (if_statement "if ((*(int *)(param_1 + 4) != 0) && (*(int *)(param_1 + 8) != 0)) {\n    uVar1 = FUN_0001d390(3);\n    return uVar1;\n  }" if (parenthesized_expression "((*(int *)(param_1 + 4) != 0) && (*(int *)(param_1 + 8) != 0))" ( (binary_expression "(*(int *)(param_1 + 4) != 0) && (*(int *)(param_1 + 8) != 0)" (parenthesized_expression "(*(int *)(param_1 + 4) != 0)" ( (binary_expression "*(int *)(param_1 + 4) != 0" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(*(int *)(param_1 + 8) != 0)" ( (binary_expression "*(int *)(param_1 + 8) != 0" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n    uVar1 = FUN_0001d390(3);\n    return uVar1;\n  }" { (expression_statement "uVar1 = FUN_0001d390(3);" (assignment_expression "uVar1 = FUN_0001d390(3)" identifier = (call_expression "FUN_0001d390(3)" identifier (argument_list "(3)" ( number_literal )))) ;) (return_statement "return uVar1;" return identifier ;) })) (expression_statement "uVar1 = dcgettext(0,"debug_add_to_current_namespace: no current file",5);" (assignment_expression "uVar1 = dcgettext(0,"debug_add_to_current_namespace: no current file",5)" identifier = (call_expression "dcgettext(0,"debug_add_to_current_namespace: no current file",5)" identifier (argument_list "(0,"debug_add_to_current_namespace: no current file",5)" ( number_literal , (string_literal ""debug_add_to_current_namespace: no current file"" " string_content ") , number_literal )))) ;) (expression_statement "fprintf(*(FILE **)PTR_stderr_0003ffa8,"%s\n",uVar1);" (call_expression "fprintf(*(FILE **)PTR_stderr_0003ffa8,"%s\n",uVar1)" identifier (argument_list "(*(FILE **)PTR_stderr_0003ffa8,"%s\n",uVar1)" ( (pointer_expression "*(FILE **)PTR_stderr_0003ffa8" * (cast_expression "(FILE **)PTR_stderr_0003ffa8" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) , (string_literal ""%s\n"" " string_content escape_sequence ") , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) , (string_literal " string_content escape_sequence ") , IDENT ))) ;) (return_statement return LIT ;) })))
(function_definition "undefined4 __regparm3 FUN_0001ec90(int param_1)\n\n{\n  undefined4 uVar1;\n  \n  if ((*(int *)(param_1 + 4) != 0) && (*(int *)(param_1 + 8) != 0)) {\n    uVar1 = FUN_0001d390(3);\n    return uVar1;\n  }\n  uVar1 = dcgettext(0,"debug_add_to_current_namespace: no current file",5);\n  fprintf(*(FILE **)PTR_stderr_0003ffa8,"%s\n",uVar1);\n  return 0;\n}" (type_identifier "undefined4") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_0001ec90(int param_1)" (identifier "FUN_0001ec90") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  undefined4 uVar1;\n  \n  if ((*(int *)(param_1 + 4) != 0) && (*(int *)(param_1 + 8) != 0)) {\n    uVar1 = FUN_0001d390(3);\n    return uVar1;\n  }\n  uVar1 = dcgettext(0,"debug_add_to_current_namespace: no current file",5);\n  fprintf(*(FILE **)PTR_stderr_0003ffa8,"%s\n",uVar1);\n  return 0;\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (if_statement "if ((*(int *)(param_1 + 4) != 0) && (*(int *)(param_1 + 8) != 0)) {\n    uVar1 = FUN_0001d390(3);\n    return uVar1;\n  }" (if "if") (parenthesized_expression "((*(int *)(param_1 + 4) != 0) && (*(int *)(param_1 + 8) != 0))" (( "(") (binary_expression "(*(int *)(param_1 + 4) != 0) && (*(int *)(param_1 + 8) != 0)" (parenthesized_expression "(*(int *)(param_1 + 4) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 4) != 0" (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(param_1 + 8) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 8) != 0" (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    uVar1 = FUN_0001d390(3);\n    return uVar1;\n  }" ({ "{") (expression_statement "uVar1 = FUN_0001d390(3);" (assignment_expression "uVar1 = FUN_0001d390(3)" (identifier "uVar1") (= "=") (call_expression "FUN_0001d390(3)" (identifier "FUN_0001d390") (argument_list "(3)" (( "(") (number_literal "3") () ")")))) (; ";")) (return_statement "return uVar1;" (return "return") (identifier "uVar1") (; ";")) (} "}"))) (expression_statement "uVar1 = dcgettext(0,"debug_add_to_current_namespace: no current file",5);" (assignment_expression "uVar1 = dcgettext(0,"debug_add_to_current_namespace: no current file",5)" (identifier "uVar1") (= "=") (call_expression "dcgettext(0,"debug_add_to_current_namespace: no current file",5)" (identifier "dcgettext") (argument_list "(0,"debug_add_to_current_namespace: no current file",5)" (( "(") (number_literal "0") (, ",") (string_literal ""debug_add_to_current_namespace: no current file"" (" """) (string_content "debug_add_to_current_namespace: no current file") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "fprintf(*(FILE **)PTR_stderr_0003ffa8,"%s\n",uVar1);" (call_expression "fprintf(*(FILE **)PTR_stderr_0003ffa8,"%s\n",uVar1)" (identifier "fprintf") (argument_list "(*(FILE **)PTR_stderr_0003ffa8,"%s\n",uVar1)" (( "(") (pointer_expression "*(FILE **)PTR_stderr_0003ffa8" (* "*") (cast_expression "(FILE **)PTR_stderr_0003ffa8" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_stderr_0003ffa8"))) (, ",") (string_literal ""%s\n"" (" """) (string_content "%s") (escape_sequence "\n") (" """)) (, ",") (identifier "uVar1") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))

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

type_2 * __regparm3
debug_add_to_current_namespace
          (type_1 *info,char *name,debug_object_kind kind,type_4 linkage)

{
  type_1 *info_00;
  type_2 *pdVar1;
  type_3 uVar2;
  type_4 in_stack_ffffffe8;
  
  if ((info->current_unit != (type_5 *)0x0) && (info->current_file != (type_6 *)0x0)) {
    info_00 = (type_1 *)&info->current_block->locals;
    if (info->current_block == (type_7 *)0x0) {
      info_00 = (type_1 *)&info->current_file->globals;
    }
    pdVar1 = var_1
                       (info_00,(type_8 **)name,(char *)kind,DEBUG_OBJECT_FUNCTION,
                        in_stack_ffffffe8);
    return pdVar1;
  }
  uVar2 = var_2(0,"debug_add_to_current_namespace: no current file",5);
  var_3(*(type_9 **)PTR_stderr_0003ffa8,"%s\n",uVar2);
  return (type_2 *)0x0;
}


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

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

undefined4 __regparm3 MASKED(int param_1)

{
  undefined4 uVar1;
  
  if ((*(int *)(param_1 + 4) != 0) && (*(int *)(param_1 + 8) != 0)) {
    uVar1 = FUN_0001d390(3);
    return uVar1;
  }
  uVar1 = dcgettext(0,"debug_add_to_current_namespace: no current file",5);
  fprintf(*(FILE **)PTR_stderr_0003ffa8,"%s\n",uVar1);
  return 0;
}

