Function at 0x14001b960
Capabilities:
Get common file path
Query or enumerate registry value

Disassembly:
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x4cc0
call fcn.14011c260
sub rsp, rax
mov qword [rsp + 0x50], 0xfffffffffffffffe
mov qword [rsp + 0x4cf8], rbx
mov qword [rsp + 0x4d00], rbp
mov qword [rsp + 0x4d08], rsi
movaps xmmword [rsp + 0x4cb0], xmm6
mov rax, qword [0x14016adb0]
xor rax, rsp
mov qword [rsp + 0x4ca0], rax
mov rsi, rcx
lea rcx, [rsp + 0x2a10]
lea rdi, [0x140000000]
mov rax, qword [rdi + 0x12df68]
mov qword [rcx], rax
mov rax, qword [rdi + 0x12df70]
mov qword [rcx + 8], rax
xor edx, edx
mov r8d, 0x1f8
lea rcx, [rsp + 0x2a20]
call fcn.1400fce30
lea rdx, [rsp + 0x2c18]
mov rax, qword [rdi + 0x12df78]
mov qword [rdx], rax
mov rax, qword [rdi + 0x12df80]
mov qword [rdx + 8], rax
mov eax, dword [rdi + 0x12df88]
mov dword [rdx + 0x10], eax
xor edx, edx
mov r8d, 0x1f4
lea rcx, [rsp + 0x2c2c]
call fcn.1400fce30
lea rdx, [rsp + 0x2e20]
mov rax, qword [rdi + 0x12df90]
mov qword [rdx], rax
mov rax, qword [rdi + 0x12df98]
mov qword [rdx + 8], rax
mov eax, dword [rdi + 0x12dfa0]
mov dword [rdx + 0x10], eax
xor edx, edx
mov r8d, 0x1f4
lea rcx, [rsp + 0x2e34]
call fcn.1400fce30
lea rdx, [rsp + 0x3028]
mov rax, qword [rdi + 0x12dfa8]
mov qword [rdx], rax
movzx eax, word [rdi + 0x12dfb0]
mov word [rdx + 8], ax
xor edx, edx
mov r8d, 0x1fe
lea rcx, [rsp + 0x3032]
call fcn.1400fce30
lea rdx, [rsp + 0x3230]
mov rax, qword [rdi + 0x12dfb8]
mov qword [rdx], rax
mov rax, qword [rdi + 0x12dfc0]
mov qword [rdx + 8], rax
mov eax, dword [rdi + 0x12dfc8]
mov dword [rdx + 0x10], eax
movzx eax, word [rdi + 0x12dfcc]
mov word [rdx + 0x14], ax
xor edx, edx
mov r8d, 0x1f2
lea rcx, [rsp + 0x3246]
call fcn.1400fce30
lea rdx, [rsp + 0x3438]
mov rax, qword [rdi + 0x12dfd0]
mov qword [rdx], rax
mov eax, dword [rdi + 0x12dfd8]
mov dword [rdx + 8], eax
xor edx, edx
mov r8d, 0x1fc
lea rcx, [rsp + 0x3444]
call fcn.1400fce30
lea rdx, [rsp + 0x3640]
mov rax, qword [rdi + 0x12dfe0]
mov qword [rdx], rax
mov rax, qword [rdi + 0x12dfe8]
mov qword [rdx + 8], rax
mov eax, dword [rdi + 0x12dff0]
mov dword [rdx + 0x10], eax
movzx eax, word [rdi + 0x12dff4]
mov word [rdx + 0x14], ax
xor edx, edx
mov r8d, 0x1f2
lea rcx, [rsp + 0x3656]
call fcn.1400fce30
lea rdx, [rsp + 0x3848]
mov rax, qword [rdi + 0x12dff8]
mov qword [rdx], rax
mov rax, qword [rdi + 0x12e000]
mov qword [rdx + 8], rax
mov rax, qword [rdi + 0x12e008]
mov qword [rdx + 0x10], rax
xor edx, edx
mov r8d, 0x1f0
lea rcx, [rsp + 0x3860]
call fcn.1400fce30
movabs rdx, 0x630069004d
mov qword [rsp + 0x3a50], rdx
xor edx, edx
mov r8d, 0x200
lea rcx, [rsp + 0x3a58]
call fcn.1400fce30
lea rdx, [rsp + 0x3c58]
mov rax, qword [rdi + 0x12e010]
mov qword [rdx], rax
mov rax, qword [rdi + 0x12e018]
mov qword [rdx + 8], rax
mov eax, dword [rdi + 0x12e020]
mov dword [rdx + 0x10], eax
movzx eax, word [rdi + 0x12e024]
mov word [rdx + 0x14], ax
xor edx, edx
mov r8d, 0x1f2
lea rcx, [rsp + 0x3c6e]
call fcn.1400fce30
lea rdx, [rsp + 0x3e60]
mov rax, qword [rdi + 0x12e028]
mov qword [rdx], rax
mov rax, qword [rdi + 0x12e030]
mov qword [rdx + 8], rax
xor edx, edx
mov r8d, 0x1f8
lea rcx, [rsp + 0x3e70]
call fcn.1400fce30
lea rdx, [rsp + 0x4068]
mov rax, qword [rdi + 0x12e038]
mov qword [rdx], rax
mov rax, qword [rdi + 0x12e040]
mov qword [rdx + 8], rax
movzx eax, word [rdi + 0x12e048]
mov word [rdx + 0x10], ax
xor edx, edx
mov r8d, 0x1f6
lea rcx, [rsp + 0x407a]
call fcn.1400fce30
lea rdx, [rsp + 0x4270]
mov rax, qword [rdi + 0x12c860]
mov qword [rdx], rax
mov rax, qword [rdi + 0x12c868]
mov qword [rdx + 8], rax
movzx eax, word [rdi + 0x12c870]
mov word [rdx + 0x10], ax
xor edx, edx
mov r8d, 0x1f6
lea rcx, [rsp + 0x4282]
call fcn.1400fce30
lea rdx, [rsp + 0x4478]
mov rax, qword [rdi + 0x12e050]
mov qword [rdx], rax
mov rax, qword [rdi + 0x12e058]
mov qword [rdx + 8], rax
xor edx, edx
mov r8d, 0x1f8
lea rcx, [rsp + 0x4488]
call fcn.1400fce30
movabs rdx, 0x4100430052
mov qword [rsp + 0x4680], rdx
xor edx, edx
mov r8d, 0x200
lea rcx, [rsp + 0x4688]
call fcn.1400fce30
lea rdx, [rsp + 0x4888]
mov rax, qword [rdi + 0x12e060]
mov qword [rdx], rax
mov rax, qword [rdi + 0x12e068]
mov qword [rdx + 8], rax
mov eax, dword [rdi + 0x12e070]
mov dword [rdx + 0x10], eax
movzx eax, word [rdi + 0x12e074]
mov word [rdx + 0x14], ax
xor edx, edx
mov r8d, 0x1f2
lea rcx, [rsp + 0x489e]
call fcn.1400fce30
xor edx, edx
mov r8d, 0xc0
lea rcx, [rsp + 0x60]
call fcn.1400fce30
lea rbx, [rsi + 0x27568]
lea r12, [rsp + 0x64]
lea rbp, [rsp + 0x2a10]
mov r13d, reloc.OLEAUT32.dll_SafeArrayGetDim
lea r15, str.OPTIONS
movss xmm6, dword [0x1401444c8]
mov r8, rbp
lea rdx, str.Preset__s
lea rcx, [rsp + 0x1dd0]
call fcn.14001e4d0
test rbx, rbx
je 0x14001be51
mov dword [rsp + 0x30], 0x104
mov qword [rsp + 0x20], r15
mov r9, rbx
lea r8, str.SYSTEMCurrentControlSetServicesVIA_HD_Audio_Codec_DefaultVDeckINI
lea rdx, str._s_s_s_
lea rcx, [rsp + 0x1bc0]
call fcn.14001e4d0
lea rdx, [rsp + 0x48]
mov qword [rsp + 0x20], rdx
mov r9d, 1
xor r8d, r8d
lea rdx, [rsp + 0x1bc0]
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x14001bdfd
xor eax, eax
jmp 0x14001be53
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x19b0]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea rdx, [rsp + 0x1dd0]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov edi, eax
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test edi, edi
je 0x14001be42
xor eax, eax
jmp 0x14001be53
lea rcx, [rsp + 0x19b0]
call fcn.1400fa6e0
jmp 0x14001be53
xor eax, eax
mov dword [r12 - 4], eax
mov r8, rbp
lea rdx, str._s_Volume
lea rcx, [rsp + 0x1dd0]
call fcn.14001e4d0
test rbx, rbx
je 0x14001bf27
mov dword [rsp + 0x30], 0x104
mov qword [rsp + 0x20], r15
mov r9, rbx
lea r8, str.SYSTEMCurrentControlSetServicesVIA_HD_Audio_Codec_DefaultVDeckINI
lea rdx, str._s_s_s_
lea rcx, [rsp + 0x1bc0]
call fcn.14001e4d0
lea rdx, [rsp + 0x40]
mov qword [rsp + 0x20], rdx
mov r9d, 1
xor r8d, r8d
lea rdx, [rsp + 0x1bc0]
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x14001bed3
xor eax, eax
jmp 0x14001bf29
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x19b0]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea rdx, [rsp + 0x1dd0]
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov edi, eax
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test edi, edi
je 0x14001bf18
xor eax, eax
jmp 0x14001bf29
lea rcx, [rsp + 0x19b0]
call fcn.1400fa6e0
jmp 0x14001bf29
xor eax, eax
cvtsi2ss xmm0, eax
divss xmm0, xmm6
movss dword [r12], xmm0
mov r8, rbp
lea rdx, str._s_Mute
lea rcx, [rsp + 0x1dd0]
call fcn.14001e4d0
test rbx, rbx
je 0x14001c006
mov dword [rsp + 0x30], 0x104
mov qword [rsp + 0x20], r15
mov r9, rbx
lea r8, str.SYSTEMCurrentControlSetServicesVIA_HD_Audio_Codec_DefaultVDeckINI
lea rdx, str._s_s_s_
lea rcx, [rsp + 0x1bc0]
call fcn.14001e4d0
lea rdx, [rsp + 0x38]
mov qword [rsp + 0x20], rdx
mov r9d, 1
xor r8d, r8d
lea rdx, [rsp + 0x1bc0]
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x14001bfb2
xor eax, eax
jmp 0x14001c008
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x19b0]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea rdx, [rsp + 0x1dd0]
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov edi, eax
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test edi, edi
je 0x14001bff7
xor eax, eax
jmp 0x14001c008
lea rcx, [rsp + 0x19b0]
call fcn.1400fa6e0
jmp 0x14001c008
xor eax, eax
mov dword [r12 + 4], eax
add rbp, 0x208
add r12, 0xc
sub r13, 1
jne 0x14001bd82
mov r14, qword [rsi + 0xac0]
xor r12d, r12d
lea r13d, [r12 + 4]
test r14d, r14d
jle 0x14001c265
xor edi, edi
nop
mov dword [rsp + 0x30], r13d
test r12d, r12d
js 0x14001c254
cmp rdi, qword [rsi + 0xac0]
jge 0x14001c254
mov rcx, rdi
cmp rdi, qword [rsi + 0xac0]
jge 0x14001c08b
test rdi, rdi
js 0x14001c08b
mov rax, qword [rsi + 0xab0]
test rdi, rdi
je 0x14001c08d
nop
nop
sub rcx, 1
mov rax, qword [rax]
jne 0x14001c080
jmp 0x14001c08d
xor eax, eax
mov rcx, qword [rax + 0x10]
test rcx, rcx
je 0x14001c254
cmp qword [rcx + 0x828], 0
je 0x14001c254
mov rcx, qword [rcx + 0x828]
mov rax, qword [rcx]
lea rdx, [rsp + 0x30]
call qword [rax + 0x30]
mov r11d, dword [rsp + 0x30]
cmp r11d, 1
je 0x14001c0d5
cmp r11d, 2
je 0x14001c0d5
cmp r11d, 8
jne 0x14001c254
xor edx, edx
mov r8d, 0x828
lea rcx, [rsp + 0x950]
call fcn.1400fce30
cmp rdi, qword [rsi + 0xac0]
jge 0x14001c158
mov rcx, rdi
cmp rdi, qword [rsi + 0xac0]
jge 0x14001c11b
test rdi, rdi
js 0x14001c11b
mov rax, qword [rsi + 0xab0]
test rdi, rdi
je 0x14001c11d
sub rcx, 1
mov rax, qword [rax]
jne 0x14001c110
jmp 0x14001c11d
xor eax, eax
mov rdx, qword [rax + 0x10]
test rdx, rdx
jne 0x14001c143
lea rcx, [rsp + 0x120]
lea rdx, [rsp + 0x950]
mov r8d, 0x828
call fcn.1400fd180
jmp 0x14001c173
lea rcx, [rsp + 0x120]
mov r8d, 0x828
call fcn.1400fd180
jmp 0x14001c173
lea rcx, [rsp + 0x120]
lea rdx, [rsp + 0x950]
mov r8d, 0x828
call fcn.1400fd180
movsxd rax, dword [rsp + 0x534]
cmp eax, 0x10
je 0x14001c254
lea rbp, [rax + rax*2]
cmp dword [rsp + rbp*4 + 0x60], 0
je 0x14001c254
cmp rdi, qword [rsi + 0xac0]
jge 0x14001c1f6
mov rcx, rdi
cmp rdi, qword [rsi + 0xac0]
jge 0x14001c1cb
test rdi, rdi
js 0x14001c1cb
mov rax, qword [rsi + 0xab0]
test rdi, rdi
je 0x14001c1cd
nop
nop
sub rcx, 1
mov rax, qword [rax]
jne 0x14001c1c0
jmp 0x14001c1cd
xor eax, eax
mov rcx, qword [rax + 0x10]
test rcx, rcx
je 0x14001c1f6
cmp qword [rcx + 0x830], 0
je 0x14001c1f6
mov rcx, qword [rcx + 0x830]
mov rax, qword [rcx]
xor r8d, r8d
movss xmm1, dword [rsp + rbp*4 + 0x64]
call qword [rax + 0x38]
cmp rdi, qword [rsi + 0xac0]
jge 0x14001c254
mov rcx, rdi
cmp rdi, qword [rsi + 0xac0]
jge 0x14001c22b
test rdi, rdi
js 0x14001c22b
mov rax, qword [rsi + 0xab0]
test rdi, rdi
je 0x14001c22d
nop
sub rcx, 1
mov rax, qword [rax]
jne 0x14001c220
jmp 0x14001c22d
xor eax, eax
mov rcx, qword [rax + 0x10]
test rcx, rcx
je 0x14001c254
cmp qword [rcx + 0x830], 0
je 0x14001c254
mov rcx, qword [rcx + 0x830]
mov rax, qword [rcx]
xor r8d, r8d
mov edx, dword [rsp + rbp*4 + 0x68]
call qword [rax + 0x70]
add r12d, 1
add rdi, 1
cmp r12d, r14d
jl 0x14001c040
lea rcx, [rsp + 0x21f0]
lea rdi, [0x140000000]
mov rax, qword [rdi + 0x12e5a8]
mov qword [rcx], rax
mov eax, dword [rdi + 0x12e5b0]
mov dword [rcx + 8], eax
movzx eax, word [rdi + 0x12e5b4]
mov word [rcx + 0xc], ax
xor edx, edx
mov r8d, 0x1fa
lea rcx, [rsp + 0x21fe]
call fcn.1400fce30
lea rdx, [rsp + 0x23f8]
mov rax, qword [rdi + 0x12e5b8]
mov qword [rdx], rax
mov rax, qword [rdi + 0x12e5c0]
mov qword [rdx + 8], rax
mov rax, qword [rdi + 0x12e5c8]
mov qword [rdx + 0x10], rax
xor edx, edx
mov r8d, 0x1f0
lea rcx, [rsp + 0x2410]
call fcn.1400fce30
lea rdx, [rsp + 0x2600]
mov rax, qword [rdi + 0x12e5d0]
mov qword [rdx], rax
mov rax, qword [rdi + 0x12e5d8]
mov qword [rdx + 8], rax
mov eax, dword [rdi + 0x12e5e0]
mov dword [rdx + 0x10], eax
xor edx, edx
mov r8d, 0x1f4
lea rcx, [rsp + 0x2614]
call fcn.1400fce30
lea rdx, [rsp + 0x2808]
mov rax, qword [rdi + 0x12e5e8]
mov qword [rdx], rax
mov rax, qword [rdi + 0x12e5f0]
mov qword [rdx + 8], rax
mov eax, dword [rdi + 0x12e5f8]
mov dword [rdx + 0x10], eax
movzx eax, word [rdi + 0x12e5fc]
mov word [rdx + 0x14], ax
xor edx, edx
mov r8d, 0x1f2
lea rcx, [rsp + 0x281e]
call fcn.1400fce30
xor edx, edx
lea r8d, [rdx + 0x30]
lea rcx, [rsp + 0x60]
call fcn.1400fce30
lea rbp, [rsp + 0x64]
lea r12, [rsp + 0x21f0]
mov r8, r12
lea rdx, str.Preset__s
lea rcx, [rsp + 0x1dd0]
call fcn.14001e4d0
test rbx, rbx
je 0x14001c451
mov dword [rsp + 0x30], 0x104
mov qword [rsp + 0x20], r15
mov r9, rbx
lea r8, str.SYSTEMCurrentControlSetServicesVIA_HD_Audio_Codec_DefaultVDeckINI
lea rdx, str._s_s_s_
lea rcx, [rsp + 0x1bc0]
call fcn.14001e4d0
lea rdx, [rsp + 0x48]
mov qword [rsp + 0x20], rdx
mov r9d, 1
xor r8d, r8d
lea rdx, [rsp + 0x1bc0]
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x14001c3fd
xor eax, eax
jmp 0x14001c453
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x19b0]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea rdx, [rsp + 0x1dd0]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov edi, eax
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test edi, edi
je 0x14001c442
xor eax, eax
jmp 0x14001c453
lea rcx, [rsp + 0x19b0]
call fcn.1400fa6e0
jmp 0x14001c453
xor eax, eax
mov dword [rbp - 4], eax
mov r8, r12
lea rdx, str._s_Volume
lea rcx, [rsp + 0x1dd0]
call fcn.14001e4d0
test rbx, rbx
je 0x14001c525
mov dword [rsp + 0x30], 0x104
mov qword [rsp + 0x20], r15
mov r9, rbx
lea r8, str.SYSTEMCurrentControlSetServicesVIA_HD_Audio_Codec_DefaultVDeckINI
lea rdx, str._s_s_s_
lea rcx, [rsp + 0x1bc0]
call fcn.14001e4d0
lea rdx, [rsp + 0x40]
mov qword [rsp + 0x20], rdx
mov r9d, 1
xor r8d, r8d
lea rdx, [rsp + 0x1bc0]
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x14001c4d1
xor eax, eax
jmp 0x14001c527
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x19b0]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea rdx, [rsp + 0x1dd0]
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov edi, eax
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test edi, edi
je 0x14001c516
xor eax, eax
jmp 0x14001c527
lea rcx, [rsp + 0x19b0]
call fcn.1400fa6e0
jmp 0x14001c527
xor eax, eax
cvtsi2ss xmm0, eax
divss xmm0, xmm6
movss dword [rbp], xmm0
mov r8, r12
lea rdx, str._s_Mute
lea rcx, [rsp + 0x1dd0]
call fcn.14001e4d0
test rbx, rbx
je 0x14001c603
mov dword [rsp + 0x30], 0x104
mov qword [rsp + 0x20], r15
mov r9, rbx
lea r8, str.SYSTEMCurrentControlSetServicesVIA_HD_Audio_Codec_DefaultVDeckINI
lea rdx, str._s_s_s_
lea rcx, [rsp + 0x1bc0]
call fcn.14001e4d0
lea rdx, [rsp + 0x38]
mov qword [rsp + 0x20], rdx
mov r9d, 1
xor r8d, r8d
lea rdx, [rsp + 0x1bc0]
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x14001c5af
xor eax, eax
jmp 0x14001c605
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x19b0]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea rdx, [rsp + 0x1dd0]
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov edi, eax
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test edi, edi
je 0x14001c5f4
xor eax, eax
jmp 0x14001c605
lea rcx, [rsp + 0x19b0]
call fcn.1400fa6e0
jmp 0x14001c605
xor eax, eax
mov dword [rbp + 4], eax
add r12, 0x208
add rbp, 0xc
sub r13, 1
jne 0x14001c382
add rsi, 0xa88
xor edx, edx
lea r8d, [r13 + 9]
mov rcx, rsi
call fcn.140087d00
movsxd r12, eax
cmp r12d, 0xffffffff
je 0x14001cbdf
test eax, eax
js 0x14001c682
mov rcx, r12
cmp r12, qword [rsi + 0x38]
jge 0x14001c682
cmp rcx, qword [rsi + 0x38]
jge 0x14001c66b
test eax, eax
js 0x14001c66b
mov rax, qword [rsi + 0x28]
test r12d, r12d
je 0x14001c66d
nop
sub rcx, 1
mov rax, qword [rax]
jne 0x14001c660
jmp 0x14001c66d
xor eax, eax
mov rcx, qword [rax + 0x10]
test rcx, rcx
jne 0x14001c67a
xor eax, eax
jmp 0x14001c684
mov eax, dword [rcx + 0x2460]
jmp 0x14001c684
xor eax, eax
xor r14d, r14d
movsxd r15, eax
lea r13, [rsp + 0x64]
mov qword [rsp + 0x38], r13
mov r13d, dword [rsp + 0x30]
lea rdi, [rsp + 0x64]
nop
cmp dword [rdi - 4], 0
je 0x14001cbc8
mov ecx, r14d
test r14d, r14d
je 0x14001c71c
sub ecx, 1
je 0x14001c6fd
sub ecx, 1
je 0x14001c6de
cmp ecx, 1
jne 0x14001c739
lea edx, [rcx + 0xc]
lea r8d, [rcx + 8]
mov rcx, rsi
call fcn.140087d00
mov r13d, eax
cmp eax, 0xffffffff
je 0x14001cbc8
jmp 0x14001c739
mov edx, 0xa
lea r8d, [rdx - 1]
mov rcx, rsi
call fcn.140087d00
mov r13d, eax
cmp eax, 0xffffffff
je 0x14001cbc8
jmp 0x14001c739
mov edx, reloc.QsApoApi64.dll_Ordinal_12
lea r8d, [rdx - 3]
mov rcx, rsi
call fcn.140087d00
mov r13d, eax
cmp eax, 0xffffffff
je 0x14001cbc8
jmp 0x14001c739
mov edx, 8
lea r8d, [rdx + 1]
mov rcx, rsi
call fcn.140087d00
mov r13d, eax
cmp eax, 0xffffffff
je 0x14001cbc8
xor edx, edx
mov r8d, 0x828
lea rcx, [rsp + 0x950]
call fcn.1400fce30
test r13d, r13d
js 0x14001c7b8
movsxd rax, r13d
cmp rax, qword [rsi + 0x38]
jge 0x14001c7b8
cmp rax, qword [rsi + 0x38]
jge 0x14001c77b
test r13d, r13d
js 0x14001c77b
mov rcx, qword [rsi + 0x28]
test r13d, r13d
je 0x14001c77d
sub rax, 1
mov rcx, qword [rcx]
jne 0x14001c770
jmp 0x14001c77d
xor ecx, ecx
mov rdx, qword [rcx + 0x10]
test rdx, rdx
jne 0x14001c7a3
lea rcx, [rsp + 0x120]
lea rdx, [rsp + 0x950]
mov r8d, 0x828
call fcn.1400fd180
jmp 0x14001c7d3
lea rcx, [rsp + 0x120]
mov r8d, 0x828
call fcn.1400fd180
jmp 0x14001c7d3
lea rcx, [rsp + 0x120]
lea rdx, [rsp + 0x950]
mov r8d, 0x828
call fcn.1400fd180
lea rcx, [rsp + 0x1180]
lea rdx, [rsp + 0x120]
mov r8d, 0x828
call fcn.1400fd180
xor ebx, ebx
xor ebp, ebp
test r15, r15
jle 0x14001cbc8
nop
nop
mov word [rsp + 0x1fe0], 0
xor edx, edx
mov r8d, 0x206
lea rcx, [rsp + 0x1fe2]
call fcn.1400fce30
mov word [rsp + 0x1bc0], 0
xor edx, edx
mov r8d, 0x206
lea rcx, [rsp + 0x1bc2]
call fcn.1400fce30
test r12d, r12d
js 0x14001c8a6
mov rax, r12
cmp r12, qword [rsi + 0x38]
jge 0x14001c8a6
cmp rax, qword [rsi + 0x38]
jge 0x14001c86b
test r12d, r12d
js 0x14001c86b
mov rcx, qword [rsi + 0x28]
test r12d, r12d
je 0x14001c86d
sub rax, 1
mov rcx, qword [rcx]
jne 0x14001c860
jmp 0x14001c86d
xor ecx, ecx
mov rdx, qword [rcx + 0x10]
test rdx, rdx
je 0x14001c8a6
test ebx, ebx
js 0x14001c8a6
cmp ebx, dword [rdx + 0xa78]
jge 0x14001c8a6
movsxd rax, ebx
imul rax, rax, 0x228
lea r8, [rax + rdx + 0xaa0]
mov edx, 0x104
lea rcx, [rsp + 0x1fe0]
call fcn.1400f9e00
mov dword [rsp + 0x30], 0x104
lea rcx, [rsp + 0x19b0]
lea rdx, str.SOFTWAREMicrosoftWindowsCurrentVersionMMDevicesAudioCapture_
mov r8d, 0x86
call fcn.1400fd180
xor edx, edx
mov r8d, 0x182
lea rcx, [rsp + 0x1a36]
call fcn.1400fce30
xor r11d, r11d
xor r10d, r10d
xor r8d, r8d
xor edx, edx
xor r9d, r9d
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x1fe0]
repne scasw ax, word [rdi]
not rcx
sub rcx, 1
je 0x14001c932
cmp word [rsp + rdx*2 + 0x1fe0], 0x7b
jne 0x14001c914
add r9d, 1
cmp r9d, 2
je 0x14001c92c
add r8d, 1
add rdx, 1
mov eax, r8d
cmp rax, rcx
jb 0x14001c905
jmp 0x14001c932
mov r11d, r8d
mov r10, rdx
mov eax, r11d
cmp rax, rcx
ja 0x14001c983
lea rdx, [rsp + 0x1fe0]
lea r8, [rsp + r10*2 + 0x1fe0]
nop
nop
movzx eax, word [r8]
mov word [rdx], ax
add r11d, 1
add r8, 2
add rdx, 2
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x1fe0]
repne scasw ax, word [rdi]
not rcx
sub rcx, 1
mov eax, r11d
cmp rax, rcx
jbe 0x14001c950
lea r8, [rsp + 0x1fe0]
mov edx, 0x104
lea rcx, [rsp + 0x19b0]
call fcn.1400fb090
lea r8, str.Properties
mov edx, 0x104
lea rcx, [rsp + 0x19b0]
call fcn.1400fb090
mov edx, 0x104
lea rcx, [rsp + 0x4a90]
call qword [sym.imp.KERNEL32.dll_GetSystemWow64DirectoryW]
test eax, eax
jne 0x14001ca02
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x78
jne 0x14001ca02
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
mov r9d, 1
xor r8d, r8d
lea rdx, [rsp + 0x19b0]
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
jmp 0x14001ca2a
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
mov r9d, 0x101
xor r8d, r8d
lea rdx, [rsp + 0x19b0]
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x14001ca68
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x1bc0]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea rdx, str.a45c254e_df1c_4efd_8020_67d146a850e0_2
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea rax, [rsp + 0x1bc0]
lea rdi, [rsp + 0x1184]
sub rdi, rax
nop
nop
movzx edx, word [rax]
movzx ecx, word [rax + rdi]
sub edx, ecx
jne 0x14001ca93
add rax, 2
test ecx, ecx
jne 0x14001ca80
test edx, edx
je 0x14001cab1
add ebx, 1
add rbp, 1
cmp rbp, r15
jl 0x14001c800
mov rdi, qword [rsp + 0x38]
jmp 0x14001cbc8
mov dword [rsp + 0x28], 1
mov rax, qword [rsp + 0x38]
movss xmm0, dword [rax]
movss dword [rsp + 0x20], xmm0
xor r9d, r9d
mov r8d, ebx
mov edx, r12d
mov rcx, rsi
call fcn.140088e10
test r12d, r12d
js 0x14001cba0
mov rax, r12
cmp r12, qword [rsi + 0x38]
jge 0x14001cba7
cmp rax, qword [rsi + 0x38]
jge 0x14001cb0e
test r12d, r12d
js 0x14001cb0e
mov rcx, qword [rsi + 0x28]
test r12d, r12d
je 0x14001cb10
sub rax, 1
mov rcx, qword [rcx]
jne 0x14001cb03
jmp 0x14001cb10
xor ecx, ecx
mov rax, qword [rcx + 0x10]
test rax, rax
je 0x14001cbae
test ebx, ebx
js 0x14001cbc3
cmp ebx, dword [rax + 0xa78]
jge 0x14001cbbc
xor ecx, ecx
mov qword [rsp + 0x40], rcx
imul rbp, rbp, 0x228
cmp qword [rax + rbp + 0xa80], rcx
je 0x14001cb8e
mov rcx, qword [rax + rbp + 0xa80]
mov rax, qword [rcx]
lea r9, [rsp + 0x40]
lea r8, [0x14013c388]
mov edx, 0x17
call qword [rax + 0x68]
test eax, eax
js 0x14001cb89
mov rcx, qword [rsp + 0x40]
mov rax, qword [rcx]
xor r8d, r8d
mov rdx, qword [rsp + 0x38]
mov edx, dword [rdx + 4]
call qword [rax + 0x18]
mov rcx, qword [rsp + 0x40]
jmp 0x14001cb8e
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x14001cbb5
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov rdi, qword [rsp + 0x38]
jmp 0x14001cbc8
mov rdi, qword [rsp + 0x38]
jmp 0x14001cbc8
mov rdi, qword [rsp + 0x38]
jmp 0x14001cbc8
mov rdi, qword [rsp + 0x38]
jmp 0x14001cbc8
mov rdi, qword [rsp + 0x38]
jmp 0x14001cbc8
mov rdi, qword [rsp + 0x38]
jmp 0x14001cbc8
mov rdi, qword [rsp + 0x38]
add r14d, 1
add rdi, 0xc
mov qword [rsp + 0x38], rdi
cmp r14d, 4
jl 0x14001c6a0
mov rcx, qword [rsp + 0x4ca0]
xor rcx, rsp
call fcn.1400f9790
lea r11, [rsp + 0x4cc0]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret