Function at 0x578550
Capabilities:
Initialize winsock library

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x444
push ebx
push esi
push edi
lea eax, [esp + 0x2c0]
push eax
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
lea esi, [esp + 0x38]
lea ecx, [esp + 0x20]
push ecx
mov edx, esi
xor ebx, ebx
push edx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x28], 0x288
mov dword [esp + 0x18], esi
call sub.iphlpapi.dll_GetAdaptersInfo
cmp eax, 0x6f
jne 0x5785cd
cmp dword [0x9d3e94], ebx
jne 0x5785a8
mov dword [esp + 0x18], ebx
jmp 0x5785c3
mov edi, dword [esp + 0x20]
mov esi, dword [0x808c6c]
push 0x34
push 0x6c09d8
push ebx
call fcn.00589980
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x10], eax
mov esi, eax
lea ecx, [esp + 0x20]
push ecx
push esi
call sub.iphlpapi.dll_GetAdaptersInfo
test eax, eax
je 0x578623
mov al, byte [0x77ffcc]
test al, al
jne 0x5785e1
push str.Unable_to_get_adapter_info_
push 0x6af6cf
push 0x6c0a08
push 0x3c
push str.void___cdecl_Sega_LL_Network_Init_HardwareSpecific_class_bdNetStartParams__
push 0x6c0a60
lea ecx, [esp + 0x40]
call fcn.00475a90
push eax
call fcn.00475c30
mov al, byte [0x77ffcc]
add esp, 0xc
test al, al
jne 0x5785e3
mov ebx, dword [ebp + 8]
jmp 0x578734
xor edi, edi
cmp esi, ebx
mov dword [esp + 0x14], edi
je 0x57871f
jmp 0x578637
mov esi, dword [esp + 0x10]
lea edx, [esi + 0x10c]
push edx
push edi
push 0x6c0aac
call fcn.00408d10
lea eax, [esi + 0x1d8]
push eax
push edi
push str.Adapter__u:_default_gw:__s_n
call fcn.00408d10
lea ebx, [esi + 0x1ac]
add esp, 0x18
test ebx, ebx
mov dword [esp + 0x1c], ebx
je 0x57870a
jmp 0x578676
mov ebx, dword [esp + 0x1c]
add ebx, 4
mov edi, str.0.0.0.0
mov esi, ebx
mov ecx, 8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
push ebx
je 0x5786de
mov eax, dword [esp + 0x18]
push eax
push str.Adapter__u:__s_n
call fcn.00408d10
add esp, 0xc
push ebx
lea ecx, [esp + 0x28]
call fcn.004764c0
mov edi, dword [ebp + 8]
mov ecx, dword [edi + 0x20]
add edi, 0x18
cmp ecx, dword [edi + 4]
mov esi, eax
jne 0x5786bd
call fcn.0041c680
mov edx, dword [edi + 8]
mov eax, dword [edi]
lea ecx, [eax + edx*4]
test ecx, ecx
je 0x5786cf
push esi
call fcn.00476350
add dword [edi + 8], 1
lea ecx, [esp + 0x24]
call fcn.00476340
jmp 0x5786f0
mov ecx, dword [esp + 0x18]
push ecx
push str.Adapter__u:_skipping__invalid_address__n
call fcn.00408d10
add esp, 0xc
mov edx, dword [esp + 0x1c]
mov eax, dword [edx]
test eax, eax
mov dword [esp + 0x1c], eax
jne 0x578672
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov esi, dword [esi]
add edi, 1
test esi, esi
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edi
jne 0x578633
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0x20]
push edi
push eax
push str.using__u_valid_network_adapter_s__out_of__u_total._n
call fcn.00408d10
add esp, 0xc
cmp dword [ebx + 0x20], 0
jne 0x578786
push str.No_valid_network_adapters._Using_loopback_as_local_address._n
call fcn.00408d10
add esp, 4
push str.127.0.0.1
lea ecx, [esp + 0x28]
call fcn.004764c0
mov ecx, dword [ebx + 0x20]
cmp ecx, dword [ebx + 0x1c]
lea edi, [ebx + 0x18]
mov esi, eax
jne 0x578767
call fcn.0041c680
mov edx, dword [edi + 8]
mov eax, dword [edi]
lea ecx, [eax + edx*4]
test ecx, ecx
je 0x578779
push esi
call fcn.00476350
add dword [edi + 8], 1
lea ecx, [esp + 0x24]
call fcn.00476340
mov edi, dword [esp + 0x18]
test edi, edi
je 0x5787b0
cmp dword [0x9d3e94], 0
je 0x5787b0
cmp dword [0x93d90c], 0
jne 0x5787b0
call fcn.00589340
test eax, eax
je 0x5787b0
mov esi, eax
call fcn.00589900
cmp dword [0x808c58], 1
pop edi
sete cl
pop esi
mov byte [ebx], cl
pop ebx
mov esp, ebp
pop ebp
ret