Function at 0x421830
Capabilities:
Create tcp socket
Create udp socket
Initialize winsock library

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
lea eax, [ebp - 0x1a8]
push ebx
sub esp, 0x1ec
mov dword [ebp - 0x1c4], 4
mov dword [esp + 4], eax
mov dword [esp], 2
call sub.ws2_32.dll_WSAStartup
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0xeae
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
call sub.ws2_32.dll_WSAGetLastError
mov dword [esp + 4], str.failed_to_startup__error__u_n
mov dword [esp + 8], eax
xor eax, eax
test ebx, ebx
sete al
mov dword [esp], eax
call fcn.00465cf0
mov dword [esp + 8], 0
mov edx, 2
xor eax, eax
mov dword [esp + 4], 2
mov dword [esp], 2
mov word [ebp - 0x1b8], dx
mov dword [ebp - 0x1b6], 0
mov dword [ebp - 0x1b2], 0
mov dword [ebp - 0x1ae], 0
mov word [ebp - 0x1aa], ax
call sub.ws2_32.dll_socket
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0xeb7
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
call sub.ws2_32.dll_WSAGetLastError
mov dword [esp + 4], str.failed_to_create_socket__error__u_n
mov dword [esp + 8], eax
xor eax, eax
cmp ebx, 0xffffffff
setne al
mov dword [esp], eax
call fcn.00465cf0
lea eax, [ebp - 0x1b8]
mov dword [esp + 8], 0x10
mov dword [esp + 4], eax
mov dword [esp], ebx
call sub.ws2_32.dll_bind
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0xeba
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
call sub.ws2_32.dll_WSAGetLastError
mov dword [esp + 4], str.failed_to_bind_socket__error__u_n
mov dword [esp + 8], eax
xor eax, eax
test esi, esi
lea esi, [ebp - 0x1c4]
sete al
mov dword [esp], eax
call fcn.00465cf0
lea eax, [ebp - 0x1c8]
mov dword [esp], ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x2003
mov dword [esp + 4], 0xffff
call sub.ws2_32.dll_getsockopt
sub esp, 0x14
mov edi, eax
mov dword [esp + 4], 0xebe
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
xor eax, eax
test edi, edi
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.getsockopt_failed_to_query_SO_MAX_MSG_SIZE__return_value_is_0x_08x_n
mov dword [esp], eax
call fcn.00465cf0
mov dword [esp + 4], 0xebf
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
mov edx, dword [ebp - 0x1c8]
mov dword [esp + 4], str.SO_MAX_MSG_SIZE_reported__d__expected_65507_or_65527_n
cmp edx, 0xffe3
mov dword [esp + 8], edx
sete al
cmp edx, 0xfff7
sete dl
or eax, edx
movzx eax, al
mov dword [esp], eax
call fcn.00465cf0
mov dword [ebp - 0x1c8], 0xdeadbeef
mov eax, dword fs:[0x18]
mov dword [eax + 0x34], 0xdeadbeef
lea eax, [ebp - 0x1c8]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x2003
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
mov dword [ebp - 0x1c4], 4
call sub.ws2_32.dll_getsockopt
sub esp, 0x14
mov edi, eax
mov dword [esp + 4], 0xec7
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
mov edx, dword [ebp - 0x1c8]
mov dword [ebp - 0x1cc], edx
call sub.ws2_32.dll_WSAGetLastError
mov edx, dword [ebp - 0x1cc]
mov ecx, eax
xor eax, eax
cmp edi, 0xffffffff
je 0x422050
mov dword [esp + 0xc], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], edx
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 4], str.got__d_with__d_and_optval:_0x_x__d__expected_SOCKET_ERROR_with_WSAEINVAL__n
call fcn.00465cf0
mov dword [ebp - 0x1c8], 0xdeadbeef
mov eax, dword fs:[0x18]
mov dword [eax + 0x34], 0xdeadbeef
lea eax, [ebp - 0x1c8]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x2003
mov dword [esp + 4], 0x1234ffff
mov dword [esp], ebx
mov dword [ebp - 0x1c4], 4
call sub.ws2_32.dll_getsockopt
sub esp, 0x14
mov edi, eax
mov dword [esp + 4], 0xed0
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
mov edx, dword [ebp - 0x1c8]
mov dword [ebp - 0x1cc], edx
call sub.ws2_32.dll_WSAGetLastError
mov edx, dword [ebp - 0x1cc]
mov ecx, eax
xor eax, eax
cmp edi, 0xffffffff
je 0x4220b0
mov dword [esp + 0xc], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], edx
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 4], str.got__d_with__d_and_optval:_0x_x__d__expected_SOCKET_ERROR_with_WSAEINVAL__n
call fcn.00465cf0
mov dword [ebp - 0x1c8], 0xdeadbeef
mov eax, dword fs:[0x18]
mov dword [eax + 0x34], 0xdeadbeef
lea eax, [ebp - 0x1c8]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x2003
mov dword [esp + 4], 0x8000ffff
mov dword [esp], ebx
mov dword [ebp - 0x1c4], 4
call sub.ws2_32.dll_getsockopt
sub esp, 0x14
mov edi, eax
mov dword [esp + 4], 0xed8
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
mov edx, dword [ebp - 0x1c8]
mov dword [ebp - 0x1cc], edx
call sub.ws2_32.dll_WSAGetLastError
mov edx, dword [ebp - 0x1cc]
mov ecx, eax
xor eax, eax
cmp edi, 0xffffffff
je 0x422080
mov dword [esp + 0xc], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], edx
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 4], str.got__d_with__d_and_optval:_0x_x__d__expected_SOCKET_ERROR_with_WSAEINVAL__n
call fcn.00465cf0
mov dword [ebp - 0x1c8], 0xdeadbeef
mov eax, dword fs:[0x18]
mov dword [eax + 0x34], 0xdeadbeef
lea eax, [ebp - 0x1c8]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x2003
mov dword [esp + 4], 0x8000
mov dword [esp], ebx
mov dword [ebp - 0x1c4], 4
call sub.ws2_32.dll_getsockopt
sub esp, 0x14
mov edi, eax
mov dword [esp + 4], 0xee0
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
mov edx, dword [ebp - 0x1c8]
mov dword [ebp - 0x1cc], edx
call sub.ws2_32.dll_WSAGetLastError
mov edx, dword [ebp - 0x1cc]
mov ecx, eax
xor eax, eax
cmp edi, 0xffffffff
je 0x421ff0
mov dword [esp + 0xc], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], edx
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 4], str.got__d_with__d_and_optval:_0x_x__d__expected_SOCKET_ERROR_with_WSAEINVAL__n
call fcn.00465cf0
mov dword [ebp - 0x1c8], 0xdeadbeef
mov eax, dword fs:[0x18]
mov dword [eax + 0x34], 0xdeadbeef
lea eax, [ebp - 0x1c8]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x2003
mov dword [esp + 4], 0x800
mov dword [esp], ebx
mov dword [ebp - 0x1c4], 4
call sub.ws2_32.dll_getsockopt
sub esp, 0x14
mov edi, eax
mov dword [esp + 4], 0xee8
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
mov edx, dword [ebp - 0x1c8]
mov dword [ebp - 0x1cc], edx
call sub.ws2_32.dll_WSAGetLastError
mov edx, dword [ebp - 0x1cc]
mov ecx, eax
xor eax, eax
cmp edi, 0xffffffff
je 0x421fc0
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edi
lea edi, [ebp - 0x1bc]
mov dword [esp], eax
mov dword [esp + 4], str.got__d_with__d_and_optval:_0x_x__d__expected_SOCKET_ERROR_with_WSAEINVAL__n
call fcn.00465cf0
mov dword [ebp - 0x1c4], 4
mov eax, dword fs:[0x18]
mov dword [eax + 0x34], 0xdeadbeef
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], edi
mov dword [esp + 8], pe_nt_image_headers32
mov dword [esp + 4], 0xffff
mov dword [esp], ebx
call sub.ws2_32.dll_getsockopt
sub esp, 0x14
mov dword [ebp - 0x1cc], eax
mov dword [esp + 4], 0xeef
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
call sub.ws2_32.dll_WSAGetLastError
mov edx, dword [ebp - 0x1cc]
mov ecx, eax
xor eax, eax
cmp edx, 0xffffffff
je 0x422020
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edx
mov dword [esp + 4], str.getsockopt_should_fail_for_UDP_sockets_setting_last_error_to_WSAENOPROTOOPT__got__d_with__d_n
mov dword [esp], eax
call fcn.00465cf0
mov dword [esp], ebx
call sub.ws2_32.dll_closesocket
sub esp, 4
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov dword [esp], 2
call sub.ws2_32.dll_socket
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0xef5
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
call sub.ws2_32.dll_WSAGetLastError
mov dword [esp + 4], str.failed_to_create_socket__error__u_n
mov dword [esp + 8], eax
xor eax, eax
cmp ebx, 0xffffffff
setne al
mov dword [esp], eax
call fcn.00465cf0
lea eax, [ebp - 0x1b8]
mov dword [esp + 8], 0x10
mov dword [esp + 4], eax
mov dword [esp], ebx
call sub.ws2_32.dll_bind
sub esp, 0xc
mov dword [ebp - 0x1cc], eax
mov dword [esp + 4], 0xef8
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
call sub.ws2_32.dll_WSAGetLastError
mov edx, dword [ebp - 0x1cc]
mov dword [esp + 4], str.failed_to_bind_socket__error__u_n
mov dword [esp + 8], eax
xor eax, eax
test edx, edx
sete al
mov dword [esp], eax
call fcn.00465cf0
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], edi
mov dword [esp + 8], pe_nt_image_headers32
mov dword [esp + 4], 0xffff
mov dword [esp], ebx
call sub.ws2_32.dll_getsockopt
sub esp, 0x14
mov edi, eax
mov dword [esp + 4], 0xefb
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
xor eax, eax
test edi, edi
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.getsockopt_failed_to_query_SO_LINGER__return_value_is_0x_08x_n
mov dword [esp], eax
call fcn.00465cf0
lea eax, [ebp - 0x1c0]
mov dword [esp], ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0xffffff7f
mov dword [esp + 4], 0xffff
mov dword [ebp - 0x1c4], 4
call sub.ws2_32.dll_getsockopt
sub esp, 0x14
mov esi, eax
mov dword [esp + 4], 0xeff
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.getsockopt_failed_to_query_SO_DONTLINGER__return_value_is_0x_08x_n
mov dword [esp], eax
call fcn.00465cf0
mov dword [esp + 4], 0xf00
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
movzx ecx, word [ebp - 0x1bc]
mov edx, dword [ebp - 0x1c0]
test cx, cx
je 0x421fb0
xor eax, eax
test edx, edx
sete al
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edx
mov dword [esp + 4], str.Return_value_of_SO_DONTLINGER_is__d__but_SO_LINGER_returned_l_onoff___d._n
mov dword [esp], eax
call fcn.00465cf0
mov dword [esp], ebx
call sub.ws2_32.dll_closesocket
sub esp, 4
call sub.ws2_32.dll_WSACleanup
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
xor eax, eax
test edx, edx
setne al
jmp 0x421f77
mov dword [ebp - 0x1d0], ecx
call sub.ws2_32.dll_WSAGetLastError
mov ecx, dword [ebp - 0x1d0]
mov edx, dword [ebp - 0x1cc]
cmp eax, 0x2726
sete al
movzx eax, al
jmp 0x421d2a
mov dword [ebp - 0x1d0], ecx
call sub.ws2_32.dll_WSAGetLastError
mov ecx, dword [ebp - 0x1d0]
mov edx, dword [ebp - 0x1cc]
cmp eax, 0x2726
sete al
movzx eax, al
jmp 0x421c86
mov dword [ebp - 0x1d0], edx
mov dword [ebp - 0x1cc], ecx
call sub.ws2_32.dll_WSAGetLastError
mov edx, dword [ebp - 0x1d0]
mov ecx, dword [ebp - 0x1cc]
cmp eax, 0x273a
sete al
movzx eax, al
jmp 0x421dbc
mov dword [ebp - 0x1d0], ecx
call sub.ws2_32.dll_WSAGetLastError
mov ecx, dword [ebp - 0x1d0]
mov edx, dword [ebp - 0x1cc]
cmp eax, 0x2726
sete al
movzx eax, al
jmp 0x421a9a
mov dword [ebp - 0x1d0], ecx
call sub.ws2_32.dll_WSAGetLastError
mov ecx, dword [ebp - 0x1d0]
mov edx, dword [ebp - 0x1cc]
cmp eax, 0x2726
sete al
movzx eax, al
jmp 0x421be2
mov dword [ebp - 0x1d0], ecx
call sub.ws2_32.dll_WSAGetLastError
mov ecx, dword [ebp - 0x1d0]
mov edx, dword [ebp - 0x1cc]
cmp eax, 0x2726
sete al
movzx eax, al
jmp 0x421b3e