
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

void sk_tcp_write_eof(Socket sock)

{
  if (sock[0xf] != (socket_function_table *)0x0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("s->outgoingeof == EOF_NO","unix/uxnet.c",0x4e4,"sk_tcp_write_eof");
  }
  sock[0xf] = (socket_function_table *)0x1;
  if (sock[8] == (socket_function_table *)0x0) {
    uxsel_tell((Actual_Socket_conflict)sock);
    return;
  }
  try_send((Actual_Socket_conflict)sock);
  uxsel_tell((Actual_Socket_conflict)sock);
  return;
}



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

void FUN_00068180(int param_1)

{
  if (*(int *)(param_1 + 0x3c) != 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("s->outgoingeof == EOF_NO","unix/uxnet.c",0x4e4,"sk_tcp_write_eof");
  }
  *(undefined4 *)(param_1 + 0x3c) = 1;
  if (*(int *)(param_1 + 0x20) == 0) {
    FUN_00066500();
    return;
  }
  FUN_00067a60(param_1);
  FUN_00066500();
  return;
}


PUSH ESI
PUSH EBX
CALL 0x00014970
ADD EBX,0x41c09
SUB ESP,0x4
MOV ESI,dword ptr [ESP + 0x10]
MOV EDX,dword ptr [ESI + 0x3c]
TEST EDX,EDX
JNZ 0x000681d0
MOV EAX,dword ptr [ESI + 0x20]
MOV dword ptr [ESI + 0x3c],0x1
TEST EAX,EAX
JNZ 0x000681b8
ADD ESP,0x4
MOV EAX,ESI
POP EBX
POP ESI
JMP 0x00066500
SUB ESP,0xc
PUSH ESI
CALL 0x00067a60
ADD ESP,0x10
MOV EAX,ESI
ADD ESP,0x4
POP EBX
POP ESI
JMP 0x00066500
LEA EDX,[EBX + 0xfffd7bd0]
PUSH EDX
LEA EDX,[EBX + 0xfffd79ea]
PUSH 0x4e4
PUSH EDX
LEA EDX,[EBX + 0xfffd7d3d]
PUSH EDX
CALL 0x00014870
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_00068180(int param_1)\n\n{\n  if (*(int *)(param_1 + 0x3c) != 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("s->outgoingeof == EOF_NO","unix/uxnet.c",0x4e4,"sk_tcp_write_eof");\n  }\n  *(undefined4 *)(param_1 + 0x3c) = 1;\n  if (*(int *)(param_1 + 0x20) == 0) {\n    FUN_00066500();\n    return;\n  }\n  FUN_00067a60(param_1);\n  FUN_00066500();\n  return;\n}\n\n" comment (function_definition "void FUN_00068180(int param_1)\n\n{\n  if (*(int *)(param_1 + 0x3c) != 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("s->outgoingeof == EOF_NO","unix/uxnet.c",0x4e4,"sk_tcp_write_eof");\n  }\n  *(undefined4 *)(param_1 + 0x3c) = 1;\n  if (*(int *)(param_1 + 0x20) == 0) {\n    FUN_00066500();\n    return;\n  }\n  FUN_00067a60(param_1);\n  FUN_00066500();\n  return;\n}" primitive_type (function_declarator "FUN_00068180(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  if (*(int *)(param_1 + 0x3c) != 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("s->outgoingeof == EOF_NO","unix/uxnet.c",0x4e4,"sk_tcp_write_eof");\n  }\n  *(undefined4 *)(param_1 + 0x3c) = 1;\n  if (*(int *)(param_1 + 0x20) == 0) {\n    FUN_00066500();\n    return;\n  }\n  FUN_00067a60(param_1);\n  FUN_00066500();\n  return;\n}" { (if_statement "if (*(int *)(param_1 + 0x3c) != 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("s->outgoingeof == EOF_NO","unix/uxnet.c",0x4e4,"sk_tcp_write_eof");\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x3c) != 0)" ( (binary_expression "*(int *)(param_1 + 0x3c) != 0" (pointer_expression "*(int *)(param_1 + 0x3c)" * (cast_expression "(int *)(param_1 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("s->outgoingeof == EOF_NO","unix/uxnet.c",0x4e4,"sk_tcp_write_eof");\n  }" { comment (expression_statement "__assert_fail("s->outgoingeof == EOF_NO","unix/uxnet.c",0x4e4,"sk_tcp_write_eof");" (call_expression "__assert_fail("s->outgoingeof == EOF_NO","unix/uxnet.c",0x4e4,"sk_tcp_write_eof")" identifier (argument_list "("s->outgoingeof == EOF_NO","unix/uxnet.c",0x4e4,"sk_tcp_write_eof")" ( (string_literal ""s->outgoingeof == EOF_NO"" " string_content ") , (string_literal ""unix/uxnet.c"" " string_content ") , number_literal , (string_literal ""sk_tcp_write_eof"" " string_content ") ))) ;) })) (expression_statement "*(undefined4 *)(param_1 + 0x3c) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x3c) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x3c)" * (cast_expression "(undefined4 *)(param_1 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (*(int *)(param_1 + 0x20) == 0) {\n    FUN_00066500();\n    return;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x20) == 0)" ( (binary_expression "*(int *)(param_1 + 0x20) == 0" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    FUN_00066500();\n    return;\n  }" { (expression_statement "FUN_00066500();" (call_expression "FUN_00066500()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_00067a60(param_1);" (call_expression "FUN_00067a60(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "FUN_00066500();" (call_expression "FUN_00066500()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nvoid sk_tcp_write_eof(Socket sock)\n\n{\n  if (sock[0xf] != (socket_function_table *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("s->outgoingeof == EOF_NO","unix/uxnet.c",0x4e4,"sk_tcp_write_eof");\n  }\n  sock[0xf] = (socket_function_table *)0x1;\n  if (sock[8] == (socket_function_table *)0x0) {\n    uxsel_tell((Actual_Socket_conflict)sock);\n    return;\n  }\n  try_send((Actual_Socket_conflict)sock);\n  uxsel_tell((Actual_Socket_conflict)sock);\n  return;\n}\n\n" comment comment comment (function_definition "void sk_tcp_write_eof(Socket sock)\n\n{\n  if (sock[0xf] != (socket_function_table *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("s->outgoingeof == EOF_NO","unix/uxnet.c",0x4e4,"sk_tcp_write_eof");\n  }\n  sock[0xf] = (socket_function_table *)0x1;\n  if (sock[8] == (socket_function_table *)0x0) {\n    uxsel_tell((Actual_Socket_conflict)sock);\n    return;\n  }\n  try_send((Actual_Socket_conflict)sock);\n  uxsel_tell((Actual_Socket_conflict)sock);\n  return;\n}" primitive_type (function_declarator "sk_tcp_write_eof(Socket sock)" identifier (parameter_list "(Socket sock)" ( (parameter_declaration "Socket sock" type_identifier identifier) ))) (compound_statement "{\n  if (sock[0xf] != (socket_function_table *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("s->outgoingeof == EOF_NO","unix/uxnet.c",0x4e4,"sk_tcp_write_eof");\n  }\n  sock[0xf] = (socket_function_table *)0x1;\n  if (sock[8] == (socket_function_table *)0x0) {\n    uxsel_tell((Actual_Socket_conflict)sock);\n    return;\n  }\n  try_send((Actual_Socket_conflict)sock);\n  uxsel_tell((Actual_Socket_conflict)sock);\n  return;\n}" { (if_statement "if (sock[0xf] != (socket_function_table *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("s->outgoingeof == EOF_NO","unix/uxnet.c",0x4e4,"sk_tcp_write_eof");\n  }" if (parenthesized_expression "(sock[0xf] != (socket_function_table *)0x0)" ( (binary_expression "sock[0xf] != (socket_function_table *)0x0" (subscript_expression "sock[0xf]" identifier [ number_literal ]) != (cast_expression "(socket_function_table *)0x0" ( (type_descriptor "socket_function_table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("s->outgoingeof == EOF_NO","unix/uxnet.c",0x4e4,"sk_tcp_write_eof");\n  }" { comment (expression_statement "__assert_fail("s->outgoingeof == EOF_NO","unix/uxnet.c",0x4e4,"sk_tcp_write_eof");" (call_expression "__assert_fail("s->outgoingeof == EOF_NO","unix/uxnet.c",0x4e4,"sk_tcp_write_eof")" identifier (argument_list "("s->outgoingeof == EOF_NO","unix/uxnet.c",0x4e4,"sk_tcp_write_eof")" ( (string_literal ""s->outgoingeof == EOF_NO"" " string_content ") , (string_literal ""unix/uxnet.c"" " string_content ") , number_literal , (string_literal ""sk_tcp_write_eof"" " string_content ") ))) ;) })) (expression_statement "sock[0xf] = (socket_function_table *)0x1;" (assignment_expression "sock[0xf] = (socket_function_table *)0x1" (subscript_expression "sock[0xf]" identifier [ number_literal ]) = (cast_expression "(socket_function_table *)0x1" ( (type_descriptor "socket_function_table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (sock[8] == (socket_function_table *)0x0) {\n    uxsel_tell((Actual_Socket_conflict)sock);\n    return;\n  }" if (parenthesized_expression "(sock[8] == (socket_function_table *)0x0)" ( (binary_expression "sock[8] == (socket_function_table *)0x0" (subscript_expression "sock[8]" identifier [ number_literal ]) == (cast_expression "(socket_function_table *)0x0" ( (type_descriptor "socket_function_table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uxsel_tell((Actual_Socket_conflict)sock);\n    return;\n  }" { (expression_statement "uxsel_tell((Actual_Socket_conflict)sock);" (call_expression "uxsel_tell((Actual_Socket_conflict)sock)" identifier (argument_list "((Actual_Socket_conflict)sock)" ( (cast_expression "(Actual_Socket_conflict)sock" ( (type_descriptor "Actual_Socket_conflict" type_identifier) ) identifier) ))) ;) (return_statement "return;" return ;) })) (expression_statement "try_send((Actual_Socket_conflict)sock);" (call_expression "try_send((Actual_Socket_conflict)sock)" identifier (argument_list "((Actual_Socket_conflict)sock)" ( (cast_expression "(Actual_Socket_conflict)sock" ( (type_descriptor "Actual_Socket_conflict" type_identifier) ) identifier) ))) ;) (expression_statement "uxsel_tell((Actual_Socket_conflict)sock);" (call_expression "uxsel_tell((Actual_Socket_conflict)sock)" identifier (argument_list "((Actual_Socket_conflict)sock)" ( (cast_expression "(Actual_Socket_conflict)sock" ( (type_descriptor "Actual_Socket_conflict" type_identifier) ) identifier) ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00068180(int param_1)\n\n{\n  if (*(int *)(param_1 + 0x3c) != 0) {\n                    \n    __assert_fail("s->outgoingeof == EOF_NO","unix/uxnet.c",0x4e4,"sk_tcp_write_eof");\n  }\n  *(undefined4 *)(param_1 + 0x3c) = 1;\n  if (*(int *)(param_1 + 0x20) == 0) {\n    FUN_00066500();\n    return;\n  }\n  FUN_00067a60(param_1);\n  FUN_00066500();\n  return;\n}\n\n" (function_definition "void FUN_00068180(int param_1)\n\n{\n  if (*(int *)(param_1 + 0x3c) != 0) {\n                    \n    __assert_fail("s->outgoingeof == EOF_NO","unix/uxnet.c",0x4e4,"sk_tcp_write_eof");\n  }\n  *(undefined4 *)(param_1 + 0x3c) = 1;\n  if (*(int *)(param_1 + 0x20) == 0) {\n    FUN_00066500();\n    return;\n  }\n  FUN_00067a60(param_1);\n  FUN_00066500();\n  return;\n}" primitive_type (function_declarator "FUN_00068180(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  if (*(int *)(param_1 + 0x3c) != 0) {\n                    \n    __assert_fail("s->outgoingeof == EOF_NO","unix/uxnet.c",0x4e4,"sk_tcp_write_eof");\n  }\n  *(undefined4 *)(param_1 + 0x3c) = 1;\n  if (*(int *)(param_1 + 0x20) == 0) {\n    FUN_00066500();\n    return;\n  }\n  FUN_00067a60(param_1);\n  FUN_00066500();\n  return;\n}" { (if_statement "if (*(int *)(param_1 + 0x3c) != 0) {\n                    \n    __assert_fail("s->outgoingeof == EOF_NO","unix/uxnet.c",0x4e4,"sk_tcp_write_eof");\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x3c) != 0)" ( (binary_expression "*(int *)(param_1 + 0x3c) != 0" (pointer_expression "*(int *)(param_1 + 0x3c)" * (cast_expression "(int *)(param_1 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    \n    __assert_fail("s->outgoingeof == EOF_NO","unix/uxnet.c",0x4e4,"sk_tcp_write_eof");\n  }" { (expression_statement "__assert_fail("s->outgoingeof == EOF_NO","unix/uxnet.c",0x4e4,"sk_tcp_write_eof");" (call_expression "__assert_fail("s->outgoingeof == EOF_NO","unix/uxnet.c",0x4e4,"sk_tcp_write_eof")" identifier (argument_list "("s->outgoingeof == EOF_NO","unix/uxnet.c",0x4e4,"sk_tcp_write_eof")" ( (string_literal ""s->outgoingeof == EOF_NO"" " string_content ") , (string_literal ""unix/uxnet.c"" " string_content ") , number_literal , (string_literal ""sk_tcp_write_eof"" " string_content ") ))) ;) })) (expression_statement "*(undefined4 *)(param_1 + 0x3c) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x3c) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x3c)" * (cast_expression "(undefined4 *)(param_1 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (*(int *)(param_1 + 0x20) == 0) {\n    FUN_00066500();\n    return;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x20) == 0)" ( (binary_expression "*(int *)(param_1 + 0x20) == 0" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    FUN_00066500();\n    return;\n  }" { (expression_statement "FUN_00066500();" (call_expression "FUN_00066500()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_00067a60(param_1);" (call_expression "FUN_00067a60(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "FUN_00066500();" (call_expression "FUN_00066500()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (if_statement if (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 (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (if_statement if (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 (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })))
(function_definition "void FUN_00068180(int param_1)\n\n{\n  if (*(int *)(param_1 + 0x3c) != 0) {\n                    \n    __assert_fail("s->outgoingeof == EOF_NO","unix/uxnet.c",0x4e4,"sk_tcp_write_eof");\n  }\n  *(undefined4 *)(param_1 + 0x3c) = 1;\n  if (*(int *)(param_1 + 0x20) == 0) {\n    FUN_00066500();\n    return;\n  }\n  FUN_00067a60(param_1);\n  FUN_00066500();\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00068180(int param_1)" (identifier "FUN_00068180") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  if (*(int *)(param_1 + 0x3c) != 0) {\n                    \n    __assert_fail("s->outgoingeof == EOF_NO","unix/uxnet.c",0x4e4,"sk_tcp_write_eof");\n  }\n  *(undefined4 *)(param_1 + 0x3c) = 1;\n  if (*(int *)(param_1 + 0x20) == 0) {\n    FUN_00066500();\n    return;\n  }\n  FUN_00067a60(param_1);\n  FUN_00066500();\n  return;\n}" ({ "{") (if_statement "if (*(int *)(param_1 + 0x3c) != 0) {\n                    \n    __assert_fail("s->outgoingeof == EOF_NO","unix/uxnet.c",0x4e4,"sk_tcp_write_eof");\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x3c) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x3c) != 0" (pointer_expression "*(int *)(param_1 + 0x3c)" (* "*") (cast_expression "(int *)(param_1 + 0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3c)" (( "(") (binary_expression "param_1 + 0x3c" (identifier "param_1") (+ "+") (number_literal "0x3c")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    __assert_fail("s->outgoingeof == EOF_NO","unix/uxnet.c",0x4e4,"sk_tcp_write_eof");\n  }" ({ "{") (expression_statement "__assert_fail("s->outgoingeof == EOF_NO","unix/uxnet.c",0x4e4,"sk_tcp_write_eof");" (call_expression "__assert_fail("s->outgoingeof == EOF_NO","unix/uxnet.c",0x4e4,"sk_tcp_write_eof")" (identifier "__assert_fail") (argument_list "("s->outgoingeof == EOF_NO","unix/uxnet.c",0x4e4,"sk_tcp_write_eof")" (( "(") (string_literal ""s->outgoingeof == EOF_NO"" (" """) (string_content "s->outgoingeof == EOF_NO") (" """)) (, ",") (string_literal ""unix/uxnet.c"" (" """) (string_content "unix/uxnet.c") (" """)) (, ",") (number_literal "0x4e4") (, ",") (string_literal ""sk_tcp_write_eof"" (" """) (string_content "sk_tcp_write_eof") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(param_1 + 0x3c) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x3c) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x3c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3c)" (( "(") (binary_expression "param_1 + 0x3c" (identifier "param_1") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (number_literal "1")) (; ";")) (if_statement "if (*(int *)(param_1 + 0x20) == 0) {\n    FUN_00066500();\n    return;\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x20) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x20) == 0" (pointer_expression "*(int *)(param_1 + 0x20)" (* "*") (cast_expression "(int *)(param_1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_00066500();\n    return;\n  }" ({ "{") (expression_statement "FUN_00066500();" (call_expression "FUN_00066500()" (identifier "FUN_00066500") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_00067a60(param_1);" (call_expression "FUN_00067a60(param_1)" (identifier "FUN_00067a60") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (expression_statement "FUN_00066500();" (call_expression "FUN_00066500()" (identifier "FUN_00066500") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

void function_1(type_1 sock)

{
  if (sock[0xf] != (type_2 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_1("s->outgoingeof == EOF_NO","unix/uxnet.c",0x4e4,"sk_tcp_write_eof");
  }
  sock[0xf] = (type_2 *)0x1;
  if (sock[8] == (type_2 *)0x0) {
    var_2((type_3)sock);
    return;
  }
  var_3((type_3)sock);
  var_2((type_3)sock);
  return;
}


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

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

void MASKED(int param_1)

{
  if (*(int *)(param_1 + 0x3c) != 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("s->outgoingeof == EOF_NO","unix/uxnet.c",0x4e4,"sk_tcp_write_eof");
  }
  *(undefined4 *)(param_1 + 0x3c) = 1;
  if (*(int *)(param_1 + 0x20) == 0) {
    FUN_00066500();
    return;
  }
  FUN_00067a60(param_1);
  FUN_00066500();
  return;
}

