Function at 0x14000b3c0
Capabilities:
Query or enumerate registry value

Disassembly:
push rbp
push rbx
push rdi
lea rbp, [rsp - 0x47]
sub rsp, 0xf0
xor ebx, ebx
mov dword [rbp + 0x7f], ebx
test ecx, ecx
je 0x14000b5a3
lea rax, [rbp - 0x69]
mov qword [rbp - 0x69], rbx
mov edi, 1
mov dword [rbp + 0x6f], 4
mov r9d, edi
mov dword [rbp + 0x67], ebx
xor r8d, r8d
mov dword [rbp + 0x77], 4
lea rdx, str.SYSTEMCurrentControlSetServicesIntel_Connectivity_Network_ServiceSLibCFG
mov qword [rsp + 0x20], rax
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x14000b57f
mov rcx, qword [rbp - 0x69]
lea rax, [rbp + 0x77]
mov qword [rsp + 0x28], rax
lea r9, [rbp + 0x6f]
lea rax, [rbp + 0x67]
xor r8d, r8d
lea rdx, [0x1401d4b78]
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x14000b464
mov eax, dword [0x140237304]
cmp dword [rbp + 0x6f], 4
cmove eax, dword [rbp + 0x67]
mov dword [0x140237304], eax
mov rcx, qword [rbp - 0x69]
lea rax, [rbp + 0x77]
mov qword [rsp + 0x28], rax
lea r9, [rbp + 0x6f]
lea rax, [rbp + 0x67]
mov dword [rbp + 0x67], ebx
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.Redir
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x14000b4a4
cmp dword [rbp + 0x6f], 4
jne 0x14000b4a4
mov eax, dword [rbp + 0x67]
mov dword [0x140228c8c], eax
mov rcx, qword [rbp - 0x69]
lea rax, [rbp + 0x77]
mov qword [rsp + 0x28], rax
lea r9, [rbp + 0x6f]
lea rax, [rbp + 0x67]
mov dword [rbp + 0x67], ebx
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.EnableOpenVpn
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x14000b4e9
mov eax, dword [0x14023f270]
cmp dword [rbp + 0x6f], 4
cmove eax, dword [rbp + 0x67]
mov dword [0x14023f270], eax
mov rcx, qword [rbp - 0x69]
lea rax, [rbp + 0x77]
mov qword [rsp + 0x28], rax
lea r9, [rbp + 0x6f]
lea rax, [rbp + 0x67]
mov dword [rbp + 0x67], ebx
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.SupportOemDevice
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x14000b53a
cmp dword [rbp + 0x6f], 4
jne 0x14000b53a
mov eax, dword [rbp + 0x67]
test eax, eax
mov ecx, dword [0x140228c90]
cmovne ecx, edi
mov dword [0x1402372f4], eax
mov dword [0x140228c90], ecx
mov rcx, qword [rbp - 0x69]
lea rax, [rbp + 0x77]
mov qword [rsp + 0x28], rax
lea r9, [rbp + 0x6f]
lea rax, [rbp + 0x67]
mov dword [rbp + 0x67], ebx
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.DeviceDiscoveryTO
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x14000b57f
mov eax, dword [0x140228c94]
cmp dword [rbp + 0x6f], 4
cmove eax, dword [rbp + 0x67]
mov dword [0x140228c94], eax
mov rcx, qword [rbp - 0x69]
test rcx, rcx
je 0x14000b58e
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea rax, [0x140237770]
mov qword [0x140237778], rax
mov qword [0x140237770], rax
xor edx, edx
lea rcx, [rbp - 9]
lea r8d, [rdx + 0x50]
call fcn.14015cb20
cmp dword [0x14023ae84], 1
lea rcx, str..IntcCoDriver
mov eax, ebx
mov qword [rsp + 0x30], rbx
sete al
mov dword [rsp + 0x28], ebx
inc eax
mov dword [rbp - 0x55], 0x379e8
mov dword [rbp - 0x59], eax
xor r9d, r9d
mov rax, qword [0x14023f278]
mov edx, 0xc0000000
mov qword [rbp - 0x51], rax
mov rax, qword [0x14023f2f8]
mov qword [rbp - 0x49], rax
lea r8d, [r9 + 3]
mov rax, qword [0x14023f2c0]
mov qword [rbp - 0x31], rax
mov rax, qword [0x140237140]
mov qword [rbp - 0x19], rax
mov rax, qword [0x140237148]
mov qword [rbp - 0x11], rax
mov rax, qword [0x14023f2f0]
mov qword [rbp - 0x29], rax
mov dword [rbp - 0x3d], 0x2c00000
mov dword [rbp - 0x41], 0x214010
mov dword [rbp - 0x21], 0x8010
mov dword [rbp - 0x39], 0x908023b
mov dword [rbp - 0x35], 0xfeedf00d
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rdi, rax
cmp rax, 0xffffffffffffffff
jne 0x14000b6aa
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, [0x14023f2c8]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lock and dword [0x140237300], 0xfffffffb
lock or dword [0x140237300], 1
lock or dword [0x14023ae64], 1
lea rcx, [0x14023f2c8]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, 0x438
add rsp, 0xf0
pop rdi
pop rbx
pop rbp
ret
lea rcx, [0x14023f2c8]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lock or dword [0x140237300], 4
lock and dword [0x140237300], 0xfffffffe
lea rcx, [0x14023f2c8]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov qword [rsp + 0x38], rbx
lea rax, [rbp - 0x61]
mov qword [rsp + 0x30], rax
lea r8, [rbp - 0x59]
lea rax, [rbp - 9]
mov dword [rsp + 0x28], 0x50
mov r9d, 0x50
mov qword [rsp + 0x20], rax
mov edx, 0x120004
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x14000b7b9
lea rcx, [0x14023f2c8]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [rbp - 9], 5
je 0x14000b79a
mov rax, qword [0x14023f278]
mov ecx, dword [rax]
mov eax, dword [rbp - 9]
mov dword [0x140237784], ecx
cmp eax, 3
jne 0x14000b758
mov ebx, 0x51a
lock or dword [0x140237300], 0x20
lea rax, [0x14023ae64]
mov ecx, 0x80
jmp 0x14000b780
cmp eax, 4
jne 0x14000b774
lea ebx, [rax + 0x53]
lock or dword [0x140237300], 0x20
lea rax, [0x14023ae64]
lea ecx, [rbx - 0x37]
jmp 0x14000b780
lea rax, [0x140237300]
mov ecx, 0x10
lock or dword [rax], ecx
lock and dword [0x140237300], 0xfffffffb
lea rcx, [0x14023f2c8]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x14000b7d9
lock and dword [0x140237300], 0xfffffffb
lock or dword [0x140237300], 0x40
lea rcx, [0x14023f2c8]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x14000b7d9
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lock and dword [0x140237300], 0xfffffffb
lock or dword [0x140237300], 2
lock or dword [0x14023ae64], 2
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, ebx
add rsp, 0xf0
pop rdi
pop rbx
pop rbp
ret