Function at 0x408860
Capabilities:
Get local ipv4 addresses
Get mac address on windows

Disassembly:
push edi
lea edi, [esp + 8]
and esp, 0xfffffff8
push dword [edi - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x4b8
mov ebx, dword [sym.imp.iphlpapi.dll_GetAdaptersInfo]
mov dword [ebp - 0x48c], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call ebx
sub esp, 8
mov esi, eax
mov eax, 0x5b2
call fcn.00401820
xor eax, eax
cmp esi, 0x57
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.got__ld_n
lea esi, [ebp - 0x48c]
mov dword [esp], eax
call fcn.00402000
mov dword [esp + 4], esi
mov dword [esp], 0
call ebx
sub esp, 8
mov edi, eax
mov eax, 0x5b4
call fcn.00401820
cmp edi, 0xe8
mov dword [esp + 8], edi
sete al
cmp edi, 0x6f
mov dword [esp + 4], str.got__ld_n
sete dl
or eax, edx
movzx eax, al
mov dword [esp], eax
call fcn.00402000
cmp edi, 0xe8
je 0x408cee
mov eax, dword [ebp - 0x48c]
mov dword [esp], eax
call dword [sym.imp.msvcrt.dll_malloc]
mov dword [esp + 4], esi
mov dword [esp], eax
mov dword [ebp - 0x490], eax
call ebx
sub esp, 8
mov ebx, eax
mov eax, 0x5b9
call fcn.00401820
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.got__ld_n
mov dword [esp], eax
call fcn.00402000
mov edx, dword [ebp - 0x490]
test edx, edx
je 0x408ce5
mov ebx, edx
lea esi, [ebp - 0x470]
lea esi, [esi]
nop
call fcn.0040f800
lea edi, [ebx + 8]
mov dword [eax], 0x4141a7
mov dword [eax + 4], 0x5bd
lea eax, [ebx + 0x1e8]
mov dword [esp + 0x14], eax
lea eax, [ebx + 0x1d8]
mov dword [esp + 0x10], eax
lea eax, [ebx + 0x1c0]
mov dword [esp + 0xc], eax
lea eax, [ebx + 0x1b0]
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov dword [esp], str.adapter__s__address__s__s_gateway__s__s_n
call fcn.00401b30
mov eax, dword [ebx + 0x19c]
mov dword [ebp - 0x16c], eax
lea eax, [ebp - 0x36c]
mov dword [esp], eax
call dword [sym.imp.iphlpapi.dll_GetIfEntry]
lea eax, [ebp - 0x488]
sub esp, 4
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x19c]
mov dword [esp], eax
call dword [sym.imp.iphlpapi.dll_ConvertInterfaceIndexToLuid]
lea eax, [ebp - 0x480]
sub esp, 8
mov dword [esp + 4], eax
lea eax, [ebp - 0x488]
mov dword [esp], eax
call dword [sym.imp.iphlpapi.dll_ConvertInterfaceLuidToGuid]
movzx eax, byte [ebp - 0x471]
sub esp, 8
mov dword [esp + 0x30], eax
movzx eax, byte [ebp - 0x472]
mov dword [esp + 0x2c], eax
movzx eax, byte [ebp - 0x473]
mov dword [esp + 0x28], eax
movzx eax, byte [ebp - 0x474]
mov dword [esp + 0x24], eax
movzx eax, byte [ebp - 0x475]
mov dword [esp + 0x20], eax
movzx eax, byte [ebp - 0x476]
mov dword [esp + 0x1c], eax
movzx eax, byte [ebp - 0x477]
mov dword [esp + 0x18], eax
movzx eax, byte [ebp - 0x478]
mov dword [esp + 0x14], eax
movzx eax, word [ebp - 0x47a]
mov dword [esp + 0x10], eax
movzx eax, word [ebp - 0x47c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x480]
mov dword [esp + 4], str._08lX__04X__04X__02X_02X__02X_02X_02X_02X_02X_02X
mov dword [esp + 8], eax
mov dword [esp], esi
call fcn.00401190
call fcn.0040f800
mov dword [eax], 0x4141a7
mov dword [eax + 4], 0x5c8
mov dword [esp], edi
mov dword [esp + 4], esi
call dword [sym.imp.msvcrt.dll_strcmp]
mov dword [esp + 8], edi
lea edi, [ebx + 0x10c]
test eax, eax
mov dword [esp + 0xc], esi
sete al
mov dword [esp + 4], str.expected__s_got__s_n
movzx eax, al
mov dword [esp], eax
call fcn.00402000
call fcn.0040f800
mov dword [eax], 0x4141a7
mov dword [eax + 4], 0x5c9
lea eax, [ebp - 0x110]
mov dword [esp + 4], eax
mov dword [esp], edi
call dword [sym.imp.msvcrt.dll_strcmp]
lea ecx, [ebp - 0x110]
mov dword [esp + 8], edi
test eax, eax
mov dword [esp + 0xc], ecx
sete al
mov dword [esp + 4], str.got__s_vs__s_n
movzx eax, al
mov dword [esp], eax
call fcn.00402000
call fcn.0040f800
mov dword [eax], 0x4141a7
mov dword [eax + 4], 0x5ca
mov edx, dword [ebp - 0x15c]
mov eax, dword [ebx + 0x190]
mov dword [esp + 4], str.got__d_vs__ld_n
mov dword [esp + 0xc], edx
cmp edx, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00402000
call fcn.0040f800
mov dword [eax], 0x4141a7
mov dword [eax + 4], 0x5cb
mov eax, dword [ebx + 0x190]
mov dword [esp + 8], eax
lea eax, [ebp - 0x158]
mov dword [esp + 4], eax
lea eax, [ebx + 0x194]
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
mov dword [esp + 4], str.mismatch_n
test eax, eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00402000
call fcn.0040f800
mov dword [eax], 0x4141a7
mov dword [eax + 4], 0x5cc
mov edx, dword [ebp - 0x168]
mov eax, dword [ebx + 0x1a0]
mov dword [esp + 4], str.got__d_vs__ld_n
mov dword [esp + 0xc], edx
cmp edx, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00402000
call fcn.0040f800
mov dword [eax], 0x4141a7
mov dword [eax + 4], 0x5cd
xor eax, eax
mov dword [esp + 4], str.shouldnt_get_loopback_n
cmp dword [ebx + 0x1a0], 0x18
setne al
mov dword [esp], eax
call fcn.00402000
call fcn.0040f800
mov dword [eax], 0x4141a7
mov dword [eax + 4], 0x5ce
mov dword [esp + 4], str.A_valid_IP_address_must_be_present_n
movsx eax, byte [ebx + 0x1b0]
mov dword [esp], eax
call fcn.00402000
call fcn.0040f800
mov dword [eax], 0x4141a7
mov dword [eax + 4], 0x5cf
mov dword [esp + 4], str.A_valid_mask_must_be_present_n
movsx eax, byte [ebx + 0x1c0]
mov dword [esp], eax
call fcn.00402000
call fcn.0040f800
mov dword [eax], 0x4141a7
mov dword [eax + 4], 0x5d0
mov dword [esp + 4], str.A_valid_IP_address_must_be_present_n
movsx eax, byte [ebx + 0x1d8]
mov dword [esp], eax
call fcn.00402000
call fcn.0040f800
mov dword [eax], 0x4141a7
mov dword [eax + 4], 0x5d1
mov dword [esp + 4], str.A_valid_mask_must_be_present_n
movsx eax, byte [ebx + 0x1e8]
mov dword [esp], eax
call fcn.00402000
mov ebx, dword [ebx]
test ebx, ebx
jne 0x408980
mov edx, dword [ebp - 0x490]
mov dword [esp], edx
call dword [sym.imp.msvcrt.dll_free]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
ret