Function at 0x54cdd6
Capabilities:
Initialize winsock library
Resolve dns

Disassembly:
push 0x5dc
mov eax, 0x5d4756
call fcn.00573e45
mov ebx, ecx
mov dword [ebp - 0x564], ebx
lea eax, [ebp - 0x540]
push eax
push 0x203
call dword [sym.imp.WS2_32.dll_WSAStartup]
mov esi, eax
test esi, esi
je 0x54ce24
xor ecx, ecx
mov edx, str._Winsock_initialization_failed
inc ecx
call fcn.0054d12e
movzx eax, si
or eax, 0x80070000
test esi, esi
cmovle eax, esi
jmp 0x54d0e0
lea eax, [ebx + 0x18]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0054cc41
xor ebx, ebx
lea ecx, [ebp - 0x54c]
mov dword [ebp - 4], ebx
lea eax, [ebp - 0x28]
cmp dword [ebp - 0x14], 8
push ecx
cmovae eax, dword [ebp - 0x28]
push ebx
push ebx
push eax
mov dword [ebp - 0x54c], ebx
call dword [sym.imp.WS2_32.dll_GetAddrInfoW]
mov dword [ebp - 0x544], eax
test eax, eax
je 0x54ce9c
lea eax, [ebp - 0x544]
xor ecx, ecx
push eax
lea eax, [ebp - 0x28]
mov edx, str.GetAddrInfoW_failed_on_server__s_with_error__d
push eax
inc ecx
call fcn.0053aa9c
push ebx
push 1
lea ecx, [ebp - 0x28]
call fcn.0040968b
mov ecx, dword [ebp - 0x544]
movzx eax, cx
or eax, 0x80070000
test ecx, ecx
cmovle eax, ecx
jmp 0x54d0e0
mov eax, dword [ebp - 0x54c]
mov edi, ebx
mov dword [ebp - 0x550], ebx
test eax, eax
je 0x54cebc
mov eax, dword [eax + 0x1c]
inc edi
test eax, eax
jne 0x54ceae
mov dword [ebp - 0x550], edi
xor ecx, ecx
mov eax, edi
push 0x1c
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0056ef3f
mov esi, eax
pop ecx
mov dword [ebp - 0x55c], esi
mov byte [ebp - 4], 1
test esi, esi
jne 0x54cf08
push ecx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push ecx
lea ecx, [ebp - 0x3b0]
call fcn.0054d17b
push 0x6bd4a4
lea eax, [ebp - 0x3b0]
push eax
call fcn.00575c7a
mov eax, dword [ebp - 0x54c]
mov ecx, ebx
mov dword [ebp - 0x548], ecx
mov dword [ebp - 0x554], eax
test eax, eax
je 0x54cf9e
mov edx, esi
mov dword [ebp - 0x544], edx
cmp ecx, edi
jge 0x54d006
cmp dword [eax + 4], 2
jne 0x54cf5b
mov edx, dword [eax + 0x18]
mov ecx, dword [ebp - 0x544]
movzx eax, word [edx + 2]
add edx, 4
push eax
push ebx
call fcn.0054ca19
mov edx, dword [ebp - 0x544]
mov eax, dword [ebp - 0x554]
jmp 0x54cf75
cmp dword [eax + 4], 0x17
jne 0x54cfe8
mov esi, dword [eax + 0x18]
mov edi, edx
push 7
pop ecx
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0x550]
mov ecx, dword [ebp - 0x548]
add edx, 0x1c
mov eax, dword [eax + 0x1c]
inc ecx
mov dword [ebp - 0x544], edx
mov dword [ebp - 0x548], ecx
mov dword [ebp - 0x554], eax
test eax, eax
jne 0x54cf28
mov esi, dword [ebp - 0x55c]
lea eax, [ebp - 0x560]
mov dword [ebp - 0x558], ebx
push eax
lea eax, [ebp - 0x558]
mov dword [ebp - 0x560], ebx
push eax
push ebx
push edi
push esi
push ebx
push ebx
call dword [sym.imp.IPHLPAPI.DLL_CreateSortedAddressPairs]
test eax, eax
je 0x54d01d
call fcn.0054d1f5
push esi
call fcn.0056c671
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x28]
call fcn.0040968b
mov eax, 0x80004005
jmp 0x54d0e0
push str.Unsupported_IP_Family
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x58
lea ecx, [ebp - 0x3b0]
call fcn.0040dceb
jmp 0x54cef7
push str.Different_sizes_walking_address_list
push 0x58
lea ecx, [ebp - 0x3b0]
call fcn.0050c6fd
jmp 0x54cef7
push 0x7e
lea eax, [ebp - 0x5e6]
push ebx
push eax
call fcn.00576720
mov edx, dword [ebp - 0x558]
add esp, 0xc
mov ecx, dword [edx + 4]
lea esi, [ecx + 8]
cmp word [esi], bx
jne 0x54d078
cmp word [esi + 2], bx
jne 0x54d078
cmp word [esi + 4], bx
jne 0x54d078
cmp word [esi + 6], bx
jne 0x54d078
cmp word [esi + 8], bx
jne 0x54d078
mov eax, 0xffff
cmp word [esi + 0xa], ax
jne 0x54d078
push 2
pop eax
mov word [ebp - 0x5e8], ax
mov eax, dword [ecx + 0x14]
mov dword [ebp - 0x5e4], eax
jmp 0x54d095
push 0x17
pop eax
mov word [ebp - 0x5e8], ax
lea edi, [ebp - 0x5e0]
mov eax, dword [ecx + 0x18]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x5d0], eax
mov ax, word [ecx + 2]
lea esi, [ebp - 0x5e8]
mov edi, dword [ebp - 0x564]
push 0x20
pop ecx
mov word [ebp - 0x5e6], ax
add edi, 0x30
rep movsd dword es:[edi], dword [esi]
push edx
call dword [sym.imp.IPHLPAPI.DLL_FreeMibTable]
push dword [ebp - 0x54c]
call dword [sym.imp.WS2_32.dll_FreeAddrInfoW]
push dword [ebp - 0x55c]
call fcn.0056c671
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x28]
call fcn.0040968b
xor eax, eax
call fcn.00573def
ret