Function at 0x47a9c0
Capabilities:
Get local ipv4 addresses
Get mac address on windows
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x298
mov eax, dword [0x4cacfc]
xor eax, esp
mov dword [esp + 0x294], eax
push ebx
push ebp
push esi
mov ebp, ecx
mov eax, dword [ebp]
push edi
xor edi, edi
cmp eax, edi
jg 0x47b399
xor eax, eax
push 0x206
lea ecx, [esp + 0xa2]
push edi
push ecx
mov dword [esp + 0x34], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x20], edi
mov byte [esp + 0x74], 0
mov dword [esp + 0x75], eax
mov dword [esp + 0x79], eax
mov dword [esp + 0x7d], eax
mov dword [esp + 0x81], eax
mov byte [esp + 0x85], al
mov dword [esp + 0x24], edi
mov word [esp + 0xa8], ax
call fcn.00487630
add esp, 0xc
lea edx, [esp + 0x14]
push edx
push edi
call sub.IPHLPAPI.DLL_GetAdaptersInfo
mov eax, dword [esp + 0x14]
push eax
call fcn.0048690e
mov ecx, dword [esp + 0x18]
push ecx
mov esi, eax
push edi
push esi
mov dword [esp + 0x34], esi
call fcn.00487630
add esp, 0x10
lea edx, [esp + 0x14]
push edx
push esi
call sub.IPHLPAPI.DLL_GetAdaptersInfo
test eax, eax
je 0x47aa85
cmp esi, edi
je 0x47b03a
push esi
call fcn.00487d04
add esp, 4
jmp 0x47b03a
cmp esi, edi
je 0x47b03a
jmp 0x47aa94
mov esi, dword [esp + 0x24]
lea eax, [esi + 8]
push eax
call fcn.00466000
add esp, 4
mov ebx, eax
push ebx
mov ecx, ebp
call fcn.00479fb0
mov edi, eax
mov dword [esp + 0x2c], edi
cmp edi, 0xffffffff
jne 0x47aacd
test ebx, ebx
je 0x47aac2
push ebx
call fcn.00487d04
add esp, 4
mov eax, dword [esi]
mov dword [esp + 0x24], eax
jmp 0x47b02d
push 0
lea ecx, [esp + 0x1c]
push ecx
push 4
lea edx, [esp + 0x28]
push edx
push 4
lea eax, [esp + 0x24]
push eax
push 0x170002
push edi
mov dword [esp + 0x30], 0x10114
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x47b01c
cmp dword [esp + 0x1c], 0
jne 0x47b01c
mov ecx, dword [ebp]
shl ecx, 4
lea edx, [ecx + ebp + 0xc48]
push edx
push ebx
call dword [sym.imp.ole32.dll_CLSIDFromString]
movzx eax, byte [esi + 0x199]
movzx ecx, byte [esi + 0x198]
movzx edx, byte [esi + 0x197]
push eax
movzx eax, byte [esi + 0x196]
push ecx
movzx ecx, byte [esi + 0x195]
push edx
movzx edx, byte [esi + 0x194]
push eax
push ecx
push edx
lea eax, [esp + 0x94]
push 0x4ab1a4
push eax
call fcn.00488a44
mov eax, dword [ebp]
mov edx, dword [esp + 0x9c]
lea ecx, [eax + eax*8]
lea eax, [ebp + ecx*2 + 0x194]
mov dword [eax], edx
mov ecx, dword [esp + 0xa0]
mov dword [eax + 4], ecx
mov edx, dword [esp + 0xa4]
mov ebx, dword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov dword [eax + 8], edx
mov ecx, dword [esp + 0xa8]
add esp, 0x20
mov dword [eax + 0xc], ecx
mov dl, byte [esp + 0x8c]
push 0
mov byte [eax + 0x10], dl
lea eax, [esp + 0x1c]
push eax
push 0x12
lea ecx, [esp + 0x74]
push ecx
push 4
lea edx, [esp + 0x24]
push edx
push 0x170002
push edi
mov dword [esp + 0x30], 0x1010101
call ebx
test eax, eax
je 0x47ac44
movzx eax, byte [esp + 0x6d]
movzx ecx, byte [esp + 0x6c]
movzx edx, byte [esp + 0x6b]
push eax
movzx eax, byte [esp + 0x6e]
push ecx
movzx ecx, byte [esp + 0x71]
push edx
movzx edx, byte [esp + 0x74]
push eax
push ecx
push edx
lea eax, [esp + 0x94]
push 0x4ab1c4
push eax
call fcn.00488a44
mov eax, dword [ebp]
mov edx, dword [esp + 0x9c]
lea ecx, [eax + eax*8]
lea eax, [ebp + ecx*2 + 0x2c]
mov dword [eax], edx
mov ecx, dword [esp + 0xa0]
mov dword [eax + 4], ecx
mov edx, dword [esp + 0xa4]
mov dword [eax + 8], edx
mov ecx, dword [esp + 0xa8]
mov dword [eax + 0xc], ecx
mov dl, byte [esp + 0xac]
add esp, 0x20
mov byte [eax + 0x10], dl
xor eax, eax
push eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
mov word [esp + 0x7c], ax
lea eax, [esp + 0x1c]
push eax
push 0x12
lea ecx, [esp + 0x74]
push ecx
push 4
lea edx, [esp + 0x24]
push edx
push 0x170002
push edi
mov dword [esp + 0x30], 0x1010102
call ebx
test eax, eax
je 0x47acfa
movzx eax, byte [esp + 0x6d]
movzx ecx, byte [esp + 0x6c]
movzx edx, byte [esp + 0x6b]
push eax
movzx eax, byte [esp + 0x6e]
push ecx
movzx ecx, byte [esp + 0x71]
push edx
movzx edx, byte [esp + 0x74]
push eax
push ecx
push edx
lea eax, [esp + 0x94]
push 0x4ab1e4
push eax
call fcn.00488a44
mov eax, dword [ebp]
mov edx, dword [esp + 0x9c]
lea ecx, [eax + eax*8]
lea eax, [ebp + ecx*2 + 0xe0]
mov dword [eax], edx
mov ecx, dword [esp + 0xa0]
mov dword [eax + 4], ecx
mov edx, dword [esp + 0xa4]
mov dword [eax + 8], edx
mov ecx, dword [esp + 0xa8]
mov dword [eax + 0xc], ecx
mov dl, byte [esp + 0xac]
add esp, 0x20
mov byte [eax + 0x10], dl
push 0
lea eax, [esp + 0x1c]
push eax
push 4
lea ecx, [esp + 0x28]
push ecx
push 4
lea edx, [esp + 0x24]
push edx
push 0x170002
push edi
mov dword [esp + 0x30], 0x1010e
call ebx
test eax, eax
je 0x47ad38
test byte [esp + 0x1c], 0x20
je 0x47ad38
mov eax, dword [ebp]
mov dword [ebp + eax*4 + 0x1738], 1
lea ecx, [esi + 0x10c]
push ecx
call fcn.00466000
mov edx, dword [ebp]
add esp, 4
shl edx, 8
lea edx, [edx + ebp + 0x248]
movzx ecx, word [eax]
mov word [edx], cx
add eax, 2
add edx, 2
test cx, cx
jne 0x47ad54
add esi, 0x1ac
mov ecx, 0xa
lea edi, [esp + 0x40]
rep movsd dword es:[edi], dword [esi]
xor ebx, ebx
jmp 0x47ad80
mov eax, dword [ebp]
mov edx, dword [esp + 0x44]
lea ecx, [ebx + eax*4]
add ecx, eax
shl ecx, 4
mov dword [ecx + ebp + 0xce8], edx
lea eax, [ecx + ebp + 0xce8]
mov ecx, dword [esp + 0x48]
mov dword [eax + 4], ecx
mov edx, dword [esp + 0x4c]
mov dword [eax + 8], edx
mov ecx, dword [esp + 0x50]
mov dword [eax + 0xc], ecx
mov eax, dword [ebp]
mov ecx, dword [esp + 0x54]
mov edi, dword [sym.imp.WS2_32.dll_inet_addr]
lea edx, [ebx + eax*4]
add edx, eax
shl edx, 4
lea eax, [edx + ebp + 0x1008]
mov dword [eax], ecx
mov edx, dword [esp + 0x58]
mov dword [eax + 4], edx
mov ecx, dword [esp + 0x5c]
mov dword [eax + 8], ecx
mov edx, dword [esp + 0x60]
mov dword [eax + 0xc], edx
lea eax, [esp + 0x44]
push eax
call edi
mov ecx, dword [ebp]
lea edx, [ebx + ecx*4]
add edx, ecx
mov dword [ebp + edx*4 + 0x13c8], eax
lea eax, [esp + 0x54]
push eax
call edi
mov ecx, dword [ebp]
lea edx, [ebx + ecx*4]
add edx, ecx
mov dword [ebp + edx*4 + 0x1490], eax
mov eax, dword [ebp]
inc dword [ebp + eax*4 + 4]
mov esi, dword [esp + 0x40]
lea eax, [ebp + eax*4 + 4]
test esi, esi
je 0x47ae3f
inc ebx
cmp ebx, 5
mov ecx, 0xa
lea edi, [esp + 0x40]
rep movsd dword es:[edi], dword [esi]
jl 0x47ad80
mov edi, dword [sym.imp.WS2_32.dll_inet_addr]
mov ecx, dword [ebp]
mov esi, dword [esp + 0x24]
mov edx, dword [esi + 0x1d8]
lea eax, [esi + 0x1d8]
shl ecx, 4
lea ecx, [ecx + ebp + 0x1328]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov edx, dword [eax + 0xc]
push eax
mov dword [ecx + 0xc], edx
call edi
mov ecx, dword [ebp]
mov dword [ebp + ecx*4 + 0x1558], eax
mov eax, dword [esi + 0x19c]
mov edx, dword [ebp]
mov dword [ebp + edx*4 + 0x1580], eax
mov edx, dword [esi + 0x1a4]
mov ecx, dword [ebp]
xor eax, eax
mov dword [ebp + ecx*4 + 0x16e8], edx
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x30]
push eax
lea eax, [esi + 8]
xor ebx, ebx
push eax
mov dword [esp + 0x38], ebx
call fcn.00466000
add esp, 4
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x48]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x4c]
mov dword [eax + 8], ecx
mov ecx, ebp
mov dword [eax + 0xc], edx
call fcn.0047a060
mov ecx, dword [ebp]
mov dword [ebp + ecx*4 + 0x1710], eax
mov eax, dword [esp + 0x20]
lea edx, [esp + 0x14]
push edx
mov dword [esp + 0x18], ebx
mov ecx, dword [esi + 0x19c]
push eax
push ecx
call sub.IPHLPAPI.DLL_GetPerAdapterInfo
cmp eax, 0x6f
jne 0x47b006
mov edx, dword [esp + 0x14]
push edx
call fcn.0048690e
mov edi, eax
mov eax, dword [esp + 0x18]
push eax
push ebx
push edi
mov dword [esp + 0x30], edi
call fcn.00487630
mov edx, dword [esi + 0x19c]
add esp, 0x10
lea ecx, [esp + 0x14]
push ecx
push edi
push edx
call sub.IPHLPAPI.DLL_GetPerAdapterInfo
test eax, eax
jne 0x47afed
lea ebx, [edi + 0xc]
test ebx, ebx
je 0x47afed
lea edi, [ebx + 4]
mov ecx, 0x4ab01e
mov eax, edi
jmp 0x47af70
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x47af90
test dl, dl
je 0x47af8c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x47af90
add eax, 2
add ecx, 2
test dl, dl
jne 0x47af70
xor eax, eax
jmp 0x47af95
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x47afe9
mov eax, dword [ebp]
mov ecx, dword [edi]
shl eax, 4
lea eax, [eax + ebp + 0x15a8]
mov dword [eax], ecx
mov edx, dword [edi + 4]
mov dword [eax + 4], edx
mov ecx, dword [edi + 8]
mov dword [eax + 8], ecx
mov edx, dword [edi + 0xc]
mov dword [eax + 0xc], edx
mov eax, dword [ebx]
test eax, eax
je 0x47afe9
mov ecx, dword [ebp]
mov edx, dword [eax + 4]
add eax, 4
shl ecx, 4
lea ecx, [ecx + ebp + 0x1648]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov edi, dword [esp + 0x20]
test edi, edi
je 0x47b006
mov ecx, dword [esp + 0x20]
push ecx
call fcn.00487d04
add esp, 4
mov dword [esp + 0x20], 0
mov edx, dword [esp + 0x2c]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
inc dword [ebp]
mov eax, dword [esi]
mov dword [esp + 0x24], eax
jmp 0x47b02d
test edi, edi
je 0x47b027
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [esi]
mov dword [esp + 0x24], ecx
cmp dword [esp + 0x24], 0
jne 0x47aa90
xor edi, edi
mov eax, dword [ebp]
cmp eax, edi
jg 0x47b399
lea edx, [esp + 0x28]
push edx
push edi
push edi
push 0x10
push 2
call sub.IPHLPAPI.DLL_GetAdaptersAddresses
mov eax, dword [esp + 0x28]
push eax
call fcn.0048690e
mov ecx, dword [esp + 0x2c]
push ecx
mov esi, eax
push edi
push esi
call fcn.00487630
add esp, 0x10
lea edx, [esp + 0x28]
push edx
push esi
push edi
push 0x10
push 2
call sub.IPHLPAPI.DLL_GetAdaptersAddresses
test eax, eax
je 0x47b09a
cmp esi, edi
je 0x47b396
push esi
call fcn.00487d04
add esp, 4
jmp 0x47b396
cmp esi, edi
je 0x47b396
mov eax, dword [esi + 0xc]
push eax
call fcn.00466000
mov ebx, eax
push ebx
push 0x4ab204
lea ecx, [esp + 0xa8]
push 0x104
push ecx
call fcn.00466960
add esp, 0x14
push ebx
mov ecx, ebp
call fcn.00479fb0
mov edi, eax
cmp edi, 0xffffffff
jne 0x47b0ed
test ebx, ebx
je 0x47b38b
push ebx
call fcn.00487d04
add esp, 4
jmp 0x47b38b
push 0
lea edx, [esp + 0x1c]
push edx
push 4
lea eax, [esp + 0x28]
push eax
push 4
lea ecx, [esp + 0x24]
push ecx
push 0x170002
push edi
mov dword [esp + 0x30], 0x10114
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x47b380
cmp dword [esp + 0x1c], 0
jne 0x47b380
mov edx, dword [ebp]
shl edx, 4
lea eax, [edx + ebp + 0xc48]
push eax
push ebx
call dword [sym.imp.ole32.dll_CLSIDFromString]
movzx ecx, byte [esi + 0x31]
movzx edx, byte [esi + 0x30]
movzx eax, byte [esi + 0x2f]
push ecx
movzx ecx, byte [esi + 0x2e]
push edx
movzx edx, byte [esi + 0x2d]
push eax
movzx eax, byte [esi + 0x2c]
push ecx
push edx
push eax
lea ecx, [esp + 0x94]
push 0x4ab214
push ecx
call fcn.00488a44
mov eax, dword [ebp]
mov ecx, dword [esp + 0x9c]
mov ebx, dword [sym.imp.KERNEL32.dll_DeviceIoControl]
lea edx, [eax + eax*8]
lea eax, [ebp + edx*2 + 0x194]
mov dword [eax], ecx
mov edx, dword [esp + 0xa0]
mov dword [eax + 4], edx
mov ecx, dword [esp + 0xa4]
mov dword [eax + 8], ecx
mov edx, dword [esp + 0xa8]
add esp, 0x20
push 0
mov dword [eax + 0xc], edx
mov cl, byte [esp + 0x90]
lea edx, [esp + 0x1c]
push edx
push 0x12
mov byte [eax + 0x10], cl
lea eax, [esp + 0x74]
push eax
push 4
lea ecx, [esp + 0x24]
push ecx
push 0x170002
push edi
mov dword [esp + 0x30], 0x1010101
call ebx
test eax, eax
je 0x47b254
movzx edx, byte [esp + 0x6d]
movzx eax, byte [esp + 0x6c]
movzx ecx, byte [esp + 0x6b]
push edx
movzx edx, byte [esp + 0x6e]
push eax
movzx eax, byte [esp + 0x71]
push ecx
movzx ecx, byte [esp + 0x74]
push edx
push eax
push ecx
lea edx, [esp + 0x94]
push 0x4ab234
push edx
call fcn.00488a44
mov eax, dword [ebp]
mov ecx, dword [esp + 0x9c]
lea eax, [eax + eax*8]
mov dword [ebp + eax*2 + 0x2c], ecx
mov edx, dword [esp + 0xa0]
lea eax, [ebp + eax*2 + 0x2c]
mov dword [eax + 4], edx
mov ecx, dword [esp + 0xa4]
mov dword [eax + 8], ecx
mov edx, dword [esp + 0xa8]
mov dword [eax + 0xc], edx
mov cl, byte [esp + 0xac]
add esp, 0x20
mov byte [eax + 0x10], cl
xor eax, eax
push eax
lea edx, [esp + 0x1c]
push edx
push 0x12
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov word [esp + 0x84], ax
lea eax, [esp + 0x74]
push eax
push 4
lea ecx, [esp + 0x24]
push ecx
push 0x170002
push edi
mov dword [esp + 0x30], 0x1010102
call ebx
test eax, eax
je 0x47b315
movzx edx, byte [esp + 0x6d]
movzx eax, byte [esp + 0x6c]
movzx ecx, byte [esp + 0x6b]
push edx
movzx edx, byte [esp + 0x6e]
push eax
movzx eax, byte [esp + 0x71]
push ecx
movzx ecx, byte [esp + 0x74]
push edx
push eax
push ecx
lea edx, [esp + 0x94]
push 0x4ab254
push edx
call fcn.00488a44
mov eax, dword [ebp]
mov ecx, dword [esp + 0x9c]
lea eax, [eax + eax*8]
mov dword [ebp + eax*2 + 0xe0], ecx
mov edx, dword [esp + 0xa0]
lea eax, [ebp + eax*2 + 0xe0]
mov dword [eax + 4], edx
mov ecx, dword [esp + 0xa4]
mov dword [eax + 8], ecx
mov edx, dword [esp + 0xa8]
mov dword [eax + 0xc], edx
mov cl, byte [esp + 0xac]
add esp, 0x20
mov byte [eax + 0x10], cl
mov edx, dword [ebp]
mov ecx, dword [esi + 0x24]
shl edx, 8
lea edx, [edx + ebp + 0x248]
movzx eax, word [ecx]
mov word [edx], ax
add ecx, 2
add edx, 2
test ax, ax
jne 0x47b325
push 0
lea eax, [esp + 0x1c]
push eax
push 4
lea ecx, [esp + 0x28]
push ecx
push 4
lea edx, [esp + 0x24]
push edx
push 0x170002
push edi
mov dword [esp + 0x30], 0x1010e
call ebx
test eax, eax
je 0x47b374
test byte [esp + 0x1c], 0x20
je 0x47b374
mov eax, dword [ebp]
mov dword [ebp + eax*4 + 0x1738], 1
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
inc dword [ebp]
jmp 0x47b38b
test edi, edi
je 0x47b38b
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, dword [esi + 8]
test esi, esi
jne 0x47b0a2
mov eax, dword [ebp]
mov ecx, dword [esp + 0x2a4]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00486dc0
add esp, 0x298
ret