Function at 0x10028ca0
Capabilities:
Convert ip address from string

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100d850a
mov eax, dword fs:[0]
push eax
sub esp, 0x94
mov eax, dword [0x1010f16c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x74], 0
push 0x10115840
mov dword [ebp - 0x84], 0x10115840
mov byte [ebp - 0x80], 0
call fcn.10079ba3
add esp, 4
test eax, eax
je 0x10028cfd
push eax
call fcn.10079c5b
add esp, 4
mov byte [ebp - 0x80], 1
mov dword [ebp - 4], 0
cmp dword [0x10115838], 0
je 0x10028d70
push 0x10115840
call fcn.10079bc8
add esp, 4
test eax, eax
je 0x10028d2b
push eax
call fcn.10079c5b
add esp, 4
push str.start_proxy_false_is_started
push 0x100f4fd0
push 0x255
push str.d:projectwireguard_engine_rulesproxy_api.cpp
push 8
mov byte [ebp - 0x80], 0
call fcn.10070dc0
add esp, 0x14
call sym.TunSafe.dll_stop_proxy
push 0x10115840
call fcn.10079ba3
add esp, 4
test eax, eax
je 0x10028d6c
push eax
call fcn.10079c5b
add esp, 4
mov byte [ebp - 0x80], 1
push 0x5c
call fcn.10090929
mov ebx, eax
mov dword [ebp - 0x68], ebx
mov byte [ebp - 4], 0xd
lea ecx, [ebx + 0xc]
mov dword [ebx + 4], 0x100f34ac
push 2
push ecx
mov dword [ebx], method.Concurrency::details::stl_critical_section_win7.virtual_16
mov dword [ebx + 4], 0x100f4850
mov dword [ebp - 0x88], ecx
call fcn.10079b82
mov byte [ebp - 4], 0xf
lea edi, [ebx + 0x3c]
mov dword [ebp - 0x88], edi
lea esi, [edi + 4]
mov dword [edi], 0
push 0x18
mov dword [ebp - 0x8c], esi
mov dword [esi], 0
mov dword [esi + 4], 0
call fcn.10090929
add esp, 0x10
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [esi], eax
mov byte [ebp - 4], 0x12
mov dword [edi + 0xc], 0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0
mov byte [ebp - 4], 0x13
mov ecx, edi
push 8
mov dword [edi], 0x3f800000
call fcn.10019f20
mov byte [ebp - 4], 0
push 0x10
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0
call fcn.10090929
mov ecx, eax
add esp, 4
mov dword [ebp - 0x8c], ecx
mov byte [ebp - 4], 0x16
mov dword [ecx + 4], 1
mov dword [ecx + 8], 1
mov dword [ecx], 0x100f51f0
mov dword [ecx + 0xc], ebx
mov byte [ebp - 4], 0
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x6c], ecx
mov byte [ebp - 4], 0x17
mov eax, dword [0x10115838]
mov esi, dword [0x1011583c]
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x70], eax
mov dword [0x10115838], ebx
mov dword [0x1011583c], ecx
mov byte [ebp - 4], 0
test esi, esi
je 0x10028e9e
or eax, 0xffffffff
lock xadd dword [esi + 4], eax
jne 0x10028e9e
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
or eax, 0xffffffff
lock xadd dword [esi + 8], eax
jne 0x10028e9e
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
cmp byte [0x10115763], 0
mov ecx, str.nfwfp
push dword [0x10115838]
mov eax, str.nftdi
cmove eax, ecx
push eax
call fcn.10076db0
add esp, 8
test eax, eax
je 0x10028eea
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Failed_to_connect_to_driver1_code:_d
push 0x100f4fd0
push 0x25e
push str.d:projectwireguard_engine_rulesproxy_api.cpp
push 0x20
call fcn.10070dc0
add esp, 0x18
push 0x53
lea eax, [ebp - 0x64]
push 0
push eax
call fcn.100a8dc0
mov esi, dword [sym.imp.WS2_32.dll_inet_pton]
lea eax, [ebp - 0x35]
add esp, 0xc
mov dword [ebp - 0x15], 0
mov edi, 2
mov word [ebp - 0x57], di
push eax
push str.127.0.0.1
push edi
call esi
lea eax, [ebp - 0x25]
push eax
movzx eax, word [ebp - 0x57]
push str.255.0.0.0
push eax
call esi
lea eax, [ebp - 0x64]
push 1
push eax
call fcn.100766b0
add esp, 8
test eax, eax
je 0x10028f5d
push eax
push str.nf_addRule_Bypass_local_traffic_false:_d
push 0x100f4fd0
push 0x275
push str.d:projectwireguard_engine_rulesproxy_api.cpp
push 8
call fcn.10070dc0
add esp, 0x18
mov ecx, str.Dnscache
call fcn.10068690
mov ecx, dword [0x10115838]
push 0x53
push 0
mov dword [ecx + 8], eax
lea eax, [ebp - 0x64]
push eax
call fcn.100a8dc0
add esp, 0xc
mov dword [ebp - 0x64], 0x11
mov dword [ebp - 0x60], 0
push 0x35
call dword [sym.imp.WS2_32.dll_htons]
mov word [ebp - 0x59], ax
lea eax, [ebp - 0x64]
push 0
push eax
mov dword [ebp - 0x15], edi
mov byte [ebp - 0x5c], 3
call fcn.100766b0
add esp, 8
test eax, eax
je 0x10028fd2
push eax
push str.nf_addRule_Filter_DNS_packets_false:_d
push 0x100f4fd0
push 0x285
push str.d:projectwireguard_engine_rulesproxy_api.cpp
push 8
call fcn.10070dc0
add esp, 0x18
push 0x53
lea eax, [ebp - 0x64]
push 0
push eax
call fcn.100a8dc0
add esp, 0xc
mov dword [ebp - 0x15], 0
mov word [ebp - 0x57], di
mov byte [ebp - 0x5c], 3
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov dword [ebp - 0x60], eax
lea eax, [ebp - 0x64]
push 0
push eax
call fcn.100766b0
add esp, 8
test eax, eax
je 0x1002902b
push eax
push str.nf_addRule_Bypass_CurrentProcess_traffic_false:_d
push 0x100f4fd0
push 0x290
push str.d:projectwireguard_engine_rulesproxy_api.cpp
push 8
call fcn.10070dc0
add esp, 0x18
call fcn.100053b0
cmp dword [eax + 0x84], 0
jne 0x10029046
cmp dword [eax + 0x8c], 0
jne 0x10029046
xor al, al
jmp 0x10029048
mov al, 1
test al, al
je 0x100290a6
mov ecx, dword [0x10115838]
lea eax, [ecx + 4]
neg ecx
sbb ecx, ecx
and ecx, eax
push ecx
call fcn.10077600
push 0x53
lea eax, [ebp - 0x64]
push 0
push eax
call fcn.100a8dc0
lea eax, [ebp - 0x64]
mov dword [ebp - 0x15], 0x180
push 0
push eax
call fcn.100766b0
add esp, 0x18
test eax, eax
je 0x100290a6
push eax
push str.nf_addRule_Filter_all_ip_traffic_false:_d
push 0x100f4fd0
push 0x29d
push str.d:projectwireguard_engine_rulesproxy_api.cpp
push 8
call fcn.10070dc0
add esp, 0x18
mov byte [ebp - 4], 0x18
push 1
call fcn.10090929
add esp, 4
mov dword [ebp - 0x74], 1
mov esi, eax
lea ecx, [ebp - 0xa0]
mov dword [ebp - 0x68], esi
call fcn.1002b090
mov byte [ebp - 4], 0x19
mov dword [ebp - 0xa0], 0x100f5200
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x90], esi
mov byte [ebp - 4], 0x1b
lea eax, [ebp - 0x7c]
push eax
lea ecx, [ebp - 0xa0]
call fcn.1002b2c0
mov byte [ebp - 4], 0x1c
mov eax, dword [ebp - 0x90]
test eax, eax
je 0x10029112
push 1
push eax
call fcn.1009091b
add esp, 8
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0xa0]
call fcn.1002b1f0
mov eax, 1
mov dword [ebp - 0x74], eax
and eax, 0xfffffffe
mov dword [ebp - 0x74], eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x78]
test eax, eax
jne 0x10029147
push 1
call fcn.10079c88
mov eax, dword [ebp - 0x78]
add esp, 4
push eax
push dword [ebp - 0x7c]
call fcn.1007ad7a
add esp, 8
test eax, eax
je 0x10029160
push eax
call fcn.10079c5b
add esp, 4
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x78], 0
call fcn.100053b0
mov dword [ebp - 0x68], eax
mov edi, dword [eax + 0xf4]
mov ebx, dword [eax + 0xf8]
cmp edi, ebx
je 0x100291e6
mov esi, dword [edi + 4]
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0
test esi, esi
je 0x100291a2
lock inc dword [esi + 4]
mov esi, dword [edi + 4]
mov ecx, dword [edi]
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0x6c], esi
mov byte [ebp - 4], 0x1e
call fcn.10025ec0
mov byte [ebp - 4], 0
test esi, esi
je 0x100291dc
or eax, 0xffffffff
lock xadd dword [esi + 4], eax
jne 0x100291dc
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
or eax, 0xffffffff
lock xadd dword [esi + 8], eax
jne 0x100291dc
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
add edi, 8
cmp edi, ebx
jne 0x10029186
mov eax, dword [ebp - 0x68]
lea ecx, [eax + 0xf1]
mov al, 1
xchg byte [ecx], al
xor eax, eax
mov ecx, 0x1011575c
xchg dword [ecx], eax
xor eax, eax
mov ecx, 0x10115758
xchg dword [ecx], eax
push 0x100
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_SetPriorityClass]
push str.start_proxy_success
push 0x100f4fd0
push 0x2cb
push str.d:projectwireguard_engine_rulesproxy_api.cpp
push 4
call fcn.10070dc0
mov dword [ebp - 4], 0xffffffff
push 0x10115840
call fcn.10079bc8
add esp, 0x18
test eax, eax
je 0x10029250
push eax
call fcn.10079c5b
add esp, 4
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100908e7
mov esp, ebp
pop ebp
ret