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

void gold::gold_nomem(void)

{
  char *__buf;
  size_t __n;
  ssize_t sVar1;
  
  __buf = program_name;
  __n = strlen(program_name);
  sVar1 = ::write(2,__buf,__n);
  if (-1 < sVar1) {
    ::write(2,": out of memory\n",0x10);
  }
                    /* WARNING: Subroutine does not return */
  gold_exit(GOLD_ERR);
}



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

void FUN_0008b5d0(void)

{
  char *__buf;
  size_t __n;
  ssize_t sVar1;
  
  __buf = DAT_0033f5a0;
  __n = strlen(DAT_0033f5a0);
  sVar1 = write(2,__buf,__n);
  if (-1 < sVar1) {
    write(2,": out of memory\n",0x10);
  }
                    /* WARNING: Subroutine does not return */
  FUN_0008b550(1);
}


PUSH ESI
PUSH EBX
CALL 0x00035680
ADD EBX,0x2b3a29
SUB ESP,0x10
MOV ESI,dword ptr [EBX + 0x5a0]
PUSH ESI
CALL 0x000285f0
ADD ESP,0xc
PUSH EAX
PUSH ESI
PUSH 0x2
CALL 0x000282a0
ADD ESP,0x10
TEST EAX,EAX
JS 0x0008b613
PUSH EAX
LEA EAX,[EBX + 0xfff13fd3]
PUSH 0x10
PUSH EAX
PUSH 0x2
CALL 0x000282a0
ADD ESP,0x10
SUB ESP,0xc
PUSH 0x1
CALL 0x0008b550
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_0008b5d0(void)\n\n{\n  char *__buf;\n  size_t __n;\n  ssize_t sVar1;\n  \n  __buf = DAT_0033f5a0;\n  __n = strlen(DAT_0033f5a0);\n  sVar1 = write(2,__buf,__n);\n  if (-1 < sVar1) {\n    write(2,": out of memory\n",0x10);\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0008b550(1);\n}\n\n" comment (function_definition "void FUN_0008b5d0(void)\n\n{\n  char *__buf;\n  size_t __n;\n  ssize_t sVar1;\n  \n  __buf = DAT_0033f5a0;\n  __n = strlen(DAT_0033f5a0);\n  sVar1 = write(2,__buf,__n);\n  if (-1 < sVar1) {\n    write(2,": out of memory\n",0x10);\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0008b550(1);\n}" primitive_type (function_declarator "FUN_0008b5d0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  char *__buf;\n  size_t __n;\n  ssize_t sVar1;\n  \n  __buf = DAT_0033f5a0;\n  __n = strlen(DAT_0033f5a0);\n  sVar1 = write(2,__buf,__n);\n  if (-1 < sVar1) {\n    write(2,": out of memory\n",0x10);\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0008b550(1);\n}" { (declaration "char *__buf;" primitive_type (pointer_declarator "*__buf" * identifier) ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "ssize_t sVar1;" primitive_type identifier ;) (expression_statement "__buf = DAT_0033f5a0;" (assignment_expression "__buf = DAT_0033f5a0" identifier = identifier) ;) (expression_statement "__n = strlen(DAT_0033f5a0);" (assignment_expression "__n = strlen(DAT_0033f5a0)" identifier = (call_expression "strlen(DAT_0033f5a0)" identifier (argument_list "(DAT_0033f5a0)" ( identifier )))) ;) (expression_statement "sVar1 = write(2,__buf,__n);" (assignment_expression "sVar1 = write(2,__buf,__n)" identifier = (call_expression "write(2,__buf,__n)" identifier (argument_list "(2,__buf,__n)" ( number_literal , identifier , identifier )))) ;) (if_statement "if (-1 < sVar1) {\n    write(2,": out of memory\n",0x10);\n  }" if (parenthesized_expression "(-1 < sVar1)" ( (binary_expression "-1 < sVar1" number_literal < identifier) )) (compound_statement "{\n    write(2,": out of memory\n",0x10);\n  }" { (expression_statement "write(2,": out of memory\n",0x10);" (call_expression "write(2,": out of memory\n",0x10)" identifier (argument_list "(2,": out of memory\n",0x10)" ( number_literal , (string_literal "": out of memory\n"" " string_content escape_sequence ") , number_literal ))) ;) })) comment (expression_statement "FUN_0008b550(1);" (call_expression "FUN_0008b550(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid gold::gold_nomem(void)\n\n{\n  char *__buf;\n  size_t __n;\n  ssize_t sVar1;\n  \n  __buf = program_name;\n  __n = strlen(program_name);\n  sVar1 = ::write(2,__buf,__n);\n  if (-1 < sVar1) {\n    ::write(2,": out of memory\n",0x10);\n  }\n                    /* WARNING: Subroutine does not return */\n  gold_exit(GOLD_ERR);\n}\n\n" comment (function_definition "void gold::gold_nomem(void)\n\n{\n  char *__buf;\n  size_t __n;\n  ssize_t sVar1;\n  \n  __buf = program_name;\n  __n = strlen(program_name);\n  sVar1 = ::write(2,__buf,__n);\n  if (-1 < sVar1) {\n    ::write(2,": out of memory\n",0x10);\n  }\n                    /* WARNING: Subroutine does not return */\n  gold_exit(GOLD_ERR);\n}" primitive_type (ERROR "gold::" identifier : :) (function_declarator "gold_nomem(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  char *__buf;\n  size_t __n;\n  ssize_t sVar1;\n  \n  __buf = program_name;\n  __n = strlen(program_name);\n  sVar1 = ::write(2,__buf,__n);\n  if (-1 < sVar1) {\n    ::write(2,": out of memory\n",0x10);\n  }\n                    /* WARNING: Subroutine does not return */\n  gold_exit(GOLD_ERR);\n}" { (declaration "char *__buf;" primitive_type (pointer_declarator "*__buf" * identifier) ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "ssize_t sVar1;" primitive_type identifier ;) (expression_statement "__buf = program_name;" (assignment_expression "__buf = program_name" identifier = identifier) ;) (expression_statement "__n = strlen(program_name);" (assignment_expression "__n = strlen(program_name)" identifier = (call_expression "strlen(program_name)" identifier (argument_list "(program_name)" ( identifier )))) ;) (expression_statement "sVar1 = ::write(2,__buf,__n);" (assignment_expression "sVar1 = ::write(2,__buf,__n)" identifier = (ERROR "::" : :) (call_expression "write(2,__buf,__n)" identifier (argument_list "(2,__buf,__n)" ( number_literal , identifier , identifier )))) ;) (if_statement "if (-1 < sVar1) {\n    ::write(2,": out of memory\n",0x10);\n  }" if (parenthesized_expression "(-1 < sVar1)" ( (binary_expression "-1 < sVar1" number_literal < identifier) )) (compound_statement "{\n    ::write(2,": out of memory\n",0x10);\n  }" { (ERROR "::" : :) (expression_statement "write(2,": out of memory\n",0x10);" (call_expression "write(2,": out of memory\n",0x10)" identifier (argument_list "(2,": out of memory\n",0x10)" ( number_literal , (string_literal "": out of memory\n"" " string_content escape_sequence ") , number_literal ))) ;) })) comment (expression_statement "gold_exit(GOLD_ERR);" (call_expression "gold_exit(GOLD_ERR)" identifier (argument_list "(GOLD_ERR)" ( identifier ))) ;) })))
(translation_unit "void FUN_0008b5d0(void)\n\n{\n  char *__buf;\n  size_t __n;\n  ssize_t sVar1;\n  \n  __buf = DAT_0033f5a0;\n  __n = strlen(DAT_0033f5a0);\n  sVar1 = write(2,__buf,__n);\n  if (-1 < sVar1) {\n    write(2,": out of memory\n",0x10);\n  }\n                    \n  FUN_0008b550(1);\n}\n\n" (function_definition "void FUN_0008b5d0(void)\n\n{\n  char *__buf;\n  size_t __n;\n  ssize_t sVar1;\n  \n  __buf = DAT_0033f5a0;\n  __n = strlen(DAT_0033f5a0);\n  sVar1 = write(2,__buf,__n);\n  if (-1 < sVar1) {\n    write(2,": out of memory\n",0x10);\n  }\n                    \n  FUN_0008b550(1);\n}" primitive_type (function_declarator "FUN_0008b5d0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  char *__buf;\n  size_t __n;\n  ssize_t sVar1;\n  \n  __buf = DAT_0033f5a0;\n  __n = strlen(DAT_0033f5a0);\n  sVar1 = write(2,__buf,__n);\n  if (-1 < sVar1) {\n    write(2,": out of memory\n",0x10);\n  }\n                    \n  FUN_0008b550(1);\n}" { (declaration "char *__buf;" primitive_type (pointer_declarator "*__buf" * identifier) ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "ssize_t sVar1;" primitive_type identifier ;) (expression_statement "__buf = DAT_0033f5a0;" (assignment_expression "__buf = DAT_0033f5a0" identifier = identifier) ;) (expression_statement "__n = strlen(DAT_0033f5a0);" (assignment_expression "__n = strlen(DAT_0033f5a0)" identifier = (call_expression "strlen(DAT_0033f5a0)" identifier (argument_list "(DAT_0033f5a0)" ( identifier )))) ;) (expression_statement "sVar1 = write(2,__buf,__n);" (assignment_expression "sVar1 = write(2,__buf,__n)" identifier = (call_expression "write(2,__buf,__n)" identifier (argument_list "(2,__buf,__n)" ( number_literal , identifier , identifier )))) ;) (if_statement "if (-1 < sVar1) {\n    write(2,": out of memory\n",0x10);\n  }" if (parenthesized_expression "(-1 < sVar1)" ( (binary_expression "-1 < sVar1" number_literal < identifier) )) (compound_statement "{\n    write(2,": out of memory\n",0x10);\n  }" { (expression_statement "write(2,": out of memory\n",0x10);" (call_expression "write(2,": out of memory\n",0x10)" identifier (argument_list "(2,": out of memory\n",0x10)" ( number_literal , (string_literal "": out of memory\n"" " string_content escape_sequence ") , number_literal ))) ;) })) (expression_statement "FUN_0008b550(1);" (call_expression "FUN_0008b550(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })))
(function_definition "void FUN_0008b5d0(void)\n\n{\n  char *__buf;\n  size_t __n;\n  ssize_t sVar1;\n  \n  __buf = DAT_0033f5a0;\n  __n = strlen(DAT_0033f5a0);\n  sVar1 = write(2,__buf,__n);\n  if (-1 < sVar1) {\n    write(2,": out of memory\n",0x10);\n  }\n                    \n  FUN_0008b550(1);\n}" (primitive_type "void") (function_declarator "FUN_0008b5d0(void)" (identifier "FUN_0008b5d0") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  char *__buf;\n  size_t __n;\n  ssize_t sVar1;\n  \n  __buf = DAT_0033f5a0;\n  __n = strlen(DAT_0033f5a0);\n  sVar1 = write(2,__buf,__n);\n  if (-1 < sVar1) {\n    write(2,": out of memory\n",0x10);\n  }\n                    \n  FUN_0008b550(1);\n}" ({ "{") (declaration "char *__buf;" (primitive_type "char") (pointer_declarator "*__buf" (* "*") (identifier "__buf")) (; ";")) (declaration "size_t __n;" (primitive_type "size_t") (identifier "__n") (; ";")) (declaration "ssize_t sVar1;" (primitive_type "ssize_t") (identifier "sVar1") (; ";")) (expression_statement "__buf = DAT_0033f5a0;" (assignment_expression "__buf = DAT_0033f5a0" (identifier "__buf") (= "=") (identifier "DAT_0033f5a0")) (; ";")) (expression_statement "__n = strlen(DAT_0033f5a0);" (assignment_expression "__n = strlen(DAT_0033f5a0)" (identifier "__n") (= "=") (call_expression "strlen(DAT_0033f5a0)" (identifier "strlen") (argument_list "(DAT_0033f5a0)" (( "(") (identifier "DAT_0033f5a0") () ")")))) (; ";")) (expression_statement "sVar1 = write(2,__buf,__n);" (assignment_expression "sVar1 = write(2,__buf,__n)" (identifier "sVar1") (= "=") (call_expression "write(2,__buf,__n)" (identifier "write") (argument_list "(2,__buf,__n)" (( "(") (number_literal "2") (, ",") (identifier "__buf") (, ",") (identifier "__n") () ")")))) (; ";")) (if_statement "if (-1 < sVar1) {\n    write(2,": out of memory\n",0x10);\n  }" (if "if") (parenthesized_expression "(-1 < sVar1)" (( "(") (binary_expression "-1 < sVar1" (number_literal "-1") (< "<") (identifier "sVar1")) () ")")) (compound_statement "{\n    write(2,": out of memory\n",0x10);\n  }" ({ "{") (expression_statement "write(2,": out of memory\n",0x10);" (call_expression "write(2,": out of memory\n",0x10)" (identifier "write") (argument_list "(2,": out of memory\n",0x10)" (( "(") (number_literal "2") (, ",") (string_literal "": out of memory\n"" (" """) (string_content ": out of memory") (escape_sequence "\n") (" """)) (, ",") (number_literal "0x10") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_0008b550(1);" (call_expression "FUN_0008b550(1)" (identifier "FUN_0008b550") (argument_list "(1)" (( "(") (number_literal "1") () ")"))) (; ";")) (} "}")))

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

void gold::function_1(void)

{
  char *__buf;
  size_t __n;
  ssize_t var_3;
  
  __buf = program_name;
  __n = var_1(program_name);
  var_3 = ::var_2(2,__buf,__n);
  if (-1 < var_3) {
    ::var_2(2,": out of memory\n",0x10);
  }
                    /* WARNING: Subroutine does not return */
  var_4(GOLD_ERR);
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type)))) body: (compound_statement (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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 (number_literal) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content) (escape_sequence)) (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))))

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

void MASKED(void)

{
  char *__buf;
  size_t __n;
  ssize_t sVar1;
  
  __buf = DAT_0033f5a0;
  __n = strlen(DAT_0033f5a0);
  sVar1 = write(2,__buf,__n);
  if (-1 < sVar1) {
    write(2,": out of memory\n",0x10);
  }
                    /* WARNING: Subroutine does not return */
  FUN_0008b550(1);
}

