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

Disassembly:
sub esp, 0x844
mov edx, dword [esp + 0x84c]
push ebx
push ebp
push esi
push edi
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov ebp, dword [esp + 0x860]
xor ebx, ebx
not ecx
dec ecx
mov edi, ebp
mov esi, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, edx
mov byte [esp + 0x14], bl
mov byte [esp + 0x15], bl
lea esi, [esi + ecx + 0x39]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, ebp
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, ebp
lea eax, [edx + ecx + 2]
or ecx, 0xffffffff
mov dword [esp + 0x10], eax
xor eax, eax
repne scasb al, byte es:[edi]
mov eax, esi
cdq
and edx, 0xff
add eax, edx
mov edx, esi
sar eax, 8
and edx, 0x800000ff
mov byte [esp + 0x16], al
not ecx
jns 0x40306b
dec edx
or edx, 0xffffff00
inc edx
mov eax, ecx
mov byte [esp + 0x17], dl
and eax, 0x800000ff
mov byte [esp + 0x18], 0xff
mov byte [esp + 0x19], 0x53
mov byte [esp + 0x1a], 0x4d
mov byte [esp + 0x1b], 0x42
mov byte [esp + 0x1c], 0x73
mov byte [esp + 0x1d], bl
mov byte [esp + 0x1e], bl
mov byte [esp + 0x1f], bl
mov byte [esp + 0x20], bl
mov byte [esp + 0x21], 0x18
mov byte [esp + 0x22], 1
mov byte [esp + 0x23], 0x20
mov byte [esp + 0x24], bl
mov byte [esp + 0x25], bl
mov byte [esp + 0x26], bl
mov byte [esp + 0x27], bl
mov byte [esp + 0x28], bl
mov byte [esp + 0x29], bl
mov byte [esp + 0x2a], bl
mov byte [esp + 0x2b], bl
mov byte [esp + 0x2c], bl
mov byte [esp + 0x2d], bl
mov byte [esp + 0x2e], bl
mov byte [esp + 0x2f], bl
mov byte [esp + 0x30], bl
mov byte [esp + 0x31], bl
mov byte [esp + 0x32], bl
mov byte [esp + 0x33], 0x28
mov byte [esp + 0x34], bl
mov byte [esp + 0x35], bl
mov byte [esp + 0x36], bl
mov byte [esp + 0x37], bl
mov byte [esp + 0x38], 0xa
mov byte [esp + 0x39], 0xff
mov byte [esp + 0x3a], bl
mov byte [esp + 0x3b], bl
mov byte [esp + 0x3c], bl
mov byte [esp + 0x3d], 4
mov byte [esp + 0x3e], 0x11
mov byte [esp + 0x3f], 2
mov byte [esp + 0x40], bl
mov byte [esp + 0x41], bl
mov byte [esp + 0x42], bl
mov byte [esp + 0x43], bl
mov byte [esp + 0x44], bl
mov byte [esp + 0x45], bl
mov byte [esp + 0x46], bl
jns 0x403149
dec eax
or eax, 0xffffff00
inc eax
mov byte [esp + 0x47], al
mov eax, ecx
cdq
and edx, 0xff
mov byte [esp + 0x49], bl
add eax, edx
mov byte [esp + 0x4a], bl
sar eax, 8
mov byte [esp + 0x48], al
mov eax, dword [esp + 0x10]
mov ecx, eax
mov byte [esp + 0x4b], bl
and ecx, 0x800000ff
mov byte [esp + 0x4c], bl
jns 0x403185
dec ecx
or ecx, 0xffffff00
inc ecx
cdq
and edx, 0xff
add esi, 4
add eax, edx
push esi
sar eax, 8
mov byte [esp + 0x51], cl
mov byte [esp + 0x52], al
call fcn.00406bae
mov edx, eax
mov ecx, esi
shr ecx, 2
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
mov ecx, esi
lea esi, [esp + 0x18]
and ecx, 3
add esp, 4
rep stosb byte es:[edi], al
mov ecx, 0xe
mov edi, edx
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
or ecx, 0xffffffff
mov edi, ebp
xor eax, eax
mov dword [esp + 0x10], edx
repne scasb al, byte es:[edi]
not ecx
lea edi, [edx + 0x3b]
mov edx, ecx
mov esi, ebp
push ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x860]
or ecx, 0xffffffff
mov edi, esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, ebp
mov edx, ecx
or ecx, 0xffffffff
inc edx
repne scasb al, byte es:[edi]
not ecx
mov eax, edx
mov edx, dword [esp + 0x14]
dec ecx
lea edi, [ecx + edx + 0x3c]
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x860]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, ebp
mov esi, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea ecx, [esi + ecx + 0x3d]
mov esi, dword [esp + 0x85c]
push ecx
push edx
push esi
call sub.WS2_32.dll_send
mov edx, dword [esp + 0x10]
push edx
call fcn.00407020
add esp, 4
lea eax, [esp + 0x54]
push ebx
push 0x800
push eax
push esi
call sub.WS2_32.dll_recv
cmp byte [esp + 0x58], 0xff
jne 0x40328a
cmp byte [esp + 0x5d], bl
jne 0x40328a
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x844
ret
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x844
ret