Function at 0x4024c0
Capabilities:
Get local ipv4 addresses
Register network filter via wfp api

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1fc
mov eax, dword [0x436010]
xor eax, esp
mov dword [esp + 0x1f8], eax
push ebx
xorps xmm0, xmm0
movlpd qword [esp + 0x10], xmm0
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
push esi
push edi
mov dword [esp + 0x10], eax
push dword [0x436a70]
call fcn.0040ed5a
add esp, 4
mov esi, eax
push 0x436a70
push esi
push 0
push 0
push 2
call dword [sym.imp.IPHLPAPI.DLL_GetAdaptersAddresses]
mov edi, eax
test edi, edi
je 0x402584
push edi
push ecx
mov edx, str.could_not_fetch_network_device_list:
mov ecx, 0x4370e8
call fcn.00404900
add esp, 4
mov ecx, eax
call fcn.00402b90
push eax
call fcn.00404f50
add esp, 4
push esi
call fcn.0040e9bf
add esp, 4
cmp edi, 0x6f
jne 0x402567
mov ecx, dword [esp + 0x10]
mov eax, ebx
mov esi, ecx
add ecx, 1
mov dword [esp + 0x10], ecx
adc ebx, 0
test eax, eax
jne 0x402567
cmp esi, 2
jb 0x4024f2
push edi
push ecx
mov edx, str.could_not_fetch_network_device_list:
mov ecx, 0x4370e8
call fcn.00404900
add esp, 4
mov ecx, eax
call fcn.00402b90
jmp 0x4025f4
mov edx, str.fetch_network_device_list_success_
mov ecx, 0x437028
call fcn.00404900
test esi, esi
je 0x4025de
nop word [eax + eax]
mov eax, dword [esi + 0x28]
mov ecx, str.HoxxVPN
mov dx, word [ecx]
cmp dx, word [eax]
jne 0x4025ce
test dx, dx
je 0x4025ca
mov dx, word [ecx + 2]
cmp dx, word [eax + 2]
jne 0x4025ce
add ecx, 4
add eax, 4
test dx, dx
jne 0x4025a8
xor eax, eax
jmp 0x4025d3
sbb eax, eax
or eax, 1
test eax, eax
je 0x402617
mov esi, dword [esi + 8]
test esi, esi
jne 0x4025a0
mov edx, str.could_not_find
mov ecx, 0x4370e8
call fcn.00404900
mov ecx, eax
call fcn.00404ca0
push eax
call fcn.00404f50
mov eax, 1
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1f8]
xor ecx, esp
call fcn.00408286
mov esp, ebp
pop ebp
ret
mov edi, dword [esi + 4]
mov edx, str.found
push edi
mov ecx, 0x437028
call fcn.00404900
mov ecx, eax
call fcn.00404ca0
push ecx
mov edx, str._at_index
mov ecx, eax
call fcn.00404900
add esp, 4
mov ecx, eax
call fcn.00402b90
push eax
call fcn.00404f50
add esp, 4
lea eax, [esp + 0x180]
push 0x30
push 0
push eax
call fcn.00409ce0
add esp, 0xc
mov dword [esp + 0x198], 1
lea eax, [esp + 0x14]
mov dword [esp + 0x14], 0
push eax
lea eax, [esp + 0x184]
push eax
push 0
push 0xffffffffffffffff
push 0
call dword [sym.imp.fwpuclnt.dll_FwpmEngineOpen0]
test eax, eax
je 0x4026b5
push eax
push ecx
mov edx, str.could_not_connect_to_to_filtering_engine:
mov ecx, 0x4370e8
call fcn.00404900
add esp, 4
mov ecx, eax
call fcn.00402b90
jmp 0x4025f4
mov edx, str.connected_to_filtering_engine
mov ecx, 0x437028
call fcn.00404900
push eax
call fcn.00404f50
add esp, 4
lea eax, [esp + 0x24]
push 0x2c
push 0
push eax
call fcn.00409ce0
add esp, 0xc
lea eax, [esp + 0x24]
push eax
call dword [sym.imp.RPCRT4.dll_UuidCreate]
mov eax, 0xffff
mov dword [esp + 0x34], str.Smart_DNS_Block_HoxxVPN
mov word [esp + 0x4c], ax
lea eax, [esp + 0x24]
push 0
push eax
push dword [esp + 0x1c]
call dword [sym.imp.fwpuclnt.dll_FwpmSubLayerAdd0]
test eax, eax
je 0x402730
push eax
push ecx
mov edx, str.could_not_create_filtering_sublayer:
mov ecx, 0x4370e8
call fcn.00404900
add esp, 4
mov ecx, eax
call fcn.00402b90
jmp 0x4025f4
mov edx, str.created_filtering_sublayer
mov ecx, 0x437028
call fcn.00404900
push eax
call fcn.00404f50
movups xmm0, xmmword [0x427210]
add esp, 4
mov dword [esp + 0x1dc], 0
mov eax, 0x11
mov dword [esp + 0x1e0], 1
mov word [esp + 0x1e4], ax
mov eax, 0x35
movups xmmword [esp + 0x1cc], xmm0
push 0x98
movups xmm0, xmmword [0x427220]
mov word [esp + 0x204], ax
lea eax, [esp + 0x54]
push 0
push eax
movups xmmword [esp + 0x1f4], xmm0
mov dword [esp + 0x204], 0
mov dword [esp + 0x208], 2
call fcn.00409ce0
movups xmm0, xmmword [esp + 0x30]
mov esi, dword [sym.imp.fwpuclnt.dll_FwpmFilterAdd0]
lea eax, [esp + 0x1d8]
add esp, 0xc
mov dword [esp + 0xa4], eax
lea eax, [esp + 0x18]
mov dword [esp + 0xa0], 2
movups xmmword [esp + 0x88], xmm0
mov dword [esp + 0x60], str.HoxxVPN
movups xmm0, xmmword [0x427200]
push eax
push 0
lea eax, [esp + 0x58]
mov dword [esp + 0xb0], 0x1001
push eax
push dword [esp + 0x20]
movups xmmword [esp + 0x88], xmm0
mov dword [esp + 0xa8], 4
mov dword [esp + 0xac], 0x436a68
call esi
test eax, eax
je 0x40285a
push eax
push ecx
mov edx, str.could_not_block_port_53:
mov ecx, 0x4370e8
call fcn.00404900
add esp, 4
mov ecx, eax
call fcn.00402b90
jmp 0x4025f4
push dword [esp + 0x1c]
mov edx, str.port_53_blocked_with_filter
mov ecx, 0x437028
push dword [esp + 0x1c]
call fcn.00404900
mov ecx, eax
call fcn.004029d0
push eax
call fcn.00404f50
movups xmm0, xmmword [0x427230]
add esp, 4
mov dword [esp + 0x1c0], 0
lea eax, [esp + 0xe8]
mov dword [esp + 0x1c4], 3
movups xmmword [esp + 0x1b0], xmm0
mov dword [esp + 0x1c8], edi
push 0x98
push 0
push eax
call fcn.00409ce0
movups xmm0, xmmword [esp + 0x30]
add esp, 0xc
mov dword [esp + 0x138], 1
lea eax, [esp + 0x1b0]
mov dword [esp + 0xf8], str.HoxxVPN
mov dword [esp + 0x13c], eax
lea eax, [esp + 0x18]
movups xmmword [esp + 0x120], xmm0
push eax
movups xmm0, xmmword [0x427200]
push 0
lea eax, [esp + 0xf0]
mov dword [esp + 0x148], 0x1002
push eax
push dword [esp + 0x20]
movups xmmword [esp + 0x120], xmm0
mov dword [esp + 0x140], 4
mov dword [esp + 0x144], 0x436a60
call esi
test eax, eax
je 0x402971
push eax
mov edx, str.could_not_allow_traffic_on
mov ecx, 0x4370e8
call fcn.00404900
mov ecx, eax
call fcn.00404ca0
push ecx
mov edx, 0x432420
mov ecx, eax
call fcn.00404900
add esp, 4
mov ecx, eax
call fcn.00402b90
jmp 0x4025f4
push dword [esp + 0x1c]
mov edx, str.allowed_traffic_on
mov ecx, 0x437028
push dword [esp + 0x1c]
call fcn.00404900
mov ecx, eax
call fcn.00404ca0
mov edx, str._with_filter
mov ecx, eax
call fcn.00404900
mov ecx, eax
call fcn.004029d0
push eax
call fcn.00404f50
add esp, 4
push str.pause
call fcn.0040e98c
mov ecx, dword [esp + 0x208]
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00408286
mov esp, ebp
pop ebp
ret