Function at 0x1400121e4
Capabilities:
Query or enumerate registry value

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x130
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x120], rax
xor r14d, r14d
mov r12, rdx
mov rbx, rcx
lea r15d, [r14 + 8]
lea rdx, str.CRecorderMgr::GetRootDeviceNameAndInstanceId
mov dword [rsp + 0x40], r14d
mov ecx, r15d
call fcn.140001110
mov rax, qword [rbx + 0x148]
cmp rax, r14
je 0x14001f518
cmp qword [rbx + 0x168], r14
je 0x14001f533
cmp qword [rbx + 0x160], r14
je 0x14001f53c
cmp qword [rbx + 0x150], r14
je 0x14001f545
cmp qword [rbx + 0x158], r14
je 0x14001f54e
cmp qword [rbx + 0x178], r14
je 0x14001f557
xor edx, edx
xor ecx, ecx
call rax
mov rsi, rax
cmp rax, 0xffffffffffffffff
je 0x14001f560
mov rdx, qword [r12 + 0x78]
lea r9, [rsp + 0x70]
xor r8d, r8d
mov rcx, rax
mov dword [rsp + 0x70], 0x20
call qword [rbx + 0x168]
cmp eax, r14d
je 0x14001f56c
lea rax, [rsp + 0x50]
lea rdx, [rsp + 0x70]
xor r9d, r9d
mov qword [rsp + 0x28], rax
xor r8d, r8d
mov rcx, rsi
mov qword [rsp + 0x20], r14
mov dword [rsp + 0x50], 0x20
call qword [rbx + 0x150]
cmp eax, r14d
jne 0x1400122f8
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x14001f588
lea rax, [rsp + 0x40]
lea rdx, [rsp + 0x50]
xor r9d, r9d
xor r8d, r8d
mov rcx, rsi
mov qword [rsp + 0x20], rax
call qword [rbx + 0x158]
cmp eax, r14d
jne 0x14001232a
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x14001f591
mov r13d, dword [rsp + 0x40]
inc r13d
mov edi, r13d
add rdi, rdi
mov rcx, rdi
call qword [sym.imp.ole32.dll_CoTaskMemAlloc]
mov r8, rdi
mov rbp, rax
cmp rax, r14
je 0x14001f5a9
xor edx, edx
mov rcx, rax
call sub.msvcrt.dll_memset
lea rdx, [rsp + 0x40]
mov r9d, r13d
mov qword [rsp + 0x20], rdx
lea rdx, [rsp + 0x50]
mov r8, rbp
mov rcx, rsi
call qword [rbx + 0x158]
cmp eax, r14d
je 0x14001f5cf
mov edi, 0x4e
lea rcx, [rsp + 0xd0]
lea rdx, str.00000000_0000_0000_0000_000000000000
mov r8, rdi
call sub.msvcrt.dll_memcpy
lea rdx, [rsp + 0x40]
lea rax, [rsp + 0xd0]
mov qword [rsp + 0x30], rdx
lea r8d, [rdi - 0x2a]
lea rdx, [rsp + 0x50]
xor r9d, r9d
mov rcx, rsi
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], rax
call qword [rbx + 0x178]
cmp eax, r14d
je 0x14001f650
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
je 0x14001f650
lea r8d, [rdi - 0x40]
lea rdx, str.00000000_0000
lea rcx, [rsp + 0xd0]
call qword [sym.imp.msvcrt.dll_wcsncmp]
cmp eax, r14d
jne 0x14001f606
lea rdx, [rsp + 0x70]
mov r13d, 0x30
mov r9d, 0x20019
xor r8d, r8d
mov rcx, rsi
mov word [rsp + 0x92], r14w
mov word [rsp + 0x90], r13w
call qword [rbx + 0x170]
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x14001f6bf
lea rcx, [rsp + 0xb0]
lea rdx, str.TunerInstanceId
lea r8d, [r13 - 0x10]
mov dword [rsp + 0x44], r14d
mov dword [rsp + 0x4c], 4
mov dword [rsp + 0x48], 4
call sub.msvcrt.dll_memcpy
lea r11, [rsp + 0x48]
lea rax, [rsp + 0x44]
mov qword [rsp + 0x30], r11
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x4c]
lea r9d, [r13 - 0x20]
lea r8, [rsp + 0xb0]
xor edx, edx
mov rcx, rdi
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegGetValueW]
mov ecx, dword [rsp + 0x4c]
mov r9d, eax
cmp eax, r14d
je 0x14001f667
mov eax, dword [rsp + 0x48]
mov r8d, dword [r12]
mov dword [rsp + 0x28], ecx
lea rdx, str.CRecorderMgr::GetRootDeviceNameAndInstanceId___d__RegGetValue_failed__not_fatal___x__dwValueSize__x__dwType__x
mov ecx, r15d
mov dword [rsp + 0x20], eax
call fcn.140001110
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x1400124df
mov r8d, dword [r12]
lea rdx, str.CRecorderMgr::GetRootDeviceNameAndInstanceId___d__Tuner_Root_Device___ws
mov r9, rbp
mov ecx, r15d
call fcn.140001110
lea rcx, [r12 + 0x88]
mov rdx, rbp
call fcn.140012590
mov rcx, rbp
mov edi, eax
call qword [sym.imp.ole32.dll_CoTaskMemFree]
cmp edi, r14d
jl 0x14001f6e1
mov r8d, dword [r12]
lea r9, [rsp + 0x90]
lea rdx, str.CRecorderMgr::GetRootDeviceNameAndInstanceId___d__Tuner_Instance_Id__Empty_string_is_OK____ws
mov ecx, r15d
call fcn.140001110
lea rcx, [r12 + 0x90]
lea rdx, [rsp + 0x90]
call fcn.140012590
mov rcx, rsi
mov edi, eax
call qword [rbx + 0x160]
cmp edi, r14d
jl 0x14001f6f7
xor eax, eax
mov rcx, qword [rsp + 0x120]
xor rcx, rsp
call fcn.140001170
mov rbx, qword [rsp + 0x180]
add rsp, 0x130
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
lea rdx, str.CRecorderMgr::GetRootDeviceNameAndInstanceId:_m_pSetupDiCreateDeviceInfoList_is_NULL.
mov ecx, 4
call fcn.140001110
mov eax, 0x80004005
jmp 0x14001255f
lea rdx, str.CRecorderMgr::GetRootDeviceNameAndInstanceId:_m_pSetupDiOpenDeviceInterface_is_NULL.
jmp 0x14001f51f
lea rdx, str.CRecorderMgr::GetRootDeviceNameAndInstanceId:_m_pSetupDiDestroyDeviceInfoList_is_NULL.
jmp 0x14001f51f
lea rdx, str.CRecorderMgr::GetRootDeviceNameAndInstanceId:_m_pSetupDiGetDeviceInterfaceDetail_is_NULL.
jmp 0x14001f51f
lea rdx, str.CRecorderMgr::GetRootDeviceNameAndInstanceId:_m_pSetupDiGetDeviceInstanceId_is_NULL.
jmp 0x14001f51f
lea rdx, str.CRecorderMgr::GetRootDeviceNameAndInstanceId:_m_pSetupDiGetDeviceRegistryProperty_is_NULL.
jmp 0x14001f51f
lea rdx, str.CRecorderMgr::GetRootDeviceNameAndInstanceId:_m_pSetupDiCreateDeviceInfoList_returned_INVALID_HANDLE_VALUE.
lea ecx, [rax + 2]
jmp 0x14001f524
lea rdx, str.CRecorderMgr::GetRootDeviceNameAndInstanceId:_Failed_to_call_m_pSetupDiOpenDeviceInterface.
mov ecx, 1
call fcn.140001110
mov rcx, rsi
call qword [rbx + 0x160]
jmp 0x14001f529
lea rdx, str.CRecorderMgr::GetRootDeviceNameAndInstanceId:_Failed_to_call_m_pSetupDiGetDeviceInterfaceDetail.
jmp 0x14001f573
lea rdx, str.CRecorderMgr::GetRootDeviceNameAndInstanceId:_Failed_to_call_m_pSetupDiGetDeviceInstanceId.
mov ecx, 1
call fcn.140001110
mov edi, 0x80004005
jmp 0x14001f5bf
lea rdx, str.CRecorderMgr::GetRootDeviceNameAndInstanceId:_CoTaskMemAlloc__d__returned_NULL.
mov ecx, 1
call fcn.140001110
mov edi, 0x8007000e
mov rcx, rsi
call qword [rbx + 0x160]
mov eax, edi
jmp 0x14001255f
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
je 0x140012381
lea rdx, str.CRecorderMgr::GetRootDeviceNameAndInstanceId:_Failed_to_call_m_pSetupDiGetDeciceInstanceId.
mov ecx, 1
call fcn.140001110
mov rcx, rsi
call qword [rbx + 0x160]
mov rcx, rbp
call qword [sym.imp.ole32.dll_CoTaskMemFree]
jmp 0x14001f529
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, rbp
repne scasw ax, word [rdi]
not rcx
dec rcx
add ecx, ecx
cmp ecx, 0x50
jae 0x14001f636
mov rcx, rbp
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov ecx, 0x50
call qword [sym.imp.ole32.dll_CoTaskMemAlloc]
mov rbp, rax
lea r8, [rsp + 0xd0]
mov edx, reloc.OLEAUT32.dll_SafeArrayAllocDescriptorEx
mov rcx, rbp
call sub.msvcrt.dll_wcscpy_s
jmp 0x140012407
lea rdx, str.CRecorderMgr::GetRootDeviceNameAndInstanceId:_Failed_to_call_m_pSetupDiGetDeviceRegistryProperty.
mov ecx, 1
call fcn.140001110
nop
jmp 0x140012407
cmp ecx, 4
jne 0x1400124b5
mov ecx, dword [rsp + 0x44]
lea r9d, [r13 - 0x26]
lea r8d, [r13 - 0x24]
lea rdx, [rsp + 0x90]
call sub.msvcrt.dll__itow_s
cmp eax, r14d
je 0x1400124d4
mov r8d, dword [r12]
lea rdx, str.CRecorderMgr::GetRootDeviceNameAndInstanceId___d__uitow_failed_hr___x
mov r9d, eax
mov ecx, r15d
call fcn.140001110
mov word [rsp + 0x90], r13w
mov word [rsp + 0x92], r14w
jmp 0x1400124d4
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8d, dword [r12]
lea rdx, str.CRecorderMgr::GetRootDeviceNameAndInstanceId___d__SetupDiOpenDeviceInterfaceRegKey_failed__not_fatal____x
mov r9d, eax
mov ecx, r15d
call fcn.140001110
nop
jmp 0x1400124df
lea rdx, str.CRecorderMgr::GetRootDeviceNameAndInstanceId:_Failed_to_append_pwzRootDeviceame
mov ecx, 1
call fcn.140001110
jmp 0x14001f5c8
lea rdx, str.CRecorderMgr::GetRootDeviceNameAndInstanceId:_Failed_to_append_wzRootDeviceInstanceId
jmp 0x14001f6e8