Function at 0x45d470
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Get local ipv4 addresses
Get socket information
Receive data
Receive data on socket
Send data
Send data on socket
Start tcp server

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
lea esi, [ebp - 0x1a4]
push ebx
sub esp, 0x1fc
mov dword [ebp - 0x168], 0x7fda2e11
mov dword [ebp - 0x164], 0x436f8630
mov dword [ebp - 0x160], 0x36f531a0
mov dword [ebp - 0x15c], 0x57c1eea6
mov dword [ebp - 0x158], 0
mov dword [ebp - 0x154], 0
mov dword [ebp - 0x150], 0
mov dword [ebp - 0x14c], 0
mov dword [ebp - 0x148], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov dword [esp], 0
call dword [sym.imp.kernel32.dll_CreateEventW]
sub esp, 0x10
mov dword [ebp - 0x148], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov dword [esp], 2
call sub.ws2_32.dll_socket
sub esp, 0xc
mov edi, eax
mov dword [ebp - 0x1bc], eax
mov dword [esp + 4], 0x1e75
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_connector_socket__error__u_n
mov dword [esp + 8], eax
xor eax, eax
cmp edi, 0xffffffff
setne al
mov dword [esp], eax
call fcn.00465cf0
lea eax, [ebp - 0x1ac]
mov dword [esp + 0x18], esi
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x168]
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], 4
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], eax
mov dword [esp + 4], 0xc8000006
mov dword [esp], edi
call sub.ws2_32.dll_WSAIoctl
sub esp, 0x24
test eax, eax
jne 0x45e983
mov dword [esp + 8], 0
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], 0x1e81
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_listener_socket__error__d_n
mov dword [esp + 8], eax
xor eax, eax
cmp edi, 0xffffffff
setne al
mov dword [esp], eax
call fcn.00465cf0
mov dword [esp], str.127.0.0.1
mov edx, 2
xor eax, eax
mov word [ebp - 0x178], dx
mov dword [ebp - 0x176], 0
mov dword [ebp - 0x172], 0
mov dword [ebp - 0x16e], 0
mov word [ebp - 0x16a], ax
call sub.ws2_32.dll_inet_addr
sub esp, 4
mov dword [ebp - 0x174], eax
lea eax, [ebp - 0x178]
mov dword [esp], edi
mov dword [esp + 8], 0x10
mov dword [esp + 4], eax
call sub.ws2_32.dll_bind
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0x1e87
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 ebx, ebx
sete al
mov dword [esp], eax
call fcn.00465cf0
lea eax, [ebp - 0x1a8]
mov dword [esp], edi
mov dword [esp + 8], eax
lea eax, [ebp - 0x198]
mov dword [esp + 4], eax
mov dword [ebp - 0x1a8], 0x10
call sub.ws2_32.dll_getsockname
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0x1e8a
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_get_address__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], edi
mov dword [esp + 4], 1
mov dword [ebp - 0x1c0], edi
call sub.ws2_32.dll_listen
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0x1e8c
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_listen__error__u_n
mov dword [esp + 8], eax
xor eax, eax
test ebx, ebx
lea ebx, [ebp - 0x158]
sete al
mov dword [esp], eax
call fcn.00465cf0
mov dword [esp], 0xdeadbeef
call sub.ws2_32.dll_WSASetLastError
sub esp, 4
mov dword [esp + 4], ebx
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp], 0xffffffff
call dword [ebp - 0x1ac]
sub esp, 0x10
mov edi, eax
mov dword [esp + 4], 0x1e90
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
xor eax, eax
test edi, edi
mov dword [esp + 4], str.expected_failure_n
sete al
mov dword [esp], eax
call fcn.00465cf0
mov dword [esp + 4], 0x1e91
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
call sub.ws2_32.dll_WSAGetLastError
mov edi, eax
call sub.ws2_32.dll_WSAGetLastError
mov dword [esp + 8], edi
cmp eax, 0x2736
mov dword [esp + 4], str.got_error__u_n
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00465cf0
mov dword [esp], 0xdeadbeef
call sub.ws2_32.dll_WSASetLastError
mov eax, dword [ebp - 0x1bc]
sub esp, 4
mov dword [esp + 4], ebx
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp], eax
call dword [ebp - 0x1ac]
sub esp, 0x10
mov edi, eax
mov dword [esp + 4], 0x1e95
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
xor eax, eax
test edi, edi
mov dword [esp + 4], str.expected_failure_n
sete al
mov dword [esp], eax
call fcn.00465cf0
mov dword [esp + 4], 0x1e96
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
call sub.ws2_32.dll_WSAGetLastError
mov edi, eax
call sub.ws2_32.dll_WSAGetLastError
mov dword [esp + 8], edi
cmp eax, 0x2749
mov dword [esp + 4], str.got_error__u_n
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00465cf0
mov eax, dword [ebp - 0x1bc]
lea ecx, [ebp - 0x198]
mov dword [esp + 8], 0x10
mov dword [esp + 4], ecx
mov dword [esp], eax
call sub.ws2_32.dll_connect
sub esp, 0xc
mov edi, eax
mov dword [esp + 4], 0x1e99
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_connect__error__u_n
mov dword [esp + 8], eax
xor eax, eax
test edi, edi
sete al
mov dword [esp], eax
call fcn.00465cf0
mov edi, dword [ebp - 0x1c0]
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], edi
call sub.ws2_32.dll_accept
sub esp, 0xc
mov edi, eax
mov dword [ebp - 0x1c4], eax
mov dword [esp + 4], 0x1e9b
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_accept__error__u_n
mov dword [esp + 8], eax
xor eax, eax
cmp edi, 0xffffffff
setne al
mov dword [esp], eax
call fcn.00465cf0
mov dword [esp], 0xdeadbeef
call sub.ws2_32.dll_WSASetLastError
mov eax, dword [ebp - 0x1bc]
sub esp, 4
mov dword [esp + 4], ebx
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp], eax
call dword [ebp - 0x1ac]
sub esp, 0x10
mov edi, eax
mov dword [esp + 4], 0x1e9f
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
xor eax, eax
test edi, edi
mov dword [esp + 4], str.expected_failure_n
sete al
mov dword [esp], eax
call fcn.00465cf0
mov dword [esp + 4], 0x1ea0
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
call sub.ws2_32.dll_WSAGetLastError
mov edi, eax
call sub.ws2_32.dll_WSAGetLastError
mov dword [esp + 8], edi
cmp eax, 0x3e5
mov dword [esp + 4], str.got_error__u_n
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00465cf0
mov eax, dword [ebp - 0x148]
mov dword [esp + 4], 0x3e8
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_WaitForSingleObject]
sub esp, 8
mov edi, eax
mov dword [esp + 4], 0x1ea3
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
xor eax, eax
test edi, edi
mov dword [esp + 4], str.wait_timed_out_n
sete al
mov edi, 0x470694
mov dword [esp], eax
call fcn.00465cf0
mov dword [esp + 8], esi
mov esi, dword [ebp - 0x1bc]
mov dword [ebp - 0x1a4], 0xdeadbeef
mov dword [esp + 4], ebx
mov dword [esp], esi
mov dword [esp + 0xc], 0
call dword [sym.imp.kernel32.dll_GetOverlappedResult]
sub esp, 0x10
mov ebx, eax
mov dword [esp + 4], 0x1ea6
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
mov dword [esp], ebx
mov dword [esp + 4], str.got_error__u_n
mov dword [esp + 8], eax
call fcn.00465cf0
mov dword [esp + 4], 0x1ea7
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
mov eax, dword [ebp - 0x1a4]
mov dword [esp + 4], str.got_size__u_n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00465cf0
lea eax, [ebp - 0x198]
mov dword [esp], esi
mov dword [esp + 8], 0x10
mov dword [esp + 4], eax
call sub.ws2_32.dll_connect
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0x1eaa
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
xor eax, eax
cmp ebx, 0xffffffff
mov dword [esp + 4], str.expected_failure_n
sete al
mov dword [esp], eax
call fcn.00465cf0
mov dword [esp + 4], 0x1eab
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, 0x2748
mov dword [esp + 4], str.got_error__u_n
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00465cf0
mov dword [esp], 0xdeadbeef
call sub.ws2_32.dll_WSASetLastError
sub esp, 4
mov dword [esp], esi
mov dword [esp + 0xc], 0
mov dword [esp + 8], 5
mov dword [esp + 4], 0x4732b6
call sub.ws2_32.dll_send
sub esp, 0x10
mov ebx, eax
mov dword [esp + 4], 0x1eaf
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
xor eax, eax
cmp ebx, 0xffffffff
mov dword [esp + 4], str.expected_failure_n
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
jmp 0x45dc34
mov dword [esp + 4], 0x1eb0
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, 0x274a
mov dword [esp + 4], str.got_error__u_n
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00465cf0
call fcn.00465eb0
call fcn.00465e90
test eax, eax
jne 0x45dbf0
mov esi, dword [ebp - 0x1c4]
lea eax, [ebp - 0x19d]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 5
mov dword [esp + 4], eax
mov dword [esp], esi
call sub.ws2_32.dll_recv
sub esp, 0x10
mov ebx, eax
mov dword [esp + 4], 0x1eb3
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.got__d_n
mov dword [esp], eax
call fcn.00465cf0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 5
mov dword [esp + 4], 0x4732b6
mov dword [esp], esi
call sub.ws2_32.dll_send
sub esp, 0x10
mov ebx, eax
mov dword [esp + 4], 0x1eb6
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
xor eax, eax
cmp ebx, 5
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.got__d_n
mov dword [esp], eax
call fcn.00465cf0
lea eax, [ebp - 0x19d]
mov dword [esp + 0xc], 0
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1bc]
mov dword [esp + 8], 5
mov dword [esp], eax
call sub.ws2_32.dll_recv
sub esp, 0x10
mov ebx, eax
mov dword [esp + 4], 0x1eb9
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
xor eax, eax
cmp ebx, 5
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.got__d_n
mov dword [esp], eax
call fcn.00465cf0
mov dword [esp + 4], 0x1eba
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
lea eax, [ebp - 0x19d]
shr eax, 0x10
mov dword [ebp - 0x1c8], eax
je 0x45de40
lea eax, [ebp - 0x19d]
mov dword [esp + 4], ebx
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_IsBadStringPtrA]
mov edx, str._invalid_
sub esp, 8
test eax, eax
jne 0x45de65
cmp ebx, 0xffffffff
je 0x45eb62
mov byte [ebp - 0x144], 0x22
lea edx, [ebp - 0x143]
lea ecx, [ebp - 0x19d]
lea edi, [ebp - 0x21]
lea esi, [ebx - 1]
test ebx, ebx
jle 0x45de07
lea esi, [esi]
cmp edx, edi
ja 0x45de07
add ecx, 1
movzx eax, byte [ecx - 1]
cmp al, 0xd
je 0x45e924
jg 0x45e863
cmp al, 9
je 0x45e940
cmp al, 0xa
jne 0x45e882
mov eax, 0x6e5c
add edx, 2
mov ebx, esi
mov word [edx - 2], ax
lea esi, [esi]
nop
lea esi, [ebx - 1]
test ebx, ebx
jg 0x45ddc0
mov byte [edx], 0x22
lea eax, [edx + 1]
test esi, esi
jle 0x45de21
mov ecx, 0x2e2e
mov byte [edx + 3], 0x2e
lea eax, [edx + 4]
mov word [edx + 1], cx
mov byte [eax], 0
lea eax, [ebp - 0x144]
mov dword [esp], eax
call fcn.00466a20
mov edx, eax
jmp 0x45de65
lea eax, [ebp - 0x19d]
mov dword [esp], str._04x
mov dword [ebp - 0x1cc], eax
movzx eax, word [ebp - 0x1cc]
mov dword [esp + 4], eax
call fcn.00459840
mov edx, eax
mov ecx, 5
lea esi, [ebp - 0x19d]
mov edi, 0x4732b6
repe cmpsb byte [esi], byte es:[edi]
mov dword [esp + 8], edx
mov dword [esp + 4], str.got__s_n
seta al
sbb al, 0
test al, al
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00465cf0
lea eax, [ebp - 0x1a8]
mov dword [ebp - 0x1a8], 0x10
mov dword [esp + 8], eax
lea eax, [ebp - 0x178]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1bc]
mov dword [esp], eax
call sub.ws2_32.dll_getpeername
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0x1ebe
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.got_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 + 4], 0x1ebf
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
mov eax, dword [ebp - 0x198]
cmp dword [ebp - 0x178], eax
je 0x45ea80
mov eax, 1
xor eax, 1
mov dword [esp + 4], str.address_didnt_match_n
mov dword [esp], eax
call fcn.00465cf0
lea eax, [ebp - 0x1a8]
mov dword [ebp - 0x1a8], 0x10
mov dword [esp + 8], eax
lea eax, [ebp - 0x188]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1bc]
mov dword [esp], eax
call sub.ws2_32.dll_getsockname
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0x1ec3
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.got_error__u_n
mov dword [esp + 8], eax
xor eax, eax
test ebx, ebx
sete al
mov dword [esp], eax
call fcn.00465cf0
lea eax, [ebp - 0x1a8]
mov dword [ebp - 0x1a8], 0x10
mov dword [esp + 8], eax
lea eax, [ebp - 0x178]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1c4]
mov dword [esp], eax
call sub.ws2_32.dll_getpeername
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0x1ec6
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.got_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 + 4], 0x1ec7
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
mov eax, dword [ebp - 0x188]
cmp dword [ebp - 0x178], eax
je 0x45ea40
mov eax, 1
xor eax, 1
mov dword [esp + 4], str.address_didnt_match_n
mov dword [esp], eax
call fcn.00465cf0
mov eax, dword [ebp - 0x1bc]
mov dword [esp], eax
call sub.ws2_32.dll_closesocket
mov eax, dword [ebp - 0x1c4]
sub esp, 4
mov dword [esp], eax
call sub.ws2_32.dll_closesocket
sub esp, 4
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 [ebp - 0x1bc], eax
mov dword [esp + 4], 0x1ecf
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 esi, 0xffffffff
setne al
mov dword [esp], eax
call fcn.00465cf0
lea eax, [ebp - 0x198]
mov dword [esp + 8], 0x10
mov dword [esp + 4], eax
mov dword [esp], esi
call sub.ws2_32.dll_connect
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0x1ed1
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_connect__error__u_n
mov dword [esp + 8], eax
xor eax, eax
test ebx, ebx
sete al
mov dword [esp], eax
call fcn.00465cf0
mov eax, dword [ebp - 0x1c0]
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.ws2_32.dll_accept
sub esp, 0xc
mov edi, eax
mov dword [ebp - 0x1c4], eax
mov dword [esp + 4], 0x1ed3
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
call sub.ws2_32.dll_WSAGetLastError
cmp edi, 0xffffffff
mov dword [esp + 4], str.failed_to_accept__error__u_n
mov dword [esp + 8], eax
setne al
movzx eax, al
mov dword [esp], eax
call fcn.00465cf0
mov dword [esp], 0xdeadbeef
call sub.ws2_32.dll_WSASetLastError
sub esp, 4
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], esi
call dword [ebp - 0x1ac]
sub esp, 0x10
mov ebx, eax
mov dword [esp + 4], 0x1ed7
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
mov dword [esp], ebx
mov dword [esp + 4], str.expected_success_n
call fcn.00465cf0
mov dword [esp + 4], 0x1ed8
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 edx, 1
test eax, eax
jne 0x45eb04
mov dword [esp], edx
mov dword [esp + 8], ebx
mov dword [esp + 4], str.got_error__u_n
call fcn.00465cf0
mov dword [esp], 0xdeadbeef
call sub.ws2_32.dll_WSASetLastError
mov eax, dword [ebp - 0x1bc]
sub esp, 4
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [ebp - 0x1ac]
sub esp, 0x10
mov ebx, eax
mov dword [esp + 4], 0x1edc
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
mov dword [esp], ebx
mov dword [esp + 4], str.expected_success_n
call fcn.00465cf0
mov dword [esp + 4], 0x1edd
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 edx, 1
test eax, eax
jne 0x45eaf0
mov dword [esp], edx
mov edi, 0x470694
mov dword [esp + 8], ebx
mov dword [esp + 4], str.got_error__u_n
call fcn.00465cf0
mov esi, dword [ebp - 0x1bc]
lea eax, [ebp - 0x198]
mov dword [esp + 8], 0x10
mov dword [esp + 4], eax
mov dword [esp], esi
call sub.ws2_32.dll_connect
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0x1ee0
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
xor eax, eax
cmp ebx, 0xffffffff
mov dword [esp + 4], str.expected_failure_n
sete al
mov dword [esp], eax
call fcn.00465cf0
mov dword [esp + 4], 0x1ee1
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, 0x2748
mov dword [esp + 4], str.got_error__u_n
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00465cf0
mov dword [esp], 0xdeadbeef
call sub.ws2_32.dll_WSASetLastError
sub esp, 4
mov dword [esp], esi
mov dword [esp + 0xc], 0
mov dword [esp + 8], 5
mov dword [esp + 4], 0x4732b6
call sub.ws2_32.dll_send
sub esp, 0x10
mov ebx, eax
mov dword [esp + 4], 0x1ee5
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
xor eax, eax
cmp ebx, 0xffffffff
mov dword [esp + 4], str.expected_failure_n
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
jmp 0x45e414
mov dword [esp + 4], 0x1ee6
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, 0x274a
mov dword [esp + 4], str.got_error__u_n
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00465cf0
call fcn.00465eb0
call fcn.00465e90
test eax, eax
jne 0x45e3d0
mov esi, dword [ebp - 0x1c4]
lea eax, [ebp - 0x19d]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 5
mov dword [esp + 4], eax
mov dword [esp], esi
call sub.ws2_32.dll_recv
sub esp, 0x10
mov ebx, eax
mov dword [esp + 4], 0x1ee9
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.got__d_n
mov dword [esp], eax
call fcn.00465cf0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 5
mov dword [esp + 4], 0x4732b6
mov dword [esp], esi
call sub.ws2_32.dll_send
sub esp, 0x10
mov ebx, eax
mov dword [esp + 4], 0x1eec
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
xor eax, eax
cmp ebx, 5
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.got__d_n
mov dword [esp], eax
call fcn.00465cf0
lea eax, [ebp - 0x19d]
mov dword [esp + 0xc], 0
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1bc]
mov dword [esp + 8], 5
mov dword [esp], eax
call sub.ws2_32.dll_recv
sub esp, 0x10
mov ebx, eax
mov dword [esp + 4], 0x1eef
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
xor eax, eax
cmp ebx, 5
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.got__d_n
mov dword [esp], eax
call fcn.00465cf0
mov dword [esp + 4], 0x1ef0
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
mov eax, dword [ebp - 0x1c8]
test eax, eax
je 0x45eac0
lea eax, [ebp - 0x19d]
mov dword [esp + 4], ebx
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_IsBadStringPtrA]
mov edx, str._invalid_
sub esp, 8
test eax, eax
jne 0x45e614
cmp ebx, 0xffffffff
je 0x45eb40
lea edx, [ebp - 0x143]
lea edi, [ebp - 0x21]
mov byte [ebp - 0x144], 0x22
lea ecx, [ebp - 0x19d]
lea esi, [ebx - 1]
cmp edx, edi
ja 0x45e5e7
lea esi, [esi]
lea esi, [esi]
test ebx, ebx
jle 0x45e5e7
add ecx, 1
movzx eax, byte [ecx - 1]
cmp al, 0xd
je 0x45e970
jg 0x45e840
cmp al, 9
je 0x45e8c0
cmp al, 0xa
jne 0x45e8d3
mov eax, 0x6e5c
add edx, 2
mov ebx, esi
mov word [edx - 2], ax
lea esi, [esi]
nop
lea esi, [ebx - 1]
cmp edx, edi
jbe 0x45e5a0
mov byte [edx], 0x22
lea eax, [edx + 1]
test esi, esi
jle 0x45e601
mov ecx, 0x2e2e
mov byte [edx + 3], 0x2e
lea eax, [edx + 4]
mov word [edx + 1], cx
mov byte [eax], 0
lea eax, [ebp - 0x144]
mov dword [esp], eax
call fcn.00466a20
mov edx, eax
mov ecx, 5
lea esi, [ebp - 0x19d]
mov edi, 0x4732b6
repe cmpsb byte [esi], byte es:[edi]
mov dword [esp + 8], edx
mov dword [esp + 4], str.got__s_n
seta al
sbb al, 0
test al, al
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00465cf0
lea eax, [ebp - 0x1a8]
mov dword [ebp - 0x1a8], 0x10
mov dword [esp + 8], eax
lea eax, [ebp - 0x178]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1bc]
mov dword [esp], eax
call sub.ws2_32.dll_getpeername
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0x1ef4
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.got_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 + 4], 0x1ef5
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
mov eax, dword [ebp - 0x198]
cmp dword [ebp - 0x178], eax
je 0x45ea02
mov eax, 1
xor eax, 1
mov dword [esp + 4], str.address_didnt_match_n
mov dword [esp], eax
call fcn.00465cf0
lea eax, [ebp - 0x1a8]
mov dword [ebp - 0x1a8], 0x10
mov dword [esp + 8], eax
lea eax, [ebp - 0x188]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1bc]
mov dword [esp], eax
call sub.ws2_32.dll_getsockname
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0x1ef9
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.got_error__u_n
mov dword [esp + 8], eax
xor eax, eax
test ebx, ebx
sete al
mov dword [esp], eax
call fcn.00465cf0
lea eax, [ebp - 0x1a8]
mov dword [ebp - 0x1a8], 0x10
mov dword [esp + 8], eax
lea eax, [ebp - 0x178]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1c4]
mov dword [esp], eax
call sub.ws2_32.dll_getpeername
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0x1efc
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.got_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 + 4], 0x1efd
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
mov eax, dword [ebp - 0x188]
cmp dword [ebp - 0x178], eax
je 0x45e9c5
mov eax, 1
xor eax, 1
mov dword [esp + 4], str.address_didnt_match_n
mov dword [esp], eax
call fcn.00465cf0
mov eax, dword [ebp - 0x1bc]
mov dword [esp], eax
call sub.ws2_32.dll_closesocket
mov eax, dword [ebp - 0x1c4]
sub esp, 4
mov dword [esp], eax
call sub.ws2_32.dll_closesocket
mov eax, dword [ebp - 0x1c0]
sub esp, 4
mov dword [esp], eax
call sub.ws2_32.dll_closesocket
mov eax, dword [ebp - 0x148]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_CloseHandle]
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
cmp al, 0x22
je 0x45e953
cmp al, 0x5c
jne 0x45e8d3
mov eax, 0x5c5c
add edx, 2
mov ebx, esi
mov word [edx - 2], ax
jmp 0x45e5e0
cmp al, 0x22
je 0x45e911
cmp al, 0x5c
jne 0x45e882
mov eax, 0x5c5c
add edx, 2
mov ebx, esi
mov word [edx - 2], ax
jmp 0x45de00
lea ebx, [eax - 0x20]
cmp bl, 0x5e
jbe 0x45eb20
mov ebx, 0x785c
add edx, 4
mov word [edx - 4], bx
mov ebx, eax
and eax, 0xf
shr bl, 4
movzx eax, byte [eax + str.0123456789abcdef]
movzx ebx, bl
movzx ebx, byte [ebx + str.0123456789abcdef]
mov byte [edx - 1], al
mov byte [edx - 2], bl
mov ebx, esi
jmp 0x45de00
mov eax, 0x745c
add edx, 2
mov ebx, esi
mov word [edx - 2], ax
jmp 0x45e5e0
lea ebx, [eax - 0x20]
cmp bl, 0x5e
jbe 0x45eb30
mov ebx, 0x785c
add edx, 4
mov word [edx - 4], bx
mov ebx, eax
and eax, 0xf
shr bl, 4
movzx eax, byte [eax + str.0123456789abcdef]
movzx ebx, bl
movzx ebx, byte [ebx + str.0123456789abcdef]
mov byte [edx - 1], al
mov byte [edx - 2], bl
mov ebx, esi
jmp 0x45e5e0
mov eax, 0x225c
add edx, 2
mov ebx, esi
mov word [edx - 2], ax
jmp 0x45de00
mov eax, 0x725c
add edx, 2
mov ebx, esi
mov word [edx - 2], ax
jmp 0x45de00
mov eax, 0x745c
add edx, 2
mov ebx, esi
mov word [edx - 2], ax
jmp 0x45de00
mov eax, 0x225c
add edx, 2
mov ebx, esi
mov word [edx - 2], ax
jmp 0x45e5e0
mov eax, 0x725c
add edx, 2
mov ebx, esi
mov word [edx - 2], ax
jmp 0x45e5e0
mov dword [esp + 4], 0x1e7b
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
call sub.ws2_32.dll_WSAGetLastError
mov dword [esp], str.WSAIoctl_failed_to_get_DisconnectEx__error__d_n
mov dword [esp + 4], eax
call fcn.00465e00
mov eax, dword [ebp - 0x1bc]
mov dword [esp], eax
call sub.ws2_32.dll_closesocket
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebp - 0x184]
cmp dword [ebp - 0x174], eax
jne 0x45e7da
mov eax, dword [ebp - 0x180]
cmp dword [ebp - 0x170], eax
jne 0x45e7da
mov eax, dword [ebp - 0x17c]
cmp dword [ebp - 0x16c], eax
jne 0x45e7da
xor eax, eax
jmp 0x45e7df
mov eax, dword [ebp - 0x194]
cmp dword [ebp - 0x174], eax
jne 0x45e6d2
mov eax, dword [ebp - 0x190]
cmp dword [ebp - 0x170], eax
jne 0x45e6d2
mov eax, dword [ebp - 0x18c]
cmp dword [ebp - 0x16c], eax
jne 0x45e6d2
xor eax, eax
jmp 0x45e6d7
mov eax, dword [ebp - 0x184]
cmp dword [ebp - 0x174], eax
jne 0x45e02b
mov eax, dword [ebp - 0x180]
cmp dword [ebp - 0x170], eax
jne 0x45e02b
mov eax, dword [ebp - 0x17c]
cmp dword [ebp - 0x16c], eax
jne 0x45e02b
xor eax, eax
jmp 0x45e030
mov eax, dword [ebp - 0x194]
cmp dword [ebp - 0x174], eax
jne 0x45df23
mov eax, dword [ebp - 0x190]
cmp dword [ebp - 0x170], eax
jne 0x45df23
mov eax, dword [ebp - 0x18c]
cmp dword [ebp - 0x16c], eax
jne 0x45df23
xor eax, eax
jmp 0x45df28
lea eax, [ebp - 0x19d]
mov dword [esp], str._04x
mov dword [ebp - 0x1c8], eax
movzx eax, word [ebp - 0x1c8]
mov dword [esp + 4], eax
call fcn.00459840
mov edx, eax
jmp 0x45e614
call sub.ws2_32.dll_WSAGetLastError
xor edx, edx
cmp eax, 0xdeadbeef
sete dl
jmp 0x45e299
call sub.ws2_32.dll_WSAGetLastError
xor edx, edx
cmp eax, 0xdeadbeef
sete dl
jmp 0x45e1f9
mov byte [edx], al
mov ebx, esi
add edx, 1
jmp 0x45de00
mov byte [edx], al
mov ebx, esi
add edx, 1
jmp 0x45e5e0
xor ebx, ebx
cmp byte [ebp - 0x19d], 0
je 0x45e579
nop
add ebx, 1
cmp byte [ebp + ebx - 0x19d], 0
jne 0x45eb50
jmp 0x45e579
xor ebx, ebx
cmp byte [ebp - 0x19d], 0
je 0x45dda0
add ebx, 1
cmp byte [ebp + ebx - 0x19d], 0
jne 0x45eb71
jmp 0x45dda0