Function at 0x403f40
Capabilities:
Persist via windows service
Query or enumerate registry value
Reference cloudflare dns server
Set registry value

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x431f7d
push eax
mov eax, dword [0x441e0c]
mov dword fs:[0], esp
sub esp, 0x864
test eax, eax
push ebx
push ebp
push esi
push edi
je 0x403f78
call fcn.00402960
dec eax
neg eax
sbb eax, eax
inc eax
jmp 0x404cf8
push 0x441e2c
lea ecx, [esp + 0x18]
call fcn.00431b90
mov eax, dword [0x441778]
mov edi, dword [sym.imp.MSVCRT.dll_sprintf]
xor esi, esi
mov dword [esp + 0x87c], 0
test eax, eax
jle 0x403ff3
test esi, esi
mov ecx, str.__d._d._d._d
jg 0x403fb0
mov ecx, 0x4365b4
mov eax, dword [0x44177c]
xor edx, edx
mov dl, byte [eax + esi*4 + 3]
push edx
xor edx, edx
mov dl, byte [eax + esi*4 + 2]
push edx
xor edx, edx
mov dl, byte [eax + esi*4 + 1]
push edx
xor edx, edx
mov dl, byte [eax + esi*4]
lea eax, [esp + 0x4c]
push edx
push ecx
push eax
call edi
add esp, 0x18
lea ecx, [esp + 0x40]
push ecx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::operator
mov eax, dword [0x441778]
inc esi
cmp esi, eax
jl 0x403fa2
mov byte [esp + 0x1b], 0
mov byte [esp + 0x13], 0
mov eax, dword [0x441e28]
mov ebp, dword [sym.imp.WS2_32.dll_WSAGetLastError]
test eax, eax
jne 0x404985
push 0x441e2c
lea ecx, [esp + 0x24]
call fcn.00431b90
push 0x441e2c
lea ecx, [esp + 0x20]
mov byte [esp + 0x880], 1
call fcn.00431b90
push str.Array_Networks
lea edx, [esp + 0x24]
push str.SOFTWARE_s
push edx
mov byte [esp + 0x888], 2
call sub.MFC42.DLL_CString::Format
push str.NoLocalDNSByUser
lea eax, [esp + 0x2c]
push 0x43657c
push eax
call sub.MFC42.DLL_CString::Format
add esp, 0x14
lea edx, [esp + 0x20]
mov ecx, esp
mov dword [esp + 0x2c], esp
push edx
call sub.MFC42.DLL_CString::CString_1
push ecx
lea eax, [esp + 0x28]
mov ecx, esp
mov dword [esp + 0x40], esp
push eax
mov byte [esp + 0x888], 3
call sub.MFC42.DLL_CString::CString_1
mov byte [esp + 0x884], 2
call fcn.00411100
mov ebx, eax
mov eax, dword [0x441ff4]
add esp, 8
test eax, eax
je 0x404129
mov ecx, dword [0x441fd4]
mov eax, dword [ecx]
cmp eax, 3
je 0x4040c8
mov edx, dword [0x441fdc]
cmp dword [edx], 0
jne 0x404129
cmp eax, 3
jle 0x404129
call ebp
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov eax, dword [0x436030]
test eax, eax
jge 0x4040e7
mov eax, dword [0x441fa0]
mov dword [0x436030], eax
call fcn.0041c4b1
test eax, eax
je 0x40411b
mov ecx, dword [0x436030]
push 3
push ecx
push 0x41f
push str.C:_build_rel_sp_8_4_6_2_srcwindows_atpclient_arr_srvsAdaptCof.cpp
call fcn.0041c4e1
push ebx
push str.Adapter:_Get_the_value_of_no_local_dns_set_by_user_is__d_._n
call fcn.0041c506
add esp, 0x18
call fcn.0041c4cc
push esi
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp ebx, 1
jne 0x404137
mov byte [esp + 0x13], bl
jmp 0x40424e
call fcn.0041edcd
cmp eax, 4
jl 0x4041c8
mov eax, dword [0x441ff4]
mov byte [esp + 0x1b], 1
test eax, eax
je 0x40424e
mov edx, dword [0x441fd4]
mov eax, dword [edx]
cmp eax, 3
je 0x40417c
mov ecx, dword [0x441fdc]
cmp dword [ecx], 0
jne 0x40424e
cmp eax, 3
jle 0x40424e
call ebp
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov eax, dword [0x436030]
test eax, eax
jge 0x40419d
mov edx, dword [0x441fa0]
mov dword [0x436030], edx
call fcn.0041c4b1
test eax, eax
je 0x404240
mov eax, dword [0x436030]
push 3
push eax
push 0x427
push str.C:_build_rel_sp_8_4_6_2_srcwindows_atpclient_arr_srvsAdaptCof.cpp
call fcn.0041c4e1
push str.Adapter:_we_should_clear_PPP_dns_and_add_them_to_our_vnic._n
jmp 0x404233
mov eax, dword [0x441ff4]
test eax, eax
je 0x40424e
mov ecx, dword [0x441fd4]
mov eax, dword [ecx]
cmp eax, 3
je 0x4041ee
mov edx, dword [0x441fdc]
cmp dword [edx], 0
jne 0x40424e
cmp eax, 3
jle 0x40424e
call ebp
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov eax, dword [0x436030]
test eax, eax
jge 0x40420d
mov eax, dword [0x441fa0]
mov dword [0x436030], eax
call fcn.0041c4b1
test eax, eax
je 0x404240
mov ecx, dword [0x436030]
push 3
push ecx
push 0x42b
push str.C:_build_rel_sp_8_4_6_2_srcwindows_atpclient_arr_srvsAdaptCof.cpp
call fcn.0041c4e1
push str.Adapter:_enable_local_dns__we_do_nothing_to_local_adapter._n
call fcn.0041c506
add esp, 0x14
call fcn.0041c4cc
push esi
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
lea ecx, [esp + 0x1c]
mov byte [esp + 0x87c], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x20]
mov byte [esp + 0x87c], 0
call sub.MFC42.DLL_CString::CString
mov al, byte [esp + 0x13]
test al, al
jne 0x404284
mov al, byte [esp + 0x1b]
test al, al
je 0x404985
mov eax, dword [0x441ff4]
test eax, eax
je 0x40430b
mov edx, dword [0x441fd4]
mov eax, dword [edx]
cmp eax, 3
je 0x4042aa
mov ecx, dword [0x441fdc]
cmp dword [ecx], 0
jne 0x40430b
cmp eax, 3
jle 0x40430b
call ebp
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov eax, dword [0x436030]
test eax, eax
jge 0x4042cb
mov edx, dword [0x441fa0]
mov dword [0x436030], edx
call fcn.0041c4b1
test eax, eax
je 0x4042fd
mov eax, dword [0x436030]
push 3
push eax
push 0x430
push str.C:_build_rel_sp_8_4_6_2_srcwindows_atpclient_arr_srvsAdaptCof.cpp
call fcn.0041c4e1
push str.Adapter_SetDns:_begin_to_clear_local_dns_and_add_them_to_our_vnic._n
call fcn.0041c506
add esp, 0x14
call fcn.0041c4cc
push esi
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov esi, dword [sym.imp.MSVCRT.dll_malloc]
push 0x280
mov dword [esp + 0x34], 0
call esi
add esp, 4
lea ecx, [esp + 0x34]
mov ebp, eax
mov dword [esp + 0x34], 0x280
push ecx
push ebp
mov dword [esp + 0x2c], ebp
call sub.iphlpapi.dll_GetAdaptersInfo
cmp eax, 0x6f
jne 0x404358
push ebp
call dword [sym.imp.MSVCRT.dll_free]
mov edx, dword [esp + 0x38]
push edx
call esi
mov ebp, eax
add esp, 8
mov dword [esp + 0x24], ebp
lea eax, [esp + 0x34]
push eax
push ebp
call sub.iphlpapi.dll_GetAdaptersInfo
mov ebx, eax
mov eax, dword [0x441ff4]
test eax, eax
je 0x4043f4
mov ecx, dword [0x441fd4]
mov eax, dword [ecx]
cmp eax, 3
je 0x40438f
mov edx, dword [0x441fdc]
cmp dword [edx], 0
jne 0x4043f4
cmp eax, 3
jle 0x4043f4
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov eax, dword [0x436030]
test eax, eax
jge 0x4043b2
mov eax, dword [0x441fa0]
mov dword [0x436030], eax
call fcn.0041c4b1
test eax, eax
je 0x4043e6
mov ecx, dword [0x436030]
push 3
push ecx
push 0x43f
push str.C:_build_rel_sp_8_4_6_2_srcwindows_atpclient_arr_srvsAdaptCof.cpp
call fcn.0041c4e1
push ebx
push str.Adapter_SetDns:_GetAdaptersInfo_finished__the_return_value_is__d._n
call fcn.0041c506
add esp, 0x18
call fcn.0041c4cc
push esi
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
test ebx, ebx
jne 0x404977
mov ebp, dword [esp + 0x24]
test ebp, ebp
mov dword [esp + 0x1c], ebp
je 0x404985
mov eax, dword [0x441ff4]
test eax, eax
je 0x4044ab
mov edx, dword [0x441fd4]
mov eax, dword [edx]
cmp eax, 3
je 0x404436
mov ecx, dword [0x441fdc]
cmp dword [ecx], 0
jne 0x4044ab
cmp eax, 3
jle 0x4044ab
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov eax, dword [0x436030]
test eax, eax
jge 0x40445b
mov edx, dword [0x441fa0]
mov dword [0x436030], edx
call fcn.0041c4b1
test eax, eax
je 0x40449d
mov eax, dword [0x436030]
push 3
push eax
push 0x444
push str.C:_build_rel_sp_8_4_6_2_srcwindows_atpclient_arr_srvsAdaptCof.cpp
call fcn.0041c4e1
mov ecx, dword [ebp + 0x1a0]
mov eax, dword [esp + 0x40]
lea edx, [ebp + 8]
push ecx
push edx
push eax
push str.Adapter_SetDns:_start_the_loop__the_number_is__d__interface_is__s__type_is__d._n
call fcn.0041c506
add esp, 0x20
call fcn.0041c4cc
push esi
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov al, byte [esp + 0x13]
test al, al
jne 0x4044c0
cmp dword [ebp + 0x1a0], 0x17
jne 0x404964
mov ecx, 0x103
xor eax, eax
lea edi, [esp + 0x465]
mov byte [esp + 0x464], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x25d]
mov byte [esp + 0x25c], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x55]
mov byte [esp + 0x54], 0
mov ebx, dword [esp + 0x30]
lea esi, [ebp + 8]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push esi
push str.SYSTEMCurrentControlSetServicesTcpipParametersInterfaces_
lea ecx, [esp + 0x46c]
inc ebx
push 0x436a00
push ecx
stosb byte es:[edi], al
mov dword [esp + 0x48], 0x208
mov dword [esp + 0x4c], 1
mov dword [esp + 0x40], ebx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x10
lea edx, [esp + 0x38]
lea eax, [esp + 0x25c]
lea ecx, [esp + 0x3c]
push edx
push eax
push ecx
lea edx, [esp + 0x470]
push str.NameServer
push edx
push reloc.WS2_32.dll_bind
call dword [sym.imp.SHLWAPI.dll_SHGetValueA]
mov edi, eax
mov eax, dword [0x441ff4]
test eax, eax
je 0x40460b
mov eax, dword [0x441fd4]
mov eax, dword [eax]
cmp eax, 3
je 0x404598
mov ecx, dword [0x441fdc]
cmp dword [ecx], 0
jne 0x40460b
cmp eax, 3
jle 0x40460b
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ebp, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov eax, dword [0x436030]
test eax, eax
jge 0x4045bd
mov edx, dword [0x441fa0]
mov dword [0x436030], edx
call fcn.0041c4b1
test eax, eax
je 0x4045f9
mov eax, dword [0x436030]
push 3
push eax
push 0x44d
push str.C:_build_rel_sp_8_4_6_2_srcwindows_atpclient_arr_srvsAdaptCof.cpp
call fcn.0041c4e1
lea ecx, [esp + 0x26c]
push edi
push ecx
push esi
push str.Adapter_check_:__interface_is__s__dns_is__s__error_is__d._n
call fcn.0041c506
add esp, 0x20
call fcn.0041c4cc
push ebp
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push ebx
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov ebp, dword [esp + 0x1c]
test edi, edi
jne 0x40475a
lea edx, [esp + 0x25c]
push 0x4369c0
push edx
call dword [sym.imp.MSVCRT.dll_strstr]
add esp, 8
test eax, eax
je 0x40475a
push 0x4364c8
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::operator
lea eax, [esp + 0x25c]
lea ecx, [esp + 0x2c]
push eax
call fcn.00431b90
lea ecx, [esp + 0x2c]
mov byte [esp + 0x87c], 4
call sub.MFC42.DLL_CString::TrimLeft
lea ecx, [esp + 0x2c]
call sub.MFC42.DLL_CString::TrimRight
lea ecx, [esp + 0x2c]
push ecx
lea ecx, [esp + 0x18]
call fcn.00431b72
push edi
lea edx, [esp + 0x260]
push edi
push edx
push esi
call fcn.00422f88
add esp, 0x10
lea eax, [esp + 0x464]
push 1
push 0x441e2c
push 1
push str.NameServer
push eax
push reloc.WS2_32.dll_bind
call dword [sym.imp.SHLWAPI.dll_SHSetValueA]
mov edi, eax
mov eax, dword [0x441ff4]
test eax, eax
je 0x404749
mov ecx, dword [0x441fd4]
mov eax, dword [ecx]
cmp eax, 3
je 0x4046d8
mov edx, dword [0x441fdc]
cmp dword [edx], 0
jne 0x404749
cmp eax, 3
jle 0x404749
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ebp, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov eax, dword [0x436030]
test eax, eax
jge 0x4046fb
mov eax, dword [0x441fa0]
mov dword [0x436030], eax
call fcn.0041c4b1
test eax, eax
je 0x404737
mov ecx, dword [0x436030]
push 3
push ecx
push 0x457
push str.C:_build_rel_sp_8_4_6_2_srcwindows_atpclient_arr_srvsAdaptCof.cpp
call fcn.0041c4e1
lea edx, [esp + 0x26c]
push edx
push edi
push str.Adapter:_save_dns_to_reg__return_value_is__d__local_dns_is__s._n
call fcn.0041c506
add esp, 0x1c
call fcn.0041c4cc
push ebp
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push ebx
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov ebp, dword [esp + 0x1c]
lea ecx, [esp + 0x2c]
mov byte [esp + 0x87c], 0
call sub.MFC42.DLL_CString::CString
lea eax, [esp + 0x28]
lea ecx, [esp + 0x54]
push eax
lea edx, [esp + 0x40]
push ecx
push edx
lea eax, [esp + 0x470]
push str.DhcpNameServer
push eax
push reloc.WS2_32.dll_bind
mov dword [esp + 0x40], 0x208
call dword [sym.imp.SHLWAPI.dll_SHGetValueA]
mov ebx, eax
mov eax, dword [0x441ff4]
test eax, eax
je 0x404824
mov ecx, dword [0x441fd4]
mov eax, dword [ecx]
cmp eax, 3
je 0x4047b5
mov edx, dword [0x441fdc]
cmp dword [edx], 0
jne 0x404824
cmp eax, 3
jle 0x404824
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, eax
mov eax, dword [0x436030]
test eax, eax
jge 0x4047d8
mov eax, dword [0x441fa0]
mov dword [0x436030], eax
call fcn.0041c4b1
test eax, eax
je 0x404812
mov ecx, dword [0x436030]
push 3
push ecx
push 0x45c
push str.C:_build_rel_sp_8_4_6_2_srcwindows_atpclient_arr_srvsAdaptCof.cpp
call fcn.0041c4e1
lea edx, [esp + 0x64]
push ebx
push edx
push esi
push str.Adapter:__interface_is__s__dhcpdns_is__s__error_is__d._n
call fcn.0041c506
add esp, 0x20
call fcn.0041c4cc
push edi
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push ebp
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov ebp, dword [esp + 0x1c]
test ebx, ebx
jne 0x404964
lea eax, [esp + 0x54]
push 0x4369c0
push eax
call dword [sym.imp.MSVCRT.dll_strstr]
add esp, 8
test eax, eax
je 0x404964
push 0x4364c8
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x54]
push ecx
lea ecx, [esp + 0x24]
call fcn.00431b90
lea ecx, [esp + 0x20]
mov byte [esp + 0x87c], 5
call sub.MFC42.DLL_CString::TrimLeft
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CString::TrimRight
lea edx, [esp + 0x20]
lea ecx, [esp + 0x14]
push edx
call fcn.00431b72
push ebx
lea eax, [esp + 0x58]
push 1
push eax
push esi
call fcn.00422f88
add esp, 0x10
lea ecx, [esp + 0x464]
push 8
push str.1.1.1.1
push 1
push str.DhcpNameServer
push ecx
push reloc.WS2_32.dll_bind
call dword [sym.imp.SHLWAPI.dll_SHSetValueA]
mov eax, dword [0x441ff4]
test eax, eax
je 0x404953
mov edx, dword [0x441fd4]
mov eax, dword [edx]
cmp eax, 3
je 0x4048e7
mov ecx, dword [0x441fdc]
cmp dword [ecx], 0
jne 0x404953
cmp eax, 3
jle 0x404953
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov eax, dword [0x436030]
test eax, eax
jge 0x40490c
mov edx, dword [0x441fa0]
mov dword [0x436030], edx
call fcn.0041c4b1
test eax, eax
je 0x404945
mov eax, dword [0x436030]
push 3
push eax
push 0x466
push str.C:_build_rel_sp_8_4_6_2_srcwindows_atpclient_arr_srvsAdaptCof.cpp
call fcn.0041c4e1
lea ecx, [esp + 0x64]
push ecx
push 0
push str.Adapter:_save_dns_to_reg__return_value_is__d__local_dns_is__s._n
call fcn.0041c506
add esp, 0x1c
call fcn.0041c4cc
push esi
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
lea ecx, [esp + 0x20]
mov byte [esp + 0x87c], 0
call sub.MFC42.DLL_CString::CString
mov ebp, dword [ebp]
test ebp, ebp
mov dword [esp + 0x1c], ebp
jne 0x40440c
mov ebp, dword [esp + 0x24]
test ebp, ebp
je 0x404985
push ebp
call dword [sym.imp.MSVCRT.dll_free]
add esp, 4
push 0x4364c8
push 0x43692c
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CString::Replace
mov edx, dword [esp + 0x14]
cmp byte [edx], 0x2c
jne 0x4049db
mov edx, dword [edx - 8]
lea ecx, [esp + 0x14]
dec edx
push edx
lea edx, [esp + 0x2c]
push edx
call sub.MFC42.DLL_CString::Right
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x880], 6
call sub.MFC42.DLL_CString::operator_1
lea ecx, [esp + 0x28]
mov byte [esp + 0x87c], 0
call sub.MFC42.DLL_CString::CString
mov edx, dword [esp + 0x14]
mov eax, dword [0x441ff4]
test eax, eax
je 0x404a76
mov eax, dword [0x441fd4]
mov eax, dword [eax]
cmp eax, 3
je 0x404a04
mov ecx, dword [0x441fdc]
cmp dword [ecx], 0
jne 0x404a76
cmp eax, 3
jle 0x404a76
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ebp, dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
call ebp
mov edi, eax
mov eax, dword [0x436030]
test eax, eax
jge 0x404a2b
mov edx, dword [0x441fa0]
mov dword [0x436030], edx
call fcn.0041c4b1
test eax, eax
je 0x404a62
mov eax, dword [0x436030]
push 3
push eax
push 0x478
push str.C:_build_rel_sp_8_4_6_2_srcwindows_atpclient_arr_srvsAdaptCof.cpp
call fcn.0041c4e1
mov ecx, dword [esp + 0x24]
push ecx
push str.Adapter_SetDns:Name_Servers:__s_n
call fcn.0041c506
add esp, 0x18
call fcn.0041c4cc
push esi
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov edx, dword [esp + 0x14]
jmp 0x404a7c
mov ebp, dword [sym.imp.KERNEL32.dll_GetLastError]
or ebx, 0xffffffff
mov edi, edx
mov ecx, ebx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
push ecx
push edx
mov edx, dword [esp + 0x88c]
push 1
push eax
push str.NameServer
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
jne 0x404c36
mov eax, dword [0x441e28]
test eax, eax
jne 0x404c1f
mov eax, dword [0x441778]
test eax, eax
jle 0x404c1f
lea eax, [esp + 0x28]
lea ecx, [esp + 0x24]
push eax
push ecx
push 0
push str.DNS_Timeout
push str.SOFTWAREArray_NetworksArray_SSL_VPN
push reloc.WS2_32.dll_bind
mov dword [esp + 0x3c], 5
mov dword [esp + 0x40], 4
call dword [sym.imp.SHLWAPI.dll_SHGetValueA]
mov eax, dword [0x441ff4]
test eax, eax
je 0x404b84
mov edx, dword [0x441fd4]
mov eax, dword [edx]
cmp eax, 3
je 0x404b1e
mov ecx, dword [0x441fdc]
cmp dword [ecx], 0
jne 0x404b84
cmp eax, 3
jle 0x404b84
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
call ebp
mov edi, eax
mov eax, dword [0x436030]
test eax, eax
jge 0x404b3f
mov edx, dword [0x441fa0]
mov dword [0x436030], edx
call fcn.0041c4b1
test eax, eax
je 0x404b76
mov eax, dword [0x436030]
push 3
push eax
push 0x480
push str.C:_build_rel_sp_8_4_6_2_srcwindows_atpclient_arr_srvsAdaptCof.cpp
call fcn.0041c4e1
mov ecx, dword [esp + 0x34]
push ecx
push str.Adapter_SetDns:_the_timeout_is__d._n
call fcn.0041c506
add esp, 0x18
call fcn.0041c4cc
push esi
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov edx, dword [esp + 0x24]
push edx
call fcn.0042266f
add esp, 4
test eax, eax
jne 0x404c1f
mov eax, dword [0x441ff4]
test eax, eax
je 0x404c1f
mov eax, dword [0x441fd4]
mov eax, dword [eax]
cmp eax, 2
je 0x404bbe
mov ecx, dword [0x441fdc]
cmp dword [ecx], 0
jne 0x404c1f
cmp eax, 2
jle 0x404c1f
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
call ebp
mov edi, eax
mov eax, dword [0x436030]
test eax, eax
jge 0x404bdf
mov edx, dword [0x441fa0]
mov dword [0x436030], edx
call fcn.0041c4b1
test eax, eax
je 0x404c11
mov eax, dword [0x436030]
push 2
push eax
push 0x483
push str.C:_build_rel_sp_8_4_6_2_srcwindows_atpclient_arr_srvsAdaptCof.cpp
call fcn.0041c4e1
push str.Adapter_SetDns:_SetDNSQueryTimeouts_failed._n
call fcn.0041c506
add esp, 0x14
call fcn.0041c4cc
push esi
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
lea ecx, [esp + 0x14]
mov dword [esp + 0x87c], ebx
call sub.MFC42.DLL_CString::CString
mov al, 1
jmp 0x404cf8
push 0x26
mov ecx, 0x442408
call fcn.0042053a
push 0
push 0
push 0
push 0
push 2
push 0x11
call fcn.0041e7ec
mov eax, dword [0x441ff4]
add esp, 0x18
test eax, eax
je 0x404ce6
mov ecx, dword [0x441fd4]
mov eax, dword [ecx]
cmp eax, 1
je 0x404c80
mov edx, dword [0x441fdc]
cmp dword [edx], 0
jne 0x404ce6
cmp eax, 1
jle 0x404ce6
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
call ebp
mov edi, eax
mov eax, dword [0x436030]
test eax, eax
jge 0x404c9f
mov eax, dword [0x441fa0]
mov dword [0x436030], eax
call fcn.0041c4b1
test eax, eax
je 0x404cd8
mov ecx, dword [0x436030]
push 1
push ecx
push 0x48d
push str.C:_build_rel_sp_8_4_6_2_srcwindows_atpclient_arr_srvsAdaptCof.cpp
call fcn.0041c4e1
add esp, 0x10
call ebp
push eax
push str.Failed_to_set_DNS__error_d_n
call fcn.0041c506
add esp, 8
call fcn.0041c4cc
push esi
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
lea ecx, [esp + 0x14]
mov dword [esp + 0x87c], ebx
call sub.MFC42.DLL_CString::CString
xor al, al
mov ecx, dword [esp + 0x874]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x870
ret