Function at 0x100ed940
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Convert ip address from string
Create tcp socket
Create udp socket
Initialize winsock library
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1014a9ae
mov eax, dword fs:[0]
push eax
mov eax, 0x826c
call fcn.1011b190
mov eax, dword [0x10174110]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x824c], ebx
mov dword [ebp - 0x8248], ebx
mov dword [ebp - 0x8250], ebx
mov dword [ebp - 4], 0
xorps xmm0, xmm0
movq qword [ebp - 0x8040], xmm0
mov dword [ebp - 0x8038], 0
mov dword [ebp - 0x8040], 0
mov dword [ebp - 0x803c], 0
mov dword [ebp - 0x8038], 0
movq qword [ebp - 0x8034], xmm0
mov dword [ebp - 0x802c], 0
mov dword [ebp - 0x8034], 0
mov dword [ebp - 0x8030], 0
mov dword [ebp - 0x802c], 0
mov byte [ebp - 4], 2
cmp byte [0x101a1620], 0
jne 0x100edb26
lea eax, [ebp - 0x8244]
push eax
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
je 0x100eda3d
lea eax, [ebp - 0x8040]
mov ecx, ebx
push eax
call fcn.100351c0
lea eax, [ebp - 0x8034]
mov byte [ebp - 4], 3
push eax
lea ecx, [ebx + 0xc]
call fcn.100351c0
jmp 0x100edfb3
push 0
push 1
push 2
call dword [sym.imp.WS2_32.dll_socket]
mov dword [0x101a1624], eax
test eax, eax
jns 0x100eda78
lea eax, [ebp - 0x8040]
mov ecx, ebx
push eax
call fcn.100351c0
lea eax, [ebp - 0x8034]
mov byte [ebp - 4], 4
push eax
lea ecx, [ebx + 0xc]
call fcn.100351c0
jmp 0x100edfb3
mov eax, 2
push 0x270f
mov word [ebp - 0x806c], ax
call dword [sym.imp.WS2_32.dll_htons]
mov word [ebp - 0x806a], ax
lea eax, [ebp - 0x8068]
push eax
push str.127.0.0.1
push 2
call dword [sym.imp.WS2_32.dll_inet_pton]
test eax, eax
jg 0x100edada
call dword [sym.imp.WS2_32.dll_WSACleanup]
lea eax, [ebp - 0x8040]
mov ecx, ebx
push eax
call fcn.100351c0
lea eax, [ebp - 0x8034]
mov byte [ebp - 4], 5
push eax
lea ecx, [ebx + 0xc]
call fcn.100351c0
jmp 0x100edfb3
push 0x10
lea eax, [ebp - 0x806c]
push eax
push dword [0x101a1624]
call dword [sym.imp.WS2_32.dll_connect]
test eax, eax
jns 0x100edb1f
call dword [sym.imp.WS2_32.dll_WSACleanup]
lea eax, [ebp - 0x8040]
mov ecx, ebx
push eax
call fcn.100351c0
lea eax, [ebp - 0x8034]
mov byte [ebp - 4], 6
push eax
lea ecx, [ebx + 0xc]
call fcn.100351c0
jmp 0x100edfb3
mov byte [0x101a1620], 1
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x8064]
push 0
mov byte [ebp - 0x806c], 0
call fcn.100551c0
mov byte [ebp - 4], 8
mov eax, dword [ebp + 0xc]
mov esi, dword [eax]
cmp esi, eax
je 0x100edcb6
nop
mov edi, dword [esi + 0x10]
xorps xmm0, xmm0
mov ebx, dword [esi + 0xc]
push 0xc
movq qword [ebp - 0x8258], xmm0
mov byte [ebp - 0x8260], 2
movlpd qword [ebp - 0x80a4], xmm0
call fcn.1011a01b
lea ecx, [ebp - 0x8041]
mov dword [ebp - 0x8248], eax
add esp, 4
mov dword [ebp - 0x80a4], ecx
mov dword [ebp - 0x80a0], eax
mov byte [ebp - 4], 9
mov ecx, eax
push dword [ebp - 0x8250]
mov dword [eax], 0
push edi
push ebx
mov dword [eax + 4], 0
mov dword [eax + 8], 0
call fcn.100ebf80
mov ebx, dword [ebp - 0x8248]
mov dword [ebp - 0x8258], ebx
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x13]
mov edx, dword [esi + 8]
test edx, edx
jns 0x100edbe3
neg edx
call fcn.10058330
mov byte [eax - 1], 0x2d
lea ecx, [eax - 1]
jmp 0x100edbea
call fcn.10058330
mov ecx, eax
lea eax, [ebp - 0x13]
mov dword [ebp - 0x8268], 0
mov dword [ebp - 0x8264], 0xf
mov byte [ebp - 0x8278], 0
cmp ecx, eax
je 0x100edc1b
sub eax, ecx
push eax
push ecx
lea ecx, [ebp - 0x8278]
call fcn.100352a0
lea eax, [ebp - 0x8278]
mov byte [ebp - 4], 0xb
push eax
lea ecx, [ebp - 0x806c]
call fcn.100533b0
mov edi, eax
mov cl, byte [edi]
mov eax, dword [ebp - 0x8254]
mov byte [edi], 2
mov edx, dword [edi + 0xc]
mov byte [ebp - 0x8260], cl
mov ecx, dword [edi + 8]
mov dword [ebp - 0x8258], ecx
lea ecx, [ebp - 0x8260]
mov dword [edi + 8], ebx
mov dword [edi + 0xc], eax
mov dword [ebp - 0x8254], edx
call fcn.10053610
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x8264]
cmp edx, 0x10
jb 0x100edca5
mov ecx, dword [ebp - 0x8278]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100edc9b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100edfef
push edx
push ecx
call fcn.1011a4ac
add esp, 8
mov esi, dword [esi]
cmp esi, dword [ebp + 0xc]
jne 0x100edb50
mov ebx, dword [ebp - 0x824c]
push ecx
lea eax, [ebp - 0x805c]
push eax
lea ecx, [ebp - 0x806c]
call fcn.100534a0
mov byte [ebp - 4], 0xd
lea eax, [ebp - 0x805c]
cmp dword [ebp - 0x8048], 0x10
push 0
push dword [ebp - 0x804c]
cmovae eax, dword [ebp - 0x805c]
push eax
push dword [0x101a1624]
call dword [sym.imp.WS2_32.dll_send]
push 0x8000
lea eax, [ebp - 0x8028]
push 0
push eax
call fcn.1011c670
add esp, 0xc
lea eax, [ebp - 0x8028]
push 0
push 0x8000
push eax
push dword [0x101a1624]
call dword [sym.imp.WS2_32.dll_recv]
cmp eax, 0xffffffff
jne 0x100edd96
mov byte [0x101a1620], 0
call dword [sym.imp.WS2_32.dll_WSACleanup]
lea eax, [ebp - 0x8040]
mov ecx, ebx
push eax
call fcn.100351c0
lea eax, [ebp - 0x8034]
mov byte [ebp - 4], 0xe
push eax
lea ecx, [ebx + 0xc]
call fcn.100351c0
mov edx, dword [ebp - 0x8048]
cmp edx, 0x10
jb 0x100edf8d
mov ecx, dword [ebp - 0x805c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100edf83
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100edfef
jmp 0x100edf83
lea ecx, [ebp - 0x8028]
mov dword [ebp - 0x8074], 0
mov dword [ebp - 0x8070], 0xf
lea edx, [ecx + 1]
mov byte [ebp - 0x8084], 0
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100eddc0
sub ecx, edx
lea eax, [ebp - 0x8028]
push ecx
push eax
lea ecx, [ebp - 0x8084]
call fcn.100352a0
mov byte [ebp - 4], 0xf
cmp dword [ebp - 0x8074], 0
jne 0x100ede75
mov byte [0x101a1620], 0
call dword [sym.imp.WS2_32.dll_WSACleanup]
lea eax, [ebp - 0x8040]
mov ecx, ebx
push eax
call fcn.100351c0
lea eax, [ebp - 0x8034]
mov byte [ebp - 4], 0x10
push eax
lea ecx, [ebx + 0xc]
call fcn.100351c0
mov edx, dword [ebp - 0x8070]
cmp edx, 0x10
jb 0x100ede55
mov ecx, dword [ebp - 0x8084]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100ede4b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100edff4
push edx
push ecx
call fcn.1011a4ac
add esp, 8
mov dword [ebp - 0x8074], 0
mov dword [ebp - 0x8070], 0xf
mov byte [ebp - 0x8084], 0
jmp 0x100edd59
sub esp, 0x28
lea edx, [ebp - 0x8084]
mov eax, esp
lea ecx, [ebp - 0x80b4]
mov dword [eax + 0x24], 0
call fcn.100557d0
add esp, 0x28
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x80b4]
xorps xmm0, xmm0
mov dword [ebp - 0x8094], 0
push 0x1015f8b8
movq qword [ebp - 0x809c], xmm0
call fcn.100e9cc0
lea ecx, [ebp - 0x809c]
push ecx
mov ecx, eax
call fcn.100e9ea0
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x80b4]
xorps xmm0, xmm0
mov dword [ebp - 0x8088], 0
push str.body
movq qword [ebp - 0x8090], xmm0
call fcn.100e9cc0
lea ecx, [ebp - 0x8090]
push ecx
mov ecx, eax
call fcn.100e9ea0
lea eax, [ebp - 0x809c]
mov byte [ebp - 4], 0x13
push eax
mov ecx, ebx
call fcn.100351c0
lea eax, [ebp - 0x8090]
mov byte [ebp - 4], 0x14
push eax
lea ecx, [ebx + 0xc]
call fcn.100351c0
lea ecx, [ebp - 0x8090]
call fcn.10034d20
lea ecx, [ebp - 0x809c]
call fcn.10034d20
lea ecx, [ebp - 0x80b4]
call fcn.10053610
mov edx, dword [ebp - 0x8070]
cmp edx, 0x10
jb 0x100ede55
mov ecx, dword [ebp - 0x8084]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100ede4b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100ede4b
jmp 0x100edfef
push edx
push ecx
call fcn.1011a4ac
add esp, 8
lea ecx, [ebp - 0x806c]
mov dword [ebp - 0x804c], 0
mov dword [ebp - 0x8048], 0xf
mov byte [ebp - 0x805c], 0
call fcn.10053610
lea ecx, [ebp - 0x8034]
call fcn.10034d20
lea ecx, [ebp - 0x8040]
call fcn.10034d20
lea ecx, [ebp + 8]
call fcn.10030630
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10119ff7
mov esp, ebp
pop ebp
ret
call fcn.10121c8d
call fcn.10121c8d
int3