Function at 0x423240
Capabilities:
Create tcp socket
Create udp socket
Set socket configuration

Disassembly:
push ebp
xor edx, edx
xor eax, eax
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x7c
mov dword [ebp - 0x48], 4
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x44], 0x9e240002
mov dword [ebp + eax - 0x30], edx
add eax, 4
cmp eax, 0x18
jb 0x423270
mov dword [esp + 8], 6
mov dword [esp + 4], 1
mov dword [esp], 0x17
mov dword [ebp - 0x34], 0x9e240017
call sub.ws2_32.dll_socket
sub esp, 0xc
mov dword [ebp - 0x60], eax
cmp eax, 0xffffffff
je 0x423da0
mov edi, dword [ebp - 0x60]
lea eax, [ebp - 0x48]
lea ebx, [ebp - 0x4c]
mov dword [ebp - 0x4c], 2
mov dword [esp + 0x10], eax
mov dword [esp], edi
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0x1b
mov dword [esp + 4], 0x29
call sub.ws2_32.dll_getsockopt
sub esp, 0x14
mov esi, eax
mov dword [esp + 4], 0x15aa
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.getsockopt_IPV6_ONLY__failed__LastError:__d__n
mov dword [esp + 8], eax
xor eax, eax
test esi, esi
sete al
mov dword [esp], eax
call fcn.00465cf0
mov dword [esp + 4], 0x15ab
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
mov eax, dword [ebp - 0x4c]
mov dword [esp + 4], str.expected_1__got__d_n
cmp eax, 1
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00465cf0
lea eax, [ebp - 0x34]
mov dword [esp], edi
mov edi, 0x470694
mov dword [esp + 8], 0x1c
mov dword [esp + 4], eax
call sub.ws2_32.dll_bind
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x15ae
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__error__u_n
mov dword [esp + 8], eax
xor eax, eax
test esi, esi
sete al
mov dword [esp], eax
call fcn.00465cf0
mov dword [esp + 8], 6
mov dword [esp + 4], 1
mov dword [esp], 2
call sub.ws2_32.dll_socket
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x15b1
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
call sub.ws2_32.dll_WSAGetLastError
cmp esi, 0xffffffff
mov dword [esp + 4], str.Could_not_create_IPv4_socket__LastError:__d__n
mov dword [esp + 8], eax
setne al
movzx eax, al
mov dword [ebp - 0x5c], esi
mov dword [esp], eax
call fcn.00465cf0
mov esi, dword [str.windows]
mov ecx, 5
repe cmpsb byte [esi], byte es:[edi]
seta al
sbb al, 0
test al, al
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00465e60
mov esi, dword [ebp - 0x5c]
jmp 0x4234c0
lea eax, [ebp - 0x48]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0x1b
mov dword [esp + 4], 0x29
mov dword [esp], esi
mov dword [ebp - 0x4c], 2
call sub.ws2_32.dll_getsockopt
sub esp, 0x14
mov edi, eax
mov dword [esp + 4], 0x15b6
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.getsockopt_IPV6_ONLY__failed__LastError:__d__n
mov dword [esp + 8], eax
xor eax, eax
test edi, edi
sete al
mov dword [esp], eax
call fcn.00465cf0
mov dword [esp + 4], 0x15b7
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
mov eax, dword [ebp - 0x4c]
mov dword [esp + 4], str.expected_1__got__d_n
cmp eax, 1
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00465cf0
call fcn.00465eb0
call fcn.00465e90
test eax, eax
jne 0x423424
mov eax, dword [ebp - 0x5c]
mov dword [esp + 0x10], 4
mov edi, 0x470694
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0x1b
mov dword [esp + 4], 0x29
mov dword [esp], eax
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 4
call sub.ws2_32.dll_setsockopt
sub esp, 0x14
mov esi, eax
mov dword [esp + 4], 0x15bd
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.setsockopt_IPV6_ONLY__failed__LastError:__d__n
mov dword [esp + 8], eax
xor eax, eax
test esi, esi
sete al
mov dword [esp], eax
call fcn.00465cf0
mov esi, dword [str.windows]
mov ecx, 5
repe cmpsb byte [esi], byte es:[edi]
seta al
sbb al, 0
test al, al
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00465e60
mov esi, dword [ebp - 0x5c]
jmp 0x42360b
lea eax, [ebp - 0x48]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0x1b
mov dword [esp + 4], 0x29
mov dword [esp], esi
mov dword [ebp - 0x4c], 2
call sub.ws2_32.dll_getsockopt
sub esp, 0x14
mov edi, eax
mov dword [esp + 4], 0x15c2
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.getsockopt_IPV6_ONLY__failed__LastError:__d__n
mov dword [esp + 8], eax
xor eax, eax
test edi, edi
sete al
mov dword [esp], eax
call fcn.00465cf0
mov dword [esp + 4], 0x15c3
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
mov eax, dword [ebp - 0x4c]
mov dword [esp + 4], str.expected_0__got__d_n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00465cf0
call fcn.00465eb0
call fcn.00465e90
test eax, eax
jne 0x423570
mov edi, dword [ebp - 0x5c]
mov dword [esp + 0x10], 4
mov dword [esp + 0xc], ebx
mov dword [esp], edi
mov dword [esp + 8], 0x1b
mov dword [esp + 4], 0x29
mov dword [ebp - 0x4c], 1
mov dword [ebp - 0x48], 4
call sub.ws2_32.dll_setsockopt
sub esp, 0x14
mov esi, eax
mov dword [esp + 4], 0x15c9
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.setsockopt_IPV6_ONLY__failed__LastError:__d__n
mov dword [esp + 8], eax
xor eax, eax
test esi, esi
sete al
mov dword [esp], eax
call fcn.00465cf0
lea eax, [ebp - 0x44]
mov dword [esp], edi
mov dword [esp + 8], 0x10
mov dword [esp + 4], eax
mov dword [ebp - 0x5c], edi
mov edi, 0x470694
call sub.ws2_32.dll_bind
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x15cd
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.Could_not_bind_IPv4_address__LastError:__d__n
mov dword [esp + 8], eax
xor eax, eax
test esi, esi
sete al
mov dword [esp], eax
call fcn.00465cf0
mov esi, dword [str.windows]
mov ecx, 5
repe cmpsb byte [esi], byte es:[edi]
seta al
sbb al, 0
test al, al
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00465e60
mov esi, dword [ebp - 0x5c]
jmp 0x4237ac
lea eax, [ebp - 0x48]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0x1b
mov dword [esp + 4], 0x29
mov dword [esp], esi
mov dword [ebp - 0x4c], 2
call sub.ws2_32.dll_getsockopt
sub esp, 0x14
mov edi, eax
mov dword [esp + 4], 0x15d2
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.getsockopt_IPV6_ONLY__failed__LastError:__d__n
mov dword [esp + 8], eax
xor eax, eax
test edi, edi
sete al
mov dword [esp], eax
call fcn.00465cf0
mov dword [esp + 4], 0x15d3
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
mov eax, dword [ebp - 0x4c]
mov dword [esp + 4], str.expected_1__got__d_n
cmp eax, 1
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00465cf0
call fcn.00465eb0
call fcn.00465e90
test eax, eax
jne 0x423710
mov eax, dword [ebp - 0x5c]
mov dword [esp + 0x10], 4
mov edi, 0x470694
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0x1b
mov dword [esp + 4], 0x29
mov dword [esp], eax
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 4
call sub.ws2_32.dll_setsockopt
sub esp, 0x14
mov esi, eax
mov dword [esp + 4], 0x15d9
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
call sub.ws2_32.dll_WSAGetLastError
mov dword [esp], esi
mov dword [esp + 8], eax
mov dword [esp + 4], str.setsockopt_IPV6_ONLY__succeeded__LastError:__d__n
call fcn.00465cf0
mov esi, dword [str.windows]
mov ecx, 5
repe cmpsb byte [esi], byte es:[edi]
seta al
sbb al, 0
test al, al
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00465e60
mov esi, dword [ebp - 0x5c]
jmp 0x4238ec
lea eax, [ebp - 0x48]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0x1b
mov dword [esp + 4], 0x29
mov dword [esp], esi
mov dword [ebp - 0x4c], 0
call sub.ws2_32.dll_getsockopt
sub esp, 0x14
mov edi, eax
mov dword [esp + 4], 0x15de
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.getsockopt_IPV6_ONLY__failed__LastError:__d__n
mov dword [esp + 8], eax
xor eax, eax
test edi, edi
sete al
mov dword [esp], eax
call fcn.00465cf0
mov dword [esp + 4], 0x15df
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
mov eax, dword [ebp - 0x4c]
mov dword [esp + 4], str.expected_1__got__d_n
cmp eax, 1
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00465cf0
call fcn.00465eb0
call fcn.00465e90
test eax, eax
jne 0x423850
mov edi, dword [ebp - 0x5c]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], 4
mov dword [esp], edi
mov dword [esp + 8], 0x1b
mov dword [esp + 4], 0x29
mov dword [ebp - 0x4c], 1
mov dword [ebp - 0x48], 4
call sub.ws2_32.dll_setsockopt
sub esp, 0x14
mov esi, eax
mov dword [esp + 4], 0x15e5
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
call sub.ws2_32.dll_WSAGetLastError
mov dword [esp], esi
mov dword [esp + 8], eax
mov dword [esp + 4], str.setsockopt_IPV6_ONLY__succeeded__LastError:__d__n
call fcn.00465cf0
mov dword [esp], edi
call sub.ws2_32.dll_closesocket
mov eax, dword [ebp - 0x60]
sub esp, 4
mov dword [esp], eax
call sub.ws2_32.dll_closesocket
mov edx, 0xffffa024
mov eax, 0xffffa024
sub esp, 4
mov word [ebp - 0x32], dx
mov dword [esp + 8], 6
mov dword [esp + 4], 1
mov dword [esp], 0x17
mov word [ebp - 0x42], ax
call sub.ws2_32.dll_socket
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x15ef
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
call sub.ws2_32.dll_WSAGetLastError
mov dword [esp + 0xc], 0x273f
mov dword [esp + 8], eax
xor eax, eax
cmp esi, 0xffffffff
setne al
mov dword [esp + 4], str.Could_not_create_IPv6_socket__LastError:__d___d_expected_if_IPv6_not_available_._n
mov dword [esp], eax
call fcn.00465cf0
mov eax, dword [ebp - 0x48]
mov dword [esp], esi
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0x1b
mov dword [esp + 4], 0x29
mov dword [ebp - 0x4c], 0
call sub.ws2_32.dll_setsockopt
sub esp, 0x14
mov edi, eax
mov dword [esp + 4], 0x15f4
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.Could_not_disable_IPV6_V6ONLY__LastError:__d_._n
mov dword [esp + 8], eax
xor eax, eax
test edi, edi
sete al
mov dword [esp], eax
call fcn.00465cf0
lea eax, [ebp - 0x48]
mov dword [esp], esi
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0x1b
mov dword [esp + 4], 0x29
mov dword [ebp - 0x4c], 2
call sub.ws2_32.dll_getsockopt
sub esp, 0x14
mov edi, eax
mov dword [esp + 4], 0x15f8
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.getsockopt_IPV6_ONLY__failed__LastError:__d__n
mov dword [esp + 8], eax
xor eax, eax
test edi, edi
sete al
mov dword [esp], eax
call fcn.00465cf0
mov dword [esp + 4], 0x15f9
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
mov eax, dword [ebp - 0x4c]
mov dword [esp + 4], str.expected_0__got__d_n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00465cf0
mov eax, dword [ebp - 0x48]
mov dword [esp], esi
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0xfffffffb
mov dword [esp + 4], 0xffff
mov dword [ebp - 0x4c], 1
call sub.ws2_32.dll_setsockopt
sub esp, 0x14
mov edi, eax
mov dword [esp + 4], 0x1605
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.Could_not_set_SO_EXCLUSIVEADDRUSE_on_IPv6_socket__LastError:__d__n
mov dword [esp + 8], eax
xor eax, eax
test edi, edi
sete al
mov dword [esp], eax
call fcn.00465cf0
lea eax, [ebp - 0x34]
mov dword [esp + 8], 0x1c
mov dword [esp + 4], eax
mov dword [esp], esi
call sub.ws2_32.dll_bind
sub esp, 0xc
mov edi, eax
mov dword [esp + 4], 0x1608
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
call sub.ws2_32.dll_WSAGetLastError
xor edx, edx
test edi, edi
mov dword [esp + 4], str.Could_not_bind_IPv6_address__LastError:__d__n
sete dl
mov dword [esp + 8], eax
mov edi, edx
mov dword [esp], edi
call fcn.00465cf0
lea eax, [ebp - 0x48]
mov dword [esp], esi
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0x1b
mov dword [esp + 4], 0x29
mov dword [ebp - 0x4c], 2
mov dword [ebp - 0x48], 4
call sub.ws2_32.dll_getsockopt
sub esp, 0x14
mov dword [esp + 4], 0x160d
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
call sub.ws2_32.dll_WSAGetLastError
mov dword [esp], edi
mov dword [esp + 8], eax
mov dword [esp + 4], str.getsockopt_IPV6_ONLY__failed__LastError:__d__n
call fcn.00465cf0
mov dword [esp + 4], 0x160e
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
mov ecx, dword [ebp - 0x4c]
xor eax, eax
mov dword [esp + 4], str.IPV6_V6ONLY_is_enabled_after_bind_n
test ecx, ecx
sete al
mov dword [esp], eax
call fcn.00465cf0
mov dword [esp + 8], 6
mov dword [esp + 4], 1
mov dword [esp], 2
call sub.ws2_32.dll_socket
sub esp, 0xc
mov edi, eax
mov dword [esp + 4], 0x1611
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.Could_not_create_IPv4_socket__LastError:__d__n
mov dword [esp + 8], eax
xor eax, eax
cmp edi, 0xffffffff
setne al
mov dword [esp], eax
call fcn.00465cf0
mov eax, dword [ebp - 0x48]
mov dword [esp], edi
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 8], 4
mov dword [esp + 4], 0xffff
mov dword [ebp - 0x4c], 1
call sub.ws2_32.dll_setsockopt
sub esp, 0x14
mov ebx, eax
mov dword [esp + 4], 0x1615
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.Could_not_set_SO_REUSEADDR_on_IPv4_socket__LastError:__d__n
mov dword [esp + 8], eax
xor eax, eax
test ebx, ebx
sete al
mov dword [esp], eax
call fcn.00465cf0
mov dword [esp], 0xdeadbeef
call sub.ws2_32.dll_WSASetLastError
lea eax, [ebp - 0x44]
sub esp, 4
mov dword [esp + 8], 0x10
mov dword [esp + 4], eax
mov dword [esp], edi
call sub.ws2_32.dll_bind
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0x1619
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
mov dword [esp], ebx
mov dword [esp + 4], str.bind_succeeded_unexpectedly_for_the_IPv4_socket_n
call fcn.00465cf0
mov dword [esp + 4], 0x161a
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
call sub.ws2_32.dll_WSAGetLastError
mov ebx, eax
call sub.ws2_32.dll_WSAGetLastError
mov dword [esp + 8], ebx
cmp eax, 0x271d
mov dword [esp + 4], str.Expected_10013__got__d_n
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00465cf0
cmp edi, 0xffffffff
jne 0x423d90
cmp esi, 0xffffffff
je 0x423d82
mov dword [esp], esi
call sub.ws2_32.dll_closesocket
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], edi
call sub.ws2_32.dll_closesocket
sub esp, 4
jmp 0x423d72
mov dword [esp + 4], 0x15a4
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
call sub.ws2_32.dll_WSAGetLastError
mov dword [esp], str.Could_not_create_IPv6_socket__LastError:__d__n
mov dword [esp + 4], eax
call fcn.00465de0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret