Function at 0x12a1eeda
Capabilities:
Get local ipv4 addresses

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push ecx
mov eax, dword [0x12a37010]
cmp eax, 0x12a37010
je 0x12a1ef13
test byte [eax + 0x1c], 1
je 0x12a1ef13
cmp byte [eax + 0x19], 5
jb 0x12a1ef13
push dword [ebp + 8]
push 0x12a02c88
push 0x19
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.12a039b3
mov eax, dword [0x12a37010]
mov ecx, dword [ebp + 0xc]
push ebx
xor ebx, ebx
mov dword [ebp - 4], ebx
cmp ecx, ebx
jne 0x12a1ef2a
mov ebx, 0x80070057
jmp 0x12a1f074
push esi
push edi
lea eax, [ebp - 4]
push eax
push ebx
push ebx
push 0xe
push dword [ebp + 8]
mov dword [ecx], ebx
call sub.IPHLPAPI.DLL_GetAdaptersAddresses
mov edi, eax
mov eax, dword [0x12a37010]
mov dword [ebp - 8], 0xa
mov esi, 0x8007000e
cmp edi, 0x6f
jne 0x12a1efbf
mov edi, dword [ebp + 0xc]
push dword [edi]
call sub.msvcrt.dll_void___cdecl_operator_delete___void__
push dword [ebp - 4]
call sub.msvcrt.dll_void____cdecl_operator_new___unsigned_int_
pop ecx
pop ecx
mov dword [edi], eax
test eax, eax
jne 0x12a1efa2
push 8
mov ebx, esi
pop edi
mov eax, dword [0x12a37010]
cmp eax, 0x12a37010
je 0x12a1efba
test byte [eax + 0x1c], 2
je 0x12a1efba
cmp byte [eax + 0x19], 2
jb 0x12a1efba
push esi
push 0x12a02c88
push 0x1a
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.12a039b3
jmp 0x12a1efb5
lea ecx, [ebp - 4]
push ecx
push eax
push 0
push 0xe
push dword [ebp + 8]
call sub.IPHLPAPI.DLL_GetAdaptersAddresses
mov edi, eax
mov eax, dword [0x12a37010]
dec dword [ebp - 8]
jne 0x12a1ef51
test edi, edi
je 0x12a1f017
mov ebx, edi
jle 0x12a1efd3
and ebx, 0xffff
or ebx, 0x80070000
test ebx, ebx
jl 0x12a1efdc
mov ebx, 0x80004005
cmp eax, 0x12a37010
je 0x12a1f017
test byte [eax + 0x1c], 2
je 0x12a1f017
movzx ecx, byte [eax + 0x19]
xor edx, edx
test ebx, ebx
setl dl
dec edx
and edx, 3
inc edx
inc edx
cmp ecx, edx
jl 0x12a1f017
push edi
push ebx
push 0x12a02c88
push 0x1b
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.12a1eea8
mov eax, dword [0x12a37010]
test ebx, ebx
jl 0x12a1f05f
mov edx, 0x178
cmp dword [ebp - 4], edx
jae 0x12a1f05b
mov ecx, 0x8000ffff
mov ebx, ecx
cmp eax, 0x12a37010
je 0x12a1f05f
test byte [eax + 0x1c], 2
je 0x12a1f05f
cmp byte [eax + 0x19], 2
jb 0x12a1f05f
push edx
push dword [ebp - 4]
push ecx
push 0x12a02c88
push 0x1c
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.12a1ee70
mov eax, dword [0x12a37010]
test ebx, ebx
jge 0x12a1f072
mov esi, dword [ebp + 0xc]
push dword [esi]
call sub.msvcrt.dll_void___cdecl_operator_delete___void__
and dword [esi], 0
mov eax, dword [0x12a37010]
pop ecx
pop edi
pop esi
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x12a1f08d
test ebx, ebx
jl 0x12a1f084
mov eax, dword [ebp - 4]
jmp 0x12a1f086
xor eax, eax
mov dword [ecx], eax
mov eax, dword [0x12a37010]
cmp eax, 0x12a37010
je 0x12a1f0e1
test byte [eax + 0x1c], 1
je 0x12a1f0e1
movzx edx, byte [eax + 0x19]
mov dword [ebp + 8], eax
xor eax, eax
test ebx, ebx
setl al
dec eax
and eax, 3
inc eax
inc eax
cmp edx, eax
mov eax, dword [ebp + 8]
jl 0x12a1f0e1
test ecx, ecx
je 0x12a1f0bd
mov edx, dword [ecx]
jmp 0x12a1f0bf
xor edx, edx
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x12a1f0ca
mov ecx, dword [ecx]
jmp 0x12a1f0cc
xor ecx, ecx
push edx
push ecx
push ebx
push 0x12a02c88
push 0x1d
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.12a1ee70
mov eax, ebx
pop ebx
leave
ret 0xc