Function at 0x14008a2c0
Capabilities:
Query or enumerate registry value

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x4c8]
sub rsp, 0x5a0
mov qword [rbp], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x14044f8c0]
xor rax, rsp
mov qword [rbp + 0x490], rax
mov rsi, rcx
mov rax, qword [rcx + 0x30]
test rax, rax
je 0x14008aae3
cmp dword [rax + 0x50], 0
je 0x14008aae3
call fcn.140162c14
mov rcx, rax
test rax, rax
je 0x14008ab1e
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x68], rax
call fcn.140162c14
mov rcx, rax
test rax, rax
je 0x14008ab29
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x50], rax
xor r13d, r13d
mov qword [rbp - 0x20], r13
mov dword [rbp - 0x18], r13d
mov qword [rbp - 0x10], r13
mov qword [rbp - 0x70], r13
mov dword [rbp - 0x68], r13d
mov qword [rbp - 0x60], r13
mov dword [rsp + 0x40], r13d
lea rax, str.Movie
mov qword [rbp + 0x58], rax
lea rax, str.Music
mov qword [rbp + 0x60], rax
lea rax, str.Game
mov qword [rbp + 0x68], rax
lea rax, str.Internal
mov qword [rbp + 0x40], rax
lea rax, str.External
mov qword [rbp + 0x48], rax
lea rax, str.Headphone
mov qword [rbp + 0x50], rax
mov dword [rbp + 0x20], r13d
mov dword [rbp + 0x24], 1
mov dword [rbp + 0x28], 2
mov dword [rbp + 0x30], r13d
mov dword [rbp + 0x34], 1
mov dword [rbp + 0x38], 2
lea rdx, str.SOFTWAREDTSU2PPresets
mov rdi, 0xffffffffffffffff
mov rax, rdi
inc rax
cmp word [rdx + rax*2], 0
jne 0x14008a3f0
mov r8d, eax
lea rcx, [rsp + 0x68]
call fcn.140016ad0
lea rdx, [0x140393ef0]
mov rax, rdi
inc rax
cmp word [rdx + rax*2], 0
jne 0x14008a411
mov r8d, eax
lea rcx, [rsp + 0x68]
call fcn.140016630
mov r9d, 0x20019
mov rbx, qword [rsp + 0x68]
mov r8, rbx
mov rdx, 0xffffffff80000002
lea rcx, [rbp - 0x20]
call fcn.140024490
test eax, eax
je 0x14008a47f
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], r13
mov dword [rsp + 0x28], 0x20006
mov dword [rsp + 0x20], r13d
xor r9d, r9d
mov r8, rbx
mov rdx, 0xffffffff80000002
lea rcx, [rbp - 0x20]
call fcn.14002e590
test eax, eax
jne 0x14008aa89
movups xmm0, xmmword [0x1403963d0]
movups xmmword [rbp + 8], xmm0
mov eax, dword [0x1403963e0]
mov dword [rbp + 0x18], eax
mov qword [rbp - 0x28], r13
mov edi, r13d
mov r15d, SafeArrayDestroy
mov r14, qword [rbp - 0x20]
test r14, r14
je 0x14008a531
lea rdx, [rbp - 0x28]
lea rcx, [rbp + 8]
call fcn.140042b50
test eax, eax
js 0x14008a516
mov dword [rsp + 0x70], 4
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x74]
xor r8d, r8d
mov rdi, qword [rbp - 0x28]
mov rdx, rdi
mov rcx, r14
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov ebx, eax
test eax, eax
jne 0x14008a504
mov ebx, r13d
cmp dword [rsp + 0x74], 4
cmovne ebx, r15d
mov rcx, rdi
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov edi, r13d
test ebx, ebx
sete dil
test edi, edi
je 0x14008a531
mov r9d, 1
mov r8d, dword [rsp + 0x40]
lea rdx, [rbp + 8]
mov rcx, rsi
call fcn.140101d60
mov r12d, r13d
lea r15, [rbp + 0x20]
nop dword [rax + rax]
mov dword [rsp + 0x40], r13d
movups xmm0, xmmword [0x1403977b8]
movups xmmword [rbp + 8], xmm0
mov eax, dword [reloc.OLEAUT32.dll_SysReAllocString]
mov dword [rbp + 0x18], eax
mov rax, qword [rsi]
mov r8d, dword [r15]
lea rdx, [rbp + 8]
mov rcx, rsi
call qword [rax + 0x60]
mov qword [rbp - 0x58], r13
mov edi, r13d
test r14, r14
je 0x14008a5e2
lea rdx, [rbp - 0x58]
lea rcx, [rbp + 8]
call fcn.140042b50
test eax, eax
js 0x14008a5e2
mov dword [rsp + 0x78], 4
lea rax, [rsp + 0x78]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x7c]
xor r8d, r8d
mov rdi, qword [rbp - 0x58]
mov rdx, rdi
mov rcx, r14
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov ebx, eax
test eax, eax
jne 0x14008a5d0
mov ebx, r13d
cmp dword [rsp + 0x7c], 4
mov eax, SafeArrayDestroy
cmovne ebx, eax
mov rcx, rdi
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov edi, r13d
test ebx, ebx
sete dil
mov r8d, r13d
test edi, edi
cmovne r8d, dword [rsp + 0x40]
mov r9d, 1
lea rdx, [rbp + 8]
mov rcx, rsi
call fcn.140101d60
inc r12d
add r15, 4
cmp r12d, 3
jb 0x14008a540
call fcn.140162c14
mov rcx, rax
test rax, rax
je 0x14008ab13
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x48], rax
lea rbx, [0x140393240]
mov rdx, rbx
lea rcx, [rsp + 0x48]
call fcn.1400168b0
mov rdi, 0xffffffffffffffff
test al, al
jne 0x14008a66d
mov rax, rdi
inc rax
cmp word [rbx + rax*2], 0
jne 0x14008a652
mov r8d, eax
mov rdx, rbx
lea rcx, [rsp + 0x48]
call fcn.140016ad0
nop
movups xmm0, xmmword [0x140397560]
movups xmmword [rbp + 8], xmm0
mov eax, dword [reloc.OLEAUT32.dll_SysReAllocString]
mov dword [rbp + 0x18], eax
mov qword [rbp - 0x50], r13
test r14, r14
je 0x14008a734
lea rdx, [rbp - 0x50]
lea rcx, [rbp + 8]
call fcn.140042b50
test eax, eax
js 0x14008a734
mov dword [rsp + 0x58], 0x208
lea rax, [rsp + 0x58]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x70]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x80]
xor r8d, r8d
mov rbx, qword [rbp - 0x50]
mov rdx, rbx
mov rcx, r14
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x14008a72b
mov eax, dword [rbp - 0x80]
dec eax
cmp eax, 1
ja 0x14008a72b
mov eax, dword [rsp + 0x58]
test eax, eax
je 0x14008a6fc
test al, 1
jne 0x14008a72b
shr rax, 1
cmp word [rbp + rax*2 + 0x6e], 0
je 0x14008a701
jmp 0x14008a72b
mov word [rbp + 0x70], r13w
lea rcx, [rbp + 0x70]
mov rax, rdi
nop dword [rax + rax]
inc rax
cmp word [rcx + rax*2], 0
jne 0x14008a710
mov r8d, eax
lea rdx, [rbp + 0x70]
lea rcx, [rsp + 0x48]
call fcn.140016ad0
mov rcx, rbx
call qword [sym.imp.ole32.dll_CoTaskMemFree]
lea r8, [rsp + 0x48]
lea rdx, [rbp + 8]
mov rcx, rsi
call fcn.140101b00
movups xmm0, xmmword [0x1403974e8]
movups xmmword [rbp + 8], xmm0
mov eax, dword [reloc.OLEAUT32.dll_SysReAllocString]
mov dword [rbp + 0x18], eax
mov qword [rbp - 0x48], r13
test r14, r14
je 0x14008a817
lea rdx, [rbp - 0x48]
lea rcx, [rbp + 8]
call fcn.140042b50
test eax, eax
js 0x14008a817
mov dword [rsp + 0x5c], 0x208
lea rax, [rsp + 0x5c]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x280]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x7c]
xor r8d, r8d
mov rbx, qword [rbp - 0x48]
mov rdx, rbx
mov rcx, r14
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x14008a80e
mov eax, dword [rbp - 0x7c]
dec eax
cmp eax, 1
ja 0x14008a80e
mov eax, dword [rsp + 0x5c]
test eax, eax
je 0x14008a7da
test al, 1
jne 0x14008a80e
shr rax, 1
cmp word [rbp + rax*2 + 0x27e], 0
je 0x14008a7e2
jmp 0x14008a80e
mov word [rbp + 0x280], r13w
lea rcx, [rbp + 0x280]
mov rax, rdi
nop dword [rax]
inc rax
cmp word [rcx + rax*2], 0
jne 0x14008a7f0
mov r8d, eax
lea rdx, [rbp + 0x280]
lea rcx, [rsp + 0x48]
call fcn.140016ad0
mov rcx, rbx
call qword [sym.imp.ole32.dll_CoTaskMemFree]
lea r8, [rsp + 0x48]
lea rdx, [rbp + 8]
mov rcx, rsi
call fcn.140101b00
test r14, r14
je 0x14008a83a
mov rcx, r14
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rbp - 0x20], r13
mov dword [rbp - 0x18], r13d
mov dword [rsp + 0x64], r13d
lea rdx, [rbp + 0x40]
mov qword [rbp - 0x30], rdx
lea rax, [rbp + 0x20]
mov qword [rbp - 0x78], rax
nop dword [rax]
nop word [rax + rax]
mov ebx, r13d
mov dword [rsp + 0x60], ebx
mov r15, qword [rdx]
mov qword [rbp - 8], r15
lea r12, [rbp + 0x30]
lea rdi, [rbp + 0x58]
mov qword [rbp - 0x38], rdi
nop word [rax + rax]
lea rdx, [rsp + 0x68]
lea rcx, [rsp + 0x50]
call fcn.140016d50
test r15, r15
jne 0x14008a899
mov eax, r13d
jmp 0x14008a8ab
mov rax, 0xffffffffffffffff
inc rax
cmp word [r15 + rax*2], 0
jne 0x14008a8a0
mov r8d, eax
mov rdx, r15
lea rcx, [rsp + 0x50]
call fcn.140016630
mov rdx, qword [rdi]
test rdx, rdx
jne 0x14008a8c8
mov eax, r13d
jmp 0x14008a8da
mov rax, 0xffffffffffffffff
nop
inc rax
cmp word [rdx + rax*2], 0
jne 0x14008a8d0
mov r8d, eax
lea rcx, [rsp + 0x50]
call fcn.140016630
mov r8d, 7
lea rdx, str.Default
lea rcx, [rsp + 0x50]
call fcn.140016630
mov r9d, 0x20019
mov r8, qword [rsp + 0x50]
mov rdx, 0xffffffff80000002
lea rcx, [rbp - 0x70]
call fcn.140024490
test eax, eax
jne 0x14008aa18
mov r14d, r13d
lea rdi, [0x1404513c0]
mov r15, qword [rbp - 0x78]
nop
mov qword [rbp - 0x40], r13
mov rax, qword [rdi + 8]
movups xmm0, xmmword [rax]
movups xmmword [rbp + 8], xmm0
mov eax, dword [rax + 0x10]
mov dword [rbp + 0x18], eax
lea r9, [rbp - 0x40]
mov r8d, dword [rdi]
lea rdx, [rbp + 8]
lea rcx, [rbp - 0x70]
call fcn.140042ce0
test eax, eax
je 0x14008a9e4
mov rbx, qword [rbp - 0x40]
test rbx, rbx
je 0x14008a9e4
mov rax, qword [rsi]
mov r9d, dword [r12]
mov r8d, dword [r15]
lea rdx, [rbp + 8]
mov rcx, rsi
call qword [rax + 0x68]
mov ecx, dword [rdi]
sub ecx, 3
je 0x14008a9cd
sub ecx, 1
je 0x14008a9bb
sub ecx, 7
je 0x14008a9a9
cmp ecx, 8
jne 0x14008a9dc
lea r9d, [rcx - 7]
mov r8d, dword [rbx]
lea rdx, [rbp + 8]
mov rcx, rsi
call fcn.140101d60
jmp 0x14008a9dc
movzx r8d, word [rbx]
lea rdx, [rbp + 8]
mov rcx, rsi
call fcn.1401023d0
jmp 0x14008a9dc
movss xmm2, dword [rbx]
lea rdx, [rbp + 8]
mov rcx, rsi
call fcn.1401021a0
jmp 0x14008a9dc
mov r8d, dword [rbx]
lea rdx, [rbp + 8]
mov rcx, rsi
call fcn.140101f80
mov rcx, rbx
call fcn.1402f395c
inc r14d
add rdi, 0x20
cmp r14d, 0x23
jb 0x14008a930
mov rcx, qword [rbp - 0x70]
test rcx, rcx
mov r15, qword [rbp - 8]
je 0x14008aa0c
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rbp - 0x70], r13
mov dword [rbp - 0x68], r13d
mov ebx, dword [rsp + 0x60]
mov rdi, qword [rbp - 0x38]
inc ebx
mov dword [rsp + 0x60], ebx
add rdi, 8
mov qword [rbp - 0x38], rdi
add r12, 4
cmp ebx, 3
jb 0x14008a880
mov ecx, dword [rsp + 0x64]
inc ecx
mov dword [rsp + 0x64], ecx
add qword [rbp - 0x78], 4
mov rdx, qword [rbp - 0x30]
add rdx, 8
mov qword [rbp - 0x30], rdx
cmp ecx, 3
jb 0x14008a860
mov rcx, rsi
call fcn.14008ab40
nop
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
mov rdi, 0xffffffffffffffff
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14008aa85
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov r13, qword [rbp - 0x70]
test r13, r13
je 0x14008aa98
mov rcx, r13
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
nop
mov rcx, qword [rbp - 0x20]
test rcx, rcx
je 0x14008aaa8
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
nop
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14008aac7
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], edi
sub edi, 1
jg 0x14008aae3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, qword [rbp + 0x490]
xor rcx, rsp
call fcn.1402ecc20
lea r11, [rsp + 0x5a0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov ecx, 0x80004005
call fcn.140012800
nop
mov ecx, 0x80004005
call fcn.140012800
nop
mov ecx, 0x80004005
call fcn.140012800
int3