Function at 0x40ae00
Capabilities:
Query or enumerate registry value
Set registry value

Disassembly:
mov eax, dword [esp + 4]
sub esp, 0x1c
push ebx
push ebp
xor ebp, ebp
push esi
cmp eax, ebp
push edi
jne 0x40aeb1
cmp dword [0x441ff4], ebp
je 0x40b695
mov eax, dword [0x441fd4]
mov eax, dword [eax]
cmp eax, 1
je 0x40ae44
mov ecx, dword [0x441fdc]
cmp dword [ecx], ebp
jne 0x40b695
cmp eax, 1
jle 0x40b695
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]
cmp eax, ebp
jge 0x40ae69
mov edx, dword [0x441fa0]
mov dword [0x436030], edx
call fcn.0041c4b1
test eax, eax
je 0x40ae9b
mov eax, dword [0x436030]
push 1
push eax
push 0xa0d
push str.C:_build_rel_sp_8_4_6_2_srcwindows_atpclient_arr_srvsAdaptCof.cpp
call fcn.0041c4e1
push str.Adapter_CheckAndSetNetworkConnectionPriority_szAdapterName_is_NULL_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]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
lea ecx, [esp + 0x14]
mov dword [esp + 0x14], ebp
push ecx
push 0x2001f
push ebp
push str.SYSTEMCurrentControlSetControlNetwork
push reloc.WS2_32.dll_bind
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
je 0x40af75
cmp dword [0x441ff4], ebp
je 0x40b695
mov edx, dword [0x441fd4]
mov eax, dword [edx]
cmp eax, 1
je 0x40af08
mov ecx, dword [0x441fdc]
cmp dword [ecx], ebp
jne 0x40b695
cmp eax, 1
jle 0x40b695
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]
cmp eax, ebp
jge 0x40af2d
mov edx, dword [0x441fa0]
mov dword [0x436030], edx
call fcn.0041c4b1
test eax, eax
je 0x40af5f
mov eax, dword [0x436030]
push 1
push eax
push 0xa15
push str.C:_build_rel_sp_8_4_6_2_srcwindows_atpclient_arr_srvsAdaptCof.cpp
call fcn.0041c4e1
push str.Adapter_CheckAndSetNetworkConnectionPriority_open_reg_error_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]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
mov eax, dword [esp + 0x14]
mov esi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
lea ecx, [esp + 0x10]
lea edx, [esp + 0x24]
push ecx
push ebp
push edx
push ebp
push str.Config
push eax
mov dword [esp + 0x28], ebp
mov dword [esp + 0x3c], 3
call esi
mov edi, eax
cmp edi, ebp
jne 0x40b5fc
mov eax, dword [esp + 0x10]
cmp eax, ebp
jbe 0x40b5fc
push eax
call sub.MFC42.DLL_operatornew
add esp, 4
lea ecx, [esp + 0x10]
mov ebx, eax
mov eax, dword [esp + 0x14]
push ecx
lea edx, [esp + 0x28]
push ebx
push edx
push ebp
push str.Config
push eax
mov dword [esp + 0x34], ebx
call esi
test eax, eax
je 0x40b06e
cmp dword [0x441ff4], ebp
je 0x40b11c
mov ecx, dword [0x441fd4]
mov eax, dword [ecx]
cmp eax, 1
je 0x40b014
mov edx, dword [0x441fdc]
cmp dword [edx], ebp
jne 0x40b11c
cmp eax, 1
jle 0x40b11c
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]
cmp eax, ebp
jge 0x40b037
mov eax, dword [0x441fa0]
mov dword [0x436030], eax
call fcn.0041c4b1
test eax, eax
je 0x40b10e
mov ecx, dword [0x436030]
push 1
push ecx
push 0xa29
push str.C:_build_rel_sp_8_4_6_2_srcwindows_atpclient_arr_srvsAdaptCof.cpp
call fcn.0041c4e1
push str.Adapter_CheckAndSetNetworkConnectionPriority_query_reg_value_error_n
call fcn.0041c506
add esp, 0x14
jmp 0x40b109
mov ecx, dword [esp + 0x10]
mov eax, dword [ebx + 4]
lea esi, [ebx + 8]
mov dword [esp + 0x28], eax
lea edx, [ebx + ecx]
mov dword [esp + 0x20], ebp
cmp esi, edx
jb 0x40b138
cmp dword [0x441ff4], ebp
je 0x40b11c
mov eax, dword [0x441fd4]
mov eax, dword [eax]
cmp eax, 1
je 0x40b0b2
mov ecx, dword [0x441fdc]
cmp dword [ecx], ebp
jne 0x40b11c
cmp eax, 1
jle 0x40b11c
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]
cmp eax, ebp
jge 0x40b0d7
mov edx, dword [0x441fa0]
mov dword [0x436030], edx
call fcn.0041c4b1
test eax, eax
je 0x40b10e
mov eax, dword [0x436030]
push 1
push eax
push 0xa37
push str.C:_build_rel_sp_8_4_6_2_srcwindows_atpclient_arr_srvsAdaptCof.cpp
call fcn.0041c4e1
mov ecx, dword [esp + 0x20]
push ecx
push str.Adapter_CheckAndSetNetworkConnectionPriority__reg_value_length_invalid:__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 + 0x14]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push ebx
call sub.MFC42.DLL_operatordelete
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
cmp eax, ebp
mov dword [esp + 0x18], ebp
jbe 0x40b1bf
mov ebx, dword [sym.imp.MSVCRT.dll_wcslen]
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
add eax, ebp
cmp esi, eax
jae 0x40b1b3
add esi, 0x18
cmp esi, eax
jae 0x40b1b3
push esi
mov edi, esi
call ebx
mov ecx, dword [esp + 0x14]
lea esi, [esi + eax*2 + 2]
add esp, 4
lea edx, [ecx + ebp]
cmp esi, edx
jae 0x40b1b3
push esi
call ebx
lea esi, [esi + eax*2 + 2]
mov eax, dword [esp + 0x14]
add esp, 4
lea ecx, [eax + ebp]
cmp esi, ecx
jae 0x40b1b3
mov edx, dword [esp + 0x30]
push edx
push edi
call dword [sym.imp.MSVCRT.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x40b1a2
mov eax, dword [esp + 0x20]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
inc eax
cmp eax, ecx
mov dword [esp + 0x20], eax
jb 0x40b14a
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x40b26d
mov eax, dword [0x441ff4]
test eax, eax
je 0x40b24d
mov ecx, dword [0x441fd4]
mov eax, dword [ecx]
cmp eax, 3
je 0x40b1e9
mov edx, dword [0x441fdc]
cmp dword [edx], 0
jne 0x40b24d
cmp eax, 3
jle 0x40b24d
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 0x40b20c
mov eax, dword [0x441fa0]
mov dword [0x436030], eax
call fcn.0041c4b1
test eax, eax
je 0x40b23f
mov ecx, dword [0x436030]
push 3
push ecx
push 0xa57
push str.C:_build_rel_sp_8_4_6_2_srcwindows_atpclient_arr_srvsAdaptCof.cpp
call fcn.0041c4e1
push str.Adapter_CheckAndSetNetworkConnectionPriority_our_adapter_not_found_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 edx, dword [esp + 0x1c]
push edx
call sub.MFC42.DLL_operatordelete
mov eax, dword [esp + 0x18]
add esp, 4
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
mov eax, dword [esi]
mov dword [esp + 0x30], 0
test eax, eax
je 0x40b289
mov dword [esi], 0
mov dword [esp + 0x30], 1
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
add esi, 8
lea edx, [ebx + ecx]
cmp esi, edx
jb 0x40b349
mov eax, dword [0x441ff4]
test eax, eax
je 0x40b32d
mov eax, dword [0x441fd4]
mov eax, dword [eax]
cmp eax, 3
je 0x40b2c8
mov ecx, dword [0x441fdc]
cmp dword [ecx], 0
jne 0x40b32d
cmp eax, 3
jle 0x40b32d
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 0x40b2ed
mov edx, dword [0x441fa0]
mov dword [0x436030], edx
call fcn.0041c4b1
test eax, eax
je 0x40b31f
mov eax, dword [0x436030]
push 3
push eax
push 0xa6c
push str.C:_build_rel_sp_8_4_6_2_srcwindows_atpclient_arr_srvsAdaptCof.cpp
call fcn.0041c4e1
push str.Adapter_CheckAndSetNetworkConnectionPriority_first_DWORDs_data_invalid_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]
push ebx
call sub.MFC42.DLL_operatordelete
mov ecx, dword [esp + 0x18]
add esp, 4
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
mov eax, dword [esi]
test eax, eax
mov dword [esp + 0x20], eax
jne 0x40b35e
mov eax, dword [esi + 4]
test eax, eax
je 0x40b48f
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
lea edx, [esi + 4]
add esi, 8
lea ecx, [eax + ebp]
mov dword [esp + 0x28], edx
cmp esi, ecx
jae 0x40b493
mov eax, dword [esi]
mov ecx, dword [esi + 4]
test eax, eax
jne 0x40b38c
test ecx, ecx
je 0x40b46f
cmp eax, dword [esp + 0x20]
jne 0x40b46f
cmp ecx, dword [esp + 0x18]
je 0x40b3a1
add esi, 8
jmp 0x40b37b
lea ebp, [esi + 4]
test ebp, ebp
je 0x40b46f
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
mov edx, dword [ecx]
cmp edx, eax
je 0x40b46f
mov eax, dword [0x441ff4]
test eax, eax
je 0x40b454
mov eax, dword [0x441fd4]
mov eax, dword [eax]
cmp eax, 3
je 0x40b3e7
mov edx, dword [0x441fdc]
cmp dword [edx], 0
jne 0x40b454
cmp eax, 3
jle 0x40b454
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov eax, dword [0x436030]
test eax, eax
jge 0x40b40a
mov eax, dword [0x441fa0]
mov dword [0x436030], eax
call fcn.0041c4b1
test eax, eax
je 0x40b442
mov ecx, dword [0x436030]
push 3
push ecx
push 0xa96
push str.C:_build_rel_sp_8_4_6_2_srcwindows_atpclient_arr_srvsAdaptCof.cpp
call fcn.0041c4e1
mov edx, dword [esp + 0x30]
push edx
push str.Adapter_CheckAndSetNetworkConnectionPriority_change_order_for_protocol:_0x_02X_n
call fcn.0041c506
add esp, 0x18
call fcn.0041c4cc
push edi
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push ebx
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
mov eax, dword [ecx]
mov dword [ecx], edx
mov dword [ebp], eax
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x40b46f
mov dword [esp + 0x30], 1
mov eax, dword [esi]
test eax, eax
jne 0x40b480
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x40b349
cmp eax, dword [esp + 0x20]
jne 0x40b349
add esi, 8
jmp 0x40b46f
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
test eax, eax
je 0x40b5e0
mov eax, dword [0x441ff4]
test eax, eax
je 0x40b52d
mov eax, dword [0x441fd4]
mov eax, dword [eax]
cmp eax, 3
je 0x40b4c8
mov ecx, dword [0x441fdc]
cmp dword [ecx], 0
jne 0x40b52d
cmp eax, 3
jle 0x40b52d
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 0x40b4ed
mov edx, dword [0x441fa0]
mov dword [0x436030], edx
call fcn.0041c4b1
test eax, eax
je 0x40b51f
mov eax, dword [0x436030]
push 3
push eax
push 0xab2
push str.C:_build_rel_sp_8_4_6_2_srcwindows_atpclient_arr_srvsAdaptCof.cpp
call fcn.0041c4e1
push str.Adapter_CheckAndSetNetworkConnectionPriority_save_change_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 ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
push ecx
push ebp
push 3
push 0
push str.Config
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov esi, eax
test esi, esi
je 0x40b5e0
mov eax, dword [0x441ff4]
test eax, eax
je 0x40b5e0
mov eax, dword [0x441fd4]
mov eax, dword [eax]
cmp eax, 1
je 0x40b57a
mov ecx, dword [0x441fdc]
cmp dword [ecx], 0
jne 0x40b5e0
cmp eax, 1
jle 0x40b5e0
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov eax, dword [0x436030]
test eax, eax
jge 0x40b59f
mov edx, dword [0x441fa0]
mov dword [0x436030], edx
call fcn.0041c4b1
test eax, eax
je 0x40b5d2
mov eax, dword [0x436030]
push 1
push eax
push 0xab6
push str.C:_build_rel_sp_8_4_6_2_srcwindows_atpclient_arr_srvsAdaptCof.cpp
call fcn.0041c4e1
push esi
push str.Adapter_CheckAndSetNetworkConnectionPriority_save_change_error:_0x_08X_n
call fcn.0041c506
add esp, 0x18
call fcn.0041c4cc
push edi
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push ebx
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov ecx, dword [esp + 0x14]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push ebp
call sub.MFC42.DLL_operatordelete
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
cmp dword [0x441ff4], ebp
je 0x40b68a
mov edx, dword [0x441fd4]
mov eax, dword [edx]
cmp eax, 1
je 0x40b624
mov ecx, dword [0x441fdc]
cmp dword [ecx], ebp
jne 0x40b68a
cmp eax, 1
jle 0x40b68a
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov eax, dword [0x436030]
cmp eax, ebp
jge 0x40b649
mov edx, dword [0x441fa0]
mov dword [0x436030], edx
call fcn.0041c4b1
test eax, eax
je 0x40b67c
mov eax, dword [0x436030]
push 1
push eax
push 0xa1f
push str.C:_build_rel_sp_8_4_6_2_srcwindows_atpclient_arr_srvsAdaptCof.cpp
call fcn.0041c4e1
push edi
push str.Adapter_CheckAndSetNetworkConnectionPriority_open_reg_value_error_0x_08X_n
call fcn.0041c506
add esp, 0x18
call fcn.0041c4cc
push esi
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push ebx
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov ecx, dword [esp + 0x14]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret