Function at 0x422016
Capabilities:
Send data
Send data on socket

Disassembly:
push ebp
lea ebp, [esp - 0x48]
sub esp, 0xb4
mov eax, dword [0x78e580]
xor eax, ebp
mov dword [ebp + 0x44], eax
mov eax, dword [ebp + 0x54]
mov ecx, dword [ebp + 0x78]
push ebx
mov ebx, dword [ebp + 0x50]
push esi
mov esi, dword [ebp + 0x7c]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp + 0x74]
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x44], esi
push edi
mov edi, dword [ebp + 0x5c]
test eax, eax
je 0x422056
and dword [eax], 0
call fcn.00442170
push esi
push ebx
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], edx
call fcn.00420330
pop ecx
pop ecx
test eax, eax
je 0x422236
push esi
push ebx
call fcn.004203a6
pop ecx
pop ecx
test eax, eax
je 0x422236
push esi
push dword [ebp - 0x58]
call fcn.00416619
pop ecx
pop ecx
test eax, eax
jne 0x422236
mov ebx, dword [ebp + 0x58]
cmp edi, 0xffffffff
jne 0x4220ab
xor edi, edi
cmp dword [ebx], edi
je 0x4220ab
inc edi
cmp dword [ebx + edi*8], 0
jne 0x4220a4
mov eax, dword [ebp + 0x64]
cmp eax, 0xffffffff
jne 0x4220c5
mov ecx, dword [ebp + 0x60]
xor eax, eax
test ecx, ecx
je 0x4220c5
cmp dword [ecx + eax*4], 0
je 0x4220c5
inc eax
jmp 0x4220bc
xor edx, edx
inc edx
test edi, edi
jne 0x4220de
lea ecx, [ebp - 0x3d]
mov byte [ebp - 0x3d], 0
mov dword [ebp - 0x6c], ecx
lea ebx, [ebp - 0x6c]
mov dword [ebp - 0x68], edx
mov edi, edx
test eax, eax
je 0x4220f5
push str.GSocketControlMessage_not_supported_on_Windows
call fcn.00451b5b
pop ecx
push eax
push 0xf
jmp 0x422227
mov eax, edi
shl eax, 3
call fcn.004b6620
mov eax, esp
xor edx, edx
mov dword [ebp - 0x50], eax
test edi, edi
jle 0x42212c
sub eax, ebx
lea ecx, [ebx + 4]
mov dword [ebp - 0x4c], eax
mov ebx, eax
mov esi, esp
mov eax, dword [ecx - 4]
mov dword [ebx + ecx], eax
mov eax, dword [ecx]
lea ecx, [ecx + 8]
mov dword [esi + edx*8], eax
inc edx
cmp edx, edi
jl 0x422116
mov esi, dword [ebp - 0x44]
mov edx, dword [ebp - 0x48]
xor ecx, ecx
mov dword [ebp - 0x44], ecx
test edx, edx
je 0x422165
push edx
call fcn.004169a7
push esi
mov dword [ebp - 0x44], eax
lea eax, [ebp - 0x3c]
push 0x80
push eax
mov eax, dword [ebp - 0x48]
push eax
call fcn.00427240
add esp, 0x14
test eax, eax
je 0x422236
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x48]
mov ebx, dword [ebp - 0x54]
mov eax, dword [ebx + 0xc]
push 0
push 0
test edx, edx
je 0x42218e
push ecx
lea ecx, [ebp - 0x3c]
push ecx
push dword [ebp + 0x68]
lea ecx, [ebp - 0x4c]
push ecx
push edi
push dword [ebp - 0x50]
push dword [eax + 0xc]
call dword [sym.imp.WS2_32.dll_WSASendTo]
jmp 0x4221a2
push dword [ebp + 0x68]
lea ecx, [ebp - 0x4c]
push ecx
push edi
push dword [ebp - 0x50]
push dword [eax + 0xc]
call dword [sym.imp.WS2_32.dll_WSASend]
test eax, eax
je 0x42226b
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, dword [ebp - 0x44]
mov ebx, eax
mov edx, dword [ebp - 0x48]
cmp ebx, 0x2714
je 0x422165
cmp ebx, 0x2733
jne 0x42220c
mov ebx, dword [ebp - 0x54]
push 2
push ebx
call fcn.00420000
mov eax, dword [ebp + 0x6c]
or eax, dword [ebp + 0x70]
pop ecx
pop ecx
je 0x422207
push esi
push dword [ebp - 0x58]
push dword [ebp - 0x5c]
push dword [ebp - 0x60]
push dword [ebp + 0x70]
push dword [ebp + 0x6c]
push 4
push ebx
call fcn.0042013b
add esp, 0x20
test eax, eax
je 0x422236
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x48]
jmp 0x422168
push 0xffffffffffffffe5
pop eax
jmp 0x422238
test esi, esi
je 0x422236
push ebx
call fcn.00408e81
push ebx
mov edi, eax
call fcn.00422bca
pop ecx
pop ecx
push eax
cmp edi, 0x1b
jne 0x42224d
push edi
call fcn.00408f70
push eax
push esi
call fcn.004418d8
add esp, 0x10
xor eax, eax
lea esp, [ebp - 0x78]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x44]
xor ecx, ebp
call fcn.004b5ec4
add ebp, 0x48
leave
ret
push str.Error_sending_message:__s
call fcn.00451b5b
pop ecx
push eax
push edi
call fcn.00408f70
push eax
push esi
call fcn.004418a5
add esp, 0x14
jmp 0x422236
mov edx, dword [ebp - 0x64]
test edx, edx
je 0x422277
mov ecx, dword [ebp - 0x4c]
mov dword [edx], ecx
xor eax, eax
inc eax
jmp 0x422238