Function at 0x438500
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Receive data
Receive data on socket
Resolve dns
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4720c0
mov eax, dword fs:[0]
push eax
sub esp, 0x44c
mov eax, dword [0x4954f4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, dword [ebp + 0x38]
xorps xmm0, xmm0
mov dword [ebp - 4], 1
mov eax, 2
movups xmmword [ebp - 0x424], xmm0
mov word [ebp - 0x424], ax
movzx eax, word [ecx]
push eax
call dword [sym.imp.WS2_32.dll_htons]
cmp dword [ebp + 0x1c], 0x10
mov word [ebp - 0x422], ax
lea eax, [ebp + 8]
cmovae eax, dword [ebp + 8]
push eax
call dword [sym.imp.WS2_32.dll_gethostbyname]
mov esi, eax
test esi, esi
je 0x43897a
movsx ecx, word [esi + 0xa]
lea eax, [ebp - 0x420]
push ecx
mov ecx, dword [esi + 0xc]
push dword [ecx]
push eax
call fcn.0044b510
mov eax, dword [esi + 0xc]
add esp, 0xc
push 0
push 1
push 2
call dword [sym.imp.WS2_32.dll_socket]
mov esi, eax
lea eax, [ebp - 0x424]
push 0x10
push eax
push esi
mov dword [ebp - 0x43c], esi
call dword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
je 0x43897a
cmp dword [ebp + 0x34], 0x10
lea ecx, [ebp + 0x20]
push 0
push dword [ebp + 0x30]
cmovae ecx, dword [ebp + 0x20]
push ecx
push esi
call dword [sym.imp.WS2_32.dll_send]
push 0x401
lea eax, [ebp - 0x414]
push 0
push eax
call fcn.0044b130
add esp, 0xc
lea eax, [ebp - 0x414]
push 0
push 0x400
push eax
push esi
call dword [sym.imp.WS2_32.dll_recv]
mov ecx, eax
mov dword [ebp - 0x42c], ecx
test ecx, ecx
jle 0x43881a
mov esi, dword [edi + 0x14]
mov eax, esi
mov edx, dword [edi + 0x10]
sub eax, edx
mov dword [ebp - 0x434], edx
mov dword [ebp - 0x430], esi
cmp ecx, eax
ja 0x438662
lea eax, [edx + ecx]
mov dword [edi + 0x10], eax
mov eax, edi
cmp esi, 0x10
jb 0x43863f
mov eax, dword [edi]
lea esi, [eax + edx]
push ecx
lea eax, [ebp - 0x414]
push eax
push esi
call fcn.0044ba90
mov eax, dword [ebp - 0x42c]
add esp, 0xc
mov byte [esi + eax], 0
jmp 0x4387ef
mov eax, SysReAllocString
sub eax, edx
cmp eax, ecx
jb 0x438a09
lea eax, [edx + ecx]
mov esi, eax
mov dword [ebp - 0x440], eax
or esi, 0xf
cmp esi, 0x7fffffff
jbe 0x43868e
mov esi, SysReAllocString
jmp 0x4386c1
mov ecx, dword [ebp - 0x430]
mov eax, ecx
shr eax, 1
mov dword [ebp - 0x428], eax
mov eax, SysReAllocString
sub eax, dword [ebp - 0x428]
cmp ecx, eax
jbe 0x4386b4
mov esi, SysReAllocString
jmp 0x4386c1
mov eax, dword [ebp - 0x428]
add eax, ecx
cmp esi, eax
cmovb esi, eax
xor ecx, ecx
mov dword [ebp - 0x428], esi
mov eax, esi
add eax, 1
setb cl
neg ecx
or ecx, eax
cmp ecx, 0x1000
jb 0x43870c
lea eax, [ecx + 0x23]
cmp eax, ecx
mov ecx, 0xffffffff
cmovbe eax, ecx
push eax
call fcn.004446a7
add esp, 4
test eax, eax
je 0x438a13
mov edx, dword [ebp - 0x434]
lea esi, [eax + 0x23]
and esi, 0xffffffe0
mov dword [esi - 4], eax
jmp 0x43872b
test ecx, ecx
je 0x438729
push ecx
call fcn.004446a7
mov edx, dword [ebp - 0x434]
add esp, 4
mov esi, eax
mov dword [ebp - 0x438], eax
jmp 0x438731
xor esi, esi
mov dword [ebp - 0x438], esi
cmp dword [ebp - 0x430], 0x10
mov eax, dword [ebp - 0x440]
mov dword [edi + 0x10], eax
mov eax, dword [ebp - 0x428]
mov dword [edi + 0x14], eax
push edx
jb 0x4387ba
mov eax, dword [edi]
push eax
push esi
mov dword [ebp - 0x428], eax
call fcn.0044b510
mov eax, dword [ebp - 0x42c]
add esi, dword [ebp - 0x434]
push eax
lea eax, [ebp - 0x414]
push eax
push esi
call fcn.0044b510
mov eax, dword [ebp - 0x42c]
add esp, 0x18
mov ecx, dword [ebp - 0x430]
inc ecx
mov byte [esi + eax], 0
mov eax, dword [ebp - 0x428]
cmp ecx, 0x1000
jb 0x4387ae
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x438a13
mov eax, edx
push ecx
push eax
call fcn.00444954
add esp, 8
jmp 0x4387e7
push edi
push esi
call fcn.0044b510
push dword [ebp - 0x42c]
add esi, dword [ebp - 0x434]
lea eax, [ebp - 0x414]
push eax
push esi
call fcn.0044b510
mov eax, dword [ebp - 0x42c]
add esp, 0x18
mov byte [esi + eax], 0
mov eax, dword [ebp - 0x438]
mov dword [edi], eax
mov esi, dword [ebp - 0x43c]
lea eax, [ebp - 0x414]
push 0
push 0x400
push eax
push esi
call dword [sym.imp.WS2_32.dll_recv]
mov ecx, eax
mov dword [ebp - 0x42c], eax
test ecx, ecx
jg 0x438616
push esi
call dword [sym.imp.WS2_32.dll_closesocket]
cmp dword [edi + 0x14], 0x10
mov ecx, edi
mov dword [ebp - 0x430], edi
jb 0x438837
mov ecx, dword [edi]
mov dword [ebp - 0x430], ecx
mov eax, dword [edi + 0x10]
cmp eax, 4
jb 0x43897a
add eax, 0xfffffffd
add eax, ecx
mov dword [ebp - 0x43c], eax
sub eax, ecx
push eax
push 0xd
push ecx
call fcn.0044c170
mov esi, eax
add esp, 0xc
test esi, esi
je 0x43897a
mov ecx, esi
mov edx, str._r_n_r_n
mov eax, dword [ecx]
cmp eax, dword [edx]
je 0x43888f
cmp al, byte [edx]
jne 0x438893
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x438893
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x438893
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x438893
xor eax, eax
jmp 0x438898
sbb eax, eax
or eax, 1
test eax, eax
je 0x4388bc
mov eax, dword [ebp - 0x43c]
inc esi
sub eax, esi
push eax
push 0xd
push esi
call fcn.0044c170
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x438866
jmp 0x43897a
sub esi, dword [ebp - 0x430]
cmp esi, 0xffffffff
je 0x43897a
mov ecx, dword [edi + 0x10]
add esi, 4
mov dword [ebp - 0x448], 0
mov dword [ebp - 0x444], 0xf
mov byte [ebp - 0x458], 0
cmp ecx, esi
jb 0x438a0e
mov eax, ecx
sub eax, esi
cmp eax, ecx
cmovb ecx, eax
cmp dword [edi + 0x14], 0x10
mov eax, edi
jb 0x438907
mov eax, dword [edi]
push ecx
add eax, esi
lea ecx, [ebp - 0x458]
push eax
call fcn.00408190
lea eax, [ebp - 0x458]
cmp edi, eax
je 0x438940
mov ecx, edi
call fcn.00406a40
movups xmm0, xmmword [ebp - 0x458]
movups xmmword [edi], xmm0
movq xmm0, qword [ebp - 0x448]
movq qword [edi + 0x10], xmm0
jmp 0x43897a
mov edx, dword [ebp - 0x444]
cmp edx, 0x10
jb 0x43897a
mov ecx, dword [ebp - 0x458]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x438970
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x438a13
push edx
push ecx
call fcn.00444954
add esp, 8
mov edx, dword [ebp + 0x1c]
cmp edx, 0x10
jb 0x4389aa
mov ecx, dword [ebp + 8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4389a0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x438a18
push edx
push ecx
call fcn.00444954
add esp, 8
mov edx, dword [ebp + 0x34]
mov dword [ebp + 0x18], 0
mov dword [ebp + 0x1c], 0xf
mov byte [ebp + 8], 0
cmp edx, 0x10
jb 0x4389ec
mov ecx, dword [ebp + 0x20]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4389e2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x438a1d
push edx
push ecx
call fcn.00444954
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00444204
mov esp, ebp
pop ebp
ret 0x34
call fcn.00409970
call fcn.00408c70
call fcn.004538a3
call fcn.004538a3
call fcn.004538a3
int3