Function at 0x45b310
Capabilities:
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x19c
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 [ebp - 0x16c], 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]
mov ecx, 1
lea edx, [ebp - 0x174]
sub esp, 0x10
mov dword [ebp - 0x148], eax
lea eax, [ebp - 0x178]
call fcn.00420e30
mov dword [esp], 0xdeadbeef
call sub.ws2_32.dll_WSASetLastError
lea eax, [ebp - 0x158]
sub esp, 4
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x16c]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x178]
mov dword [esp + 0x18], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.ws2_32.dll_WSARecv
sub esp, 0x1c
mov ebx, eax
mov dword [esp + 4], 0x2c12
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 ebx, 0x470694
mov dword [esp], eax
mov edi, ebx
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 0x45b494
mov dword [esp + 4], 0x2c13
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
call sub.ws2_32.dll_WSAGetLastError
mov esi, eax
call sub.ws2_32.dll_WSAGetLastError
mov dword [esp + 8], esi
cmp eax, 0x2726
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 0x45b450
mov dword [esp], 0xdeadbeef
lea eax, [ebp - 0x165]
mov edi, ebx
mov dword [ebp - 0x15c], eax
mov dword [ebp - 0x160], 0
call sub.ws2_32.dll_WSASetLastError
lea eax, [ebp - 0x158]
sub esp, 4
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x16c]
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x160]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x178]
mov dword [esp + 0x18], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp], eax
call sub.ws2_32.dll_WSARecv
sub esp, 0x1c
mov esi, eax
mov dword [esp + 4], 0x2c19
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
xor eax, eax
cmp esi, 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 0x45b5a4
mov dword [esp + 4], 0x2c1a
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, 0x2726
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 0x45b560
mov dword [esp], 0xdeadbeef
call sub.ws2_32.dll_WSASetLastError
lea eax, [ebp - 0x158]
sub esp, 4
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x16c]
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x160]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x178]
mov dword [esp + 0x18], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov dword [esp], eax
call sub.ws2_32.dll_WSARecv
sub esp, 0x1c
mov ebx, eax
mov dword [esp + 4], 0x2c1e
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], 0x2c1f
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, 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 - 0x174]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 5
mov dword [esp + 4], str.data
mov dword [esp], eax
call sub.ws2_32.dll_send
sub esp, 0x10
mov ebx, eax
mov dword [esp + 4], 0x2c22
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 eax, dword [ebp - 0x148]
mov dword [esp + 4], 0x3e8
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_WaitForSingleObject]
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0x2c25
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
xor eax, eax
test ebx, ebx
mov dword [esp + 4], str.wait_failed_n
sete al
lea ebx, [ebp - 0x170]
mov dword [esp], eax
call fcn.00465cf0
lea eax, [ebp - 0x158]
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x178]
mov dword [esp + 0xc], 0
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetOverlappedResult]
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0x2c27
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 + 4], str.got_error__u_n
mov dword [esp], esi
mov dword [esp + 8], eax
call fcn.00465cf0
mov dword [esp + 4], 0x2c28
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
mov eax, dword [ebp - 0x170]
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
mov dword [esp], 0xdeadbeef
call sub.ws2_32.dll_WSASetLastError
lea eax, [ebp - 0x158]
sub esp, 4
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x16c]
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x160]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x178]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x18], 0
mov dword [esp + 8], 1
mov dword [esp], eax
call sub.ws2_32.dll_WSARecv
sub esp, 0x1c
mov ebx, eax
mov dword [esp + 4], 0x2c2c
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], 0x2c2d
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
mov eax, dword [ebp - 0x170]
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
mov eax, dword [ebp - 0x178]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.ws2_32.dll_recv
sub esp, 0x10
mov ebx, eax
mov dword [esp + 4], 0x2c30
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
lea eax, [ebp - 0x165]
mov dword [esp + 0xc], 0
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x178]
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], 0x2c33
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], 0x2c34
mov dword [esp], str..._wine_dlls_ws2_32_tests_sock.c
call fcn.00465a80
lea eax, [ebp - 0x165]
shr eax, 0x10
je 0x45bb13
lea eax, [ebp - 0x165]
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 0x45ba04
cmp ebx, 0xffffffff
je 0x45bb50
mov byte [ebp - 0x144], 0x22
lea edx, [ebp - 0x143]
lea ecx, [ebp - 0x165]
lea edi, [ebp - 0x21]
lea esi, [ebx - 1]
test ebx, ebx
jle 0x45b9d7
lea esi, [esi]
cmp edx, edi
ja 0x45b9d7
add ecx, 1
movzx eax, byte [ecx - 1]
cmp al, 0xd
je 0x45ba90
jg 0x45ba73
cmp al, 9
je 0x45bb00
cmp al, 0xa
jne 0x45bac0
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 0x45b990
mov byte [edx], 0x22
lea eax, [edx + 1]
test esi, esi
jle 0x45b9f1
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 - 0x165]
mov edi, str.data
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
mov eax, dword [ebp - 0x178]
mov dword [esp], eax
call sub.ws2_32.dll_closesocket
mov eax, dword [ebp - 0x174]
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 0x45baa3
cmp al, 0x5c
jne 0x45bac0
mov eax, 0x5c5c
add edx, 2
mov ebx, esi
mov word [edx - 2], ax
jmp 0x45b9d0
mov eax, 0x725c
add edx, 2
mov ebx, esi
mov word [edx - 2], ax
jmp 0x45b9d0
mov eax, 0x225c
add edx, 2
mov ebx, esi
mov word [edx - 2], ax
jmp 0x45b9d0
lea ebx, [eax - 0x20]
cmp bl, 0x5e
jbe 0x45bb40
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 0x45b9d0
mov eax, 0x745c
add edx, 2
mov ebx, esi
mov word [edx - 2], ax
jmp 0x45b9d0
lea eax, [ebp - 0x165]
mov dword [esp], str._04x
mov dword [ebp - 0x17c], eax
movzx eax, word [ebp - 0x17c]
mov dword [esp + 4], eax
call fcn.00459840
mov edx, eax
jmp 0x45ba04
mov byte [edx], al
mov ebx, esi
add edx, 1
jmp 0x45b9d0
xor ebx, ebx
cmp byte [ebp - 0x165], 0
je 0x45b96d
nop
add ebx, 1
cmp byte [ebp + ebx - 0x165], 0
jne 0x45bb60
jmp 0x45b96d