Function at 0x14004f458
Capabilities:
Query or enumerate registry value

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
mov eax, 0x2090
call fcn.1400b2f70
sub rsp, rax
mov qword [rsp + 0x48], 0xfffffffffffffffe
mov rax, qword [0x14010bfc0]
xor rax, rsp
mov qword [rsp + 0x2080], rax
mov rsi, r9
mov r12, r8
mov ebx, edx
mov rbp, rcx
mov rdi, qword [rsp + 0x20e8]
call fcn.14004c5fc
test eax, eax
je 0x14004f546
call fcn.14005d27c
mov r11, qword [0x1401203d8]
test r11, r11
je 0x14004f4fe
mov rax, qword [rbp + 8]
test rax, rax
jne 0x14004f4c5
xor ecx, ecx
jmp 0x14004f4c9
mov rcx, qword [rax + 8]
lea rdx, [rbp + 0x10]
mov qword [rsp + 0x30], rdi
mov eax, dword [rsp + 0x20e0]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rsi
mov r9, r12
mov r8d, ebx
call r11
test eax, eax
je 0x14004f4fe
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor ebx, ebx
jmp 0x14004f7e4
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
cmp eax, 0x7a
jne 0x14004f525
test rdi, rdi
je 0x14004f7e4
mov ecx, dword [rdi]
cmp dword [rsp + 0x20e0], ecx
jb 0x14004f7e4
xor ebx, ebx
test ebx, ebx
je 0x14004f7e4
cmp ebx, 0xd
je 0x14004f7e4
cmp ebx, 0x7a
je 0x14004f7e4
mov eax, ebx
jmp 0x14004f7e6
mov qword [rsp + 0x70], reloc.OLEAUT32.dll_SafeArrayDestroy
and qword [rsp + 0x68], 0
mov byte [rsp + 0x58], 0
and qword [rsp + 0x40], 0
lea rdx, [rsp + 0x50]
mov rcx, rbp
call fcn.14004f360
test eax, eax
je 0x14004f5aa
test rdi, rdi
je 0x14004f579
and dword [rdi], 0
test rsi, rsi
je 0x14004f591
mov r8d, dword [rsp + 0x20e0]
xor edx, edx
mov rcx, rsi
call fcn.1400988d0
nop
cmp qword [rsp + 0x70], 0x10
jb 0x14004f5a3
mov rcx, qword [rsp + 0x58]
call fcn.14006127c
xor eax, eax
jmp 0x14004f7e6
lea r9, [rsp + 0x58]
cmp qword [rsp + 0x70], 0x10
cmovae r9, qword [rsp + 0x58]
lea r8, str.Enum_s
mov edx, 0x2000
lea rcx, [rsp + 0x80]
call fcn.14009841c
cmp ebx, 0xb
ja 0x14004f67d
cmp ebx, 0xb
je 0x14004f671
test ebx, ebx
je 0x14004f665
mov eax, 1
sub ebx, eax
je 0x14004f659
sub ebx, eax
je 0x14004f64d
sub ebx, 2
je 0x14004f641
sub ebx, 3
je 0x14004f635
sub ebx, eax
je 0x14004f629
sub ebx, eax
je 0x14004f61d
cmp ebx, eax
jne 0x14004f69f
lea rbx, str.ConfigFlags
jmp 0x14004f704
lea rbx, str.Driver
jmp 0x14004f704
lea rbx, str.ClassGUID
jmp 0x14004f704
lea rbx, str.Class
jmp 0x14004f704
lea rbx, str.Service
jmp 0x14004f704
lea rbx, str.CompatibleIDs
jmp 0x14004f704
lea rbx, str.HardwareID
jmp 0x14004f704
lea rbx, str.DeviceDesc
jmp 0x14004f704
lea rbx, [0x1400d4cd0]
jmp 0x14004f704
sub ebx, 0xc
je 0x14004f6fd
mov eax, 1
sub ebx, eax
je 0x14004f6f4
sub ebx, eax
je 0x14004f6eb
sub ebx, eax
je 0x14004f6e2
sub ebx, eax
je 0x14004f6d9
sub ebx, eax
je 0x14004f6d0
cmp ebx, eax
je 0x14004f6c7
mov ecx, SafeArrayDestroy
call qword [sym.imp.KERNEL32.dll_SetLastError]
nop
cmp qword [rsp + 0x70], 0x10
jb 0x14004f6bd
mov rcx, qword [rsp + 0x58]
call fcn.14006127c
mov eax, SafeArrayDestroy
jmp 0x14004f7e6
lea rbx, str.LowerFilters
jmp 0x14004f704
lea rbx, str.UpperFilters
jmp 0x14004f704
lea rbx, str.UiNumber
jmp 0x14004f704
lea rbx, str.Capabilities
jmp 0x14004f704
lea rbx, str.PhysicalDeviceObjectName
jmp 0x14004f704
lea rbx, str.LocationInformation
jmp 0x14004f704
lea rbx, str.FriendlyName
and dword [rsp + 0x28], 0
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
mov r9d, 0x20019
xor r8d, r8d
lea rdx, [rsp + 0x80]
mov rcx, 0xffffffff80000002
call fcn.14004e070
mov ebp, eax
test eax, eax
je 0x14004f74f
cmp qword [rsp + 0x70], 0x10
jb 0x14004f748
mov rcx, qword [rsp + 0x58]
call fcn.14006127c
mov eax, ebp
jmp 0x14004f7e6
lea rax, [rsp + 0x20e0]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rsi
mov r9, r12
xor r8d, r8d
mov rdx, rbx
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov ebx, eax
mov rcx, qword [rsp + 0x40]
call fcn.14004e608
cmp ebx, 2
jne 0x14004f7a9
test rdi, rdi
je 0x14004f78e
and dword [rdi], 0
test rsi, rsi
je 0x14004f7a5
mov r8d, dword [rsp + 0x20e0]
xor edx, edx
mov rcx, rsi
call fcn.1400988d0
xor ebx, ebx
jmp 0x14004f7d2
mov ecx, 0xea
test ebx, ebx
je 0x14004f7b6
cmp ebx, ecx
jne 0x14004f7d2
test rdi, rdi
je 0x14004f7c4
mov eax, dword [rsp + 0x20e0]
mov dword [rdi], eax
cmp ebx, ecx
je 0x14004f7cd
test rsi, rsi
jne 0x14004f7d2
mov ebx, 0x7a
cmp qword [rsp + 0x70], 0x10
jb 0x14004f7e4
mov rcx, qword [rsp + 0x58]
call fcn.14006127c
mov eax, ebx
mov rcx, qword [rsp + 0x2080]
xor rcx, rsp
call fcn.140061100
add rsp, 0x2090
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret