Function at 0x43f1ec
Capabilities:
Create raw socket
Get socket status
Initialize winsock library
Receive data
Receive data on socket
Resolve dns
Send data
Send data on socket
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffd40
push ebx
push esi
push edi
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00405f54
xor eax, eax
push ebp
push 0x43f4a9
push dword fs:[eax]
mov dword fs:[eax], esp
xor ebx, ebx
lea eax, [ebp - 0x1ac]
push eax
push 0x201
call fcn.0042f1d8
test eax, eax
jne 0x43f48e
push 1
push 3
push 2
call fcn.0042f1c8
mov esi, eax
cmp esi, 0xffffffff
je 0x43f48e
mov dword [ebp - 0xc], 0x1e
push 4
lea eax, [ebp - 0xc]
push eax
push 7
push 0
push esi
call fcn.0042f1c0
cmp eax, 0xffffffff
jne 0x43f26e
push 4
lea eax, [ebp - 0xc]
push eax
push 4
push 0
push esi
call fcn.0042f1c0
inc eax
je 0x43f48e
lea eax, [ebp - 0x1bc]
mov edx, 0x10
call fcn.0040a440
mov eax, dword [ebp - 4]
call fcn.00405f64
mov edi, eax
push edi
call fcn.0042f190
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0xffffffff
je 0x43f2b2
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x1b8], eax
mov word [ebp - 0x1bc], 2
jmp 0x43f2d2
push edi
call fcn.0042f1d0
test eax, eax
je 0x43f2d2
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov eax, dword [eax]
mov dword [ebp - 0x1b8], eax
mov word [ebp - 0x1bc], 2
cmp dword [ebp - 0x1b8], 0
je 0x43f48e
mov eax, 0x20
call fcn.00403108
mov dword [ebp - 8], eax
mov eax, 0x414
call fcn.00403108
mov edi, eax
mov edx, 0x414
mov eax, edi
call fcn.0040a440
cmp word [0x580c40], 0xffff
jne 0x43f31a
mov word [0x580c40], 0
jmp 0x43f321
inc word [0x580c40]
mov eax, dword [ebp - 8]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov byte [eax], 8
mov eax, dword [ebp - 0x18]
mov byte [eax + 1], 0
mov eax, dword [ebp - 0x18]
mov word [eax + 2], 0
call fcn.0040968c
mov edx, dword [ebp - 0x18]
mov word [edx + 4], ax
mov eax, dword [ebp - 0x18]
movzx edx, word [0x580c40]
mov word [eax + 6], dx
xor eax, eax
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0xc]
mov dword [eax + edx*4 + 8], 0xdeadbeef
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 6
jne 0x43f35c
xor eax, eax
mov dword [ebp - 0xc], 1
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
movzx edx, word [edx + ecx*2 - 2]
add eax, edx
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0x11
jne 0x43f37c
mov edx, eax
shr edx, 0x10
movzx eax, ax
add edx, eax
mov eax, edx
movzx eax, ax
mov edx, 0xffff
sub edx, eax
mov eax, edx
mov edx, dword [ebp - 0x18]
mov word [edx + 2], ax
push 0x10
lea eax, [ebp - 0x1bc]
push eax
push 0
push 0x20
mov eax, dword [ebp - 8]
push eax
push esi
call fcn.0042f1b8
inc eax
je 0x43f475
mov dword [ebp - 0x2c0], 1
mov dword [ebp - 0x2bc], esi
mov dword [ebp - 0x14], 1
xor eax, eax
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x14]
push eax
push 0
push 0
lea eax, [ebp - 0x2c0]
push eax
push 0
call fcn.0042f1a8
test eax, eax
jle 0x43f475
push 0
push 0
push 0
push 0x414
push edi
push esi
call fcn.0042f1a0
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0xffffffff
je 0x43f475
movzx eax, byte [edi]
and al, 0xf
movzx eax, al
add eax, eax
add eax, eax
add eax, 0x20
cmp eax, dword [ebp - 0xc]
jg 0x43f475
movzx eax, byte [edi]
and al, 0xf
movzx eax, al
add eax, eax
add eax, eax
add eax, edi
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
cmp byte [eax], 0
jne 0x43f3cf
call fcn.0040968c
mov edx, dword [ebp - 0x1c]
cmp ax, word [edx + 4]
jne 0x43f3cf
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 6]
cmp ax, word [0x580c40]
jne 0x43f3cf
mov bl, 1
mov edx, 0x414
mov eax, edi
call fcn.00403124
mov edx, 0x20
mov eax, dword [ebp - 8]
call fcn.00403124
call fcn.0042f1e0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x43f4b0
lea eax, [ebp - 4]
call fcn.004058a8
ret