Function at 0x4ef5f0
Capabilities:
Connect socket
Connect udp socket
Create udp socket
Send data
Send data on socket
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0xc]
mov eax, dword [edi + 0x58]
lea ebx, [eax + eax*4]
shl ebx, 4
add ebx, dword [esi + 0x74]
cmp dword [edi + 0x60], 0
je 0x4ef8d0
cmp dword [ebx + 0x18], 0xffffffff
jne 0x4ef738
mov eax, dword [ebx]
sub eax, 2
je 0x4ef65b
sub eax, 0x15
jne 0x4efa0a
push dword [esi + 0x18]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x10], eax
mov eax, 0x17
mov dword [ebp - 8], 0x1c
mov word [ebp - 0x28], ax
call fcn.004d0120
movups xmm0, xmmword [ebx + 4]
mov word [ebp - 0x26], ax
movups xmmword [ebp - 0x20], xmm0
jmp 0x4ef685
push dword [esi + 0x18]
xorps xmm0, xmm0
mov dword [ebp - 8], 0x10
mov eax, 2
movlpd qword [ebp - 0x20], xmm0
mov word [ebp - 0x28], ax
call fcn.004d0120
mov word [ebp - 0x26], ax
mov eax, dword [ebx + 4]
mov dword [ebp - 0x24], eax
add esp, 4
push 0
push 1
push dword [ebx]
call dword [sym.imp.WS2_32.dll_socket]
mov dword [ebp - 4], eax
cmp eax, 0xffffffff
je 0x4efa0a
push esi
push dword [ebx]
push eax
call fcn.004efad0
add esp, 0xc
test eax, eax
js 0x4ef79c
push 4
lea eax, [ebp - 0xc]
mov dword [ebp - 0xc], 1
push eax
push 1
push 6
push dword [ebp - 4]
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp eax, 0xffffffff
je 0x4ef79c
push dword [ebp - 8]
lea eax, [ebp - 0x28]
push eax
push dword [ebp - 4]
call dword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
jne 0x4ef704
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2734
je 0x4ef704
cmp eax, 0x2733
jne 0x4ef79c
mov eax, dword [esi + 0x91a8]
test eax, eax
je 0x4ef762
push dword [esi + 0x91ac]
push 1
push dword [ebp - 4]
call eax
add esp, 0xc
mov dword [ebp - 8], eax
test eax, eax
jns 0x4ef762
push dword [ebp - 4]
call dword [sym.imp.WS2_32.dll_closesocket]
cmp dword [ebp - 8], 0xffffffff
je 0x4efa0a
push 0x14
push 1
call fcn.005b9df5
mov ecx, eax
add esp, 8
mov dword [ebp - 0xc], ecx
test ecx, ecx
jne 0x4ef7aa
push eax
push eax
push 0xf
push edi
push esi
call fcn.004efbe0
add esp, 0x14
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x91a0]
test eax, eax
je 0x4ef77e
push 0
push 1
push dword [ebp - 4]
push dword [esi + 0x91a4]
call eax
add esp, 0x10
mov eax, dword [ebp - 4]
mov dword [ebx + 0x2c], 0
mov dword [ebx + 0x18], eax
inc dword [esi + 0x180]
mov eax, dword [esi + 0x180]
mov dword [ebx + 0x38], eax
jmp 0x4ef738
push dword [ebp - 4]
call dword [sym.imp.WS2_32.dll_closesocket]
jmp 0x4efa0a
mov dword [ecx + 0xc], 0
mov eax, dword [edi + 0x3c]
mov dword [ecx], eax
mov eax, dword [edi + 0x40]
mov dword [ecx + 4], eax
mov dword [ecx + 8], edi
mov dword [ecx + 0x10], 0
mov eax, dword [ebx + 0x34]
test eax, eax
je 0x4ef7d2
mov dword [eax + 0x10], ecx
jmp 0x4ef7f4
mov eax, dword [esi + 0x91a0]
test eax, eax
je 0x4ef7f1
push 1
push 1
push dword [ebx + 0x18]
push dword [esi + 0x91a4]
call eax
mov ecx, dword [ebp - 0xc]
add esp, 0x10
mov dword [ebx + 0x30], ecx
mov eax, dword [ebx + 0x38]
mov dword [ebx + 0x34], ecx
mov edx, dword [edi + 0x58]
mov ecx, dword [edi + 0x5c]
mov dword [ecx + edx*8 + 4], eax
mov eax, dword [edi + 0x54]
cdq
idiv dword [esi + 0x78]
mov esi, dword [esi + 4]
mov ecx, eax
shl esi, cl
call fcn.005bf451
mov ecx, dword [ebp + 0x10]
and eax, 7
add eax, 9
imul eax, esi
mov esi, dword [ecx]
mov ecx, dword [ecx + 4]
cdq
and edx, 0xf
lea edi, [edx + eax]
mov eax, dword [ebp + 0xc]
sar edi, 4
mov dword [eax + 8], ecx
mov ecx, dword [ebp + 0xc]
mov dword [eax + 4], esi
mov eax, 0x10624dd3
imul edi
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax + esi]
imul eax, eax, 0x3e8
mov dword [ecx + 4], edx
sub edi, eax
imul ecx, edi, 0x3e8
mov edi, dword [ebp + 0xc]
add ecx, dword [edi + 8]
mov dword [edi + 8], ecx
cmp ecx, 0xf4240
jl 0x4ef883
lea eax, [edx + 1]
mov dword [edi + 4], eax
lea eax, [ecx - 0xf4240]
mov dword [edi + 8], eax
lea esi, [edi + 0x18]
push esi
call fcn.004f1910
mov eax, dword [edi + 4]
and eax, 0x800003ff
jns 0x4ef89d
dec eax
or eax, 0xfffffc00
inc eax
mov ecx, dword [ebp + 8]
lea eax, [eax + eax*2]
lea eax, [eax + 0x1868]
lea eax, [ecx + eax*4]
push eax
push esi
call fcn.004f18d0
lea esi, [edi + 0x24]
push esi
call fcn.004f1910
lea eax, [ebx + 0x3c]
push eax
push esi
call fcn.004f18d0
add esp, 0x18
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebx + 0x14], 0xffffffff
jne 0x4ef9f0
mov eax, dword [ebx]
sub eax, 2
je 0x4ef916
sub eax, 0x15
jne 0x4efa0a
push dword [esi + 0x14]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x10], eax
mov eax, 0x17
mov dword [ebp - 8], 0x1c
mov word [ebp - 0x28], ax
call fcn.004d0120
movups xmm0, xmmword [ebx + 4]
mov word [ebp - 0x26], ax
movups xmmword [ebp - 0x20], xmm0
jmp 0x4ef940
push dword [esi + 0x14]
xorps xmm0, xmm0
mov dword [ebp - 8], 0x10
mov eax, 2
movlpd qword [ebp - 0x20], xmm0
mov word [ebp - 0x28], ax
call fcn.004d0120
mov word [ebp - 0x26], ax
mov eax, dword [ebx + 4]
mov dword [ebp - 0x24], eax
add esp, 4
push 0
push 2
push dword [ebx]
call dword [sym.imp.WS2_32.dll_socket]
mov dword [ebp - 4], eax
cmp eax, 0xffffffff
je 0x4efa0a
push esi
push dword [ebx]
push eax
call fcn.004efad0
add esp, 0xc
test eax, eax
js 0x4ef79c
push dword [ebp - 8]
lea eax, [ebp - 0x28]
push eax
push dword [ebp - 4]
call dword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
jne 0x4ef99c
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2734
je 0x4ef99c
cmp eax, 0x2733
jne 0x4ef79c
mov eax, dword [esi + 0x91a8]
test eax, eax
je 0x4ef9ce
push dword [esi + 0x91ac]
push 2
push dword [ebp - 4]
call eax
add esp, 0xc
mov dword [ebp - 0xc], eax
test eax, eax
jns 0x4ef9ce
push dword [ebp - 4]
call dword [sym.imp.WS2_32.dll_closesocket]
cmp dword [ebp - 0xc], 0xffffffff
jne 0x4ef9f0
jmp 0x4efa0a
mov eax, dword [esi + 0x91a0]
test eax, eax
je 0x4ef9ea
push 0
push 1
push dword [ebp - 4]
push dword [esi + 0x91a4]
call eax
add esp, 0x10
mov eax, dword [ebp - 4]
mov dword [ebx + 0x14], eax
push 0
push dword [edi + 0x48]
push dword [edi + 0x44]
push dword [ebx + 0x14]
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
jne 0x4ef804
cmp dword [esi + 0x78], 1
jle 0x4efa1d
mov ecx, dword [edi + 0x58]
mov eax, dword [edi + 0x5c]
mov dword [eax + ecx*8], 1
push dword [ebp + 0x10]
push edi
push esi
call fcn.004efe20
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret