Function at 0x140004f00
Capabilities:
Query or enumerate registry value

Disassembly:
mov rax, rsp
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xa0
mov qword [rsp + 0x98], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov r12d, edx
mov rdi, rcx
xor r13d, r13d
mov rbx, r13
mov qword [rax - 0x58], rbx
mov qword [rax - 0x50], r13
mov qword [rax - 0x48], r13
lea r14d, [r13 + 1]
mov bpl, r14b
lea rcx, [rsp + 0x30]
call qword [sym.imp.OLEAUT32.dll_VariantClear]
nop
mov qword [rsp + 0xf0], r13
lea rax, [rsp + 0xf0]
mov qword [rsp + 0x20], rax
mov r9d, 0x20019
xor r8d, r8d
lea rdx, str.SoftwareMicrosoftWindowsCurrentVersionMedia_CenterServiceVideo
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
cmp eax, r13d
jne 0x140004fec
mov rbx, qword [rsp + 0xf0]
mov qword [rsp + 0x80], rbx
mov dword [rsp + 0xf0], r13d
mov dword [rsp + 0xf8], 4
lea rax, [rsp + 0xf8]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0xf0]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x78]
xor r8d, r8d
lea rdx, str.UsePeakModeVideoEncoderSettings
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
movzx ebp, r14b
cmp dword [rsp + 0xf0], r13d
cmovne ebp, r13d
mov rcx, qword [rdi + 0x1d0]
mov rax, qword [rcx]
lea rdx, [0x1400557a8]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov esi, eax
cmp eax, r13d
jl 0x14001c07d
mov rax, qword [rdi]
mov r9d, 0x7270e0
lea r8, [rsp + 0xe0]
mov edx, r12d
mov rcx, rdi
call qword [rax + 0x70]
mov r9d, eax
mov r15d, 0x10624dd3
cmp eax, r13d
jl 0x14001c0b8
mov eax, 3
mov word [rsp + 0x48], ax
mov eax, 2
cmp bpl, r13b
cmovne eax, r14d
mov dword [rsp + 0x50], eax
mov rcx, qword [rdi + 0x1d0]
mov rax, qword [rcx]
lea r8, [rsp + 0x48]
lea rdx, [0x1400557b8]
call qword [rax + 0x48]
mov esi, eax
cmp bpl, r13b
je 0x14001c176
cmp eax, r13d
jl 0x14001c0e8
mov ebp, reloc.OLEAUT32.dll_SafeArrayGetLBound
mov word [rsp + 0x30], bp
mov eax, dword [rsp + 0xe0]
mov ecx, 0x7270e0
cmp eax, ecx
cmova eax, ecx
mov dword [rsp + 0x38], eax
mov rcx, qword [rdi + 0x1d0]
mov rax, qword [rcx]
lea r8, [rsp + 0x30]
lea rdx, [0x1400557a8]
call qword [rax + 0x48]
mov esi, eax
cmp eax, r13d
jl 0x14001c12f
mov ecx, dword [rsp + 0x38]
mov dword [rdi + 0x1b4], ecx
mov eax, r15d
mul ecx
shr edx, 6
mov r9d, edx
mov r8d, dword [rdi + 0xc8]
lea rdx, str.CRecorder__d_::SetVideoEncoderQuality_LEGACY_:_Peak_not_set___Average__dKbps_
mov ecx, 8
call fcn.140001110
jmp 0x1400050f0
xor r8d, r8d
mov edx, dword [rdi + 0x1b4]
mov rcx, rdi
call fcn.14000514c
nop
lea rcx, [rsp + 0x48]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
lea rcx, [rsp + 0x30]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
cmp rbx, r13
je 0x140005128
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
mov rbx, qword [rsp + 0xe8]
add rsp, 0xa0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov r9d, eax
mov r8d, dword [rdi + 0xc8]
lea rdx, str.CRecorder__d_::SetVideoEncoderQuality_Failed_to_call_m_pVidEncoder__IsSupported__0x_X
mov ecx, r14d
call fcn.140001110
nop
lea rcx, [rsp + 0x30]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
cmp rbx, r13
je 0x14001c0b1
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, esi
jmp 0x14000512a
mov eax, r15d
mul r12d
shr edx, 6
mov dword [rsp + 0x20], edx
mov r8d, dword [rdi + 0xc8]
lea rdx, str.CRecorder__d_::AdjustMaxVideoEncoderQuality:_Failed_to_adjust_video_encoder_quality__hr__0x_X___use_original___dKbps_
mov ecx, r14d
call fcn.140001110
mov dword [rsp + 0xe0], r12d
jmp 0x140005037
mov r9d, eax
mov r8d, dword [rdi + 0xc8]
lea rdx, str.CRecorder__d_::SetVideoEncoderQuality_LEGACY_:_Failed_to_set_VBR_average_mode0x_X
mov ecx, r14d
call fcn.140001110
nop
lea rcx, [rsp + 0x48]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
lea rcx, [rsp + 0x30]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
cmp rbx, r13
je 0x14001c128
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, esi
jmp 0x14000512a
mov r9d, eax
mov r8d, dword [rdi + 0xc8]
lea rdx, str.CRecorder__d_::SetVideoEncoderQuality_LEGACY_:_Failed_to_set_average_quality_0x_X
mov ecx, r14d
call fcn.140001110
nop
lea rcx, [rsp + 0x48]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
lea rcx, [rsp + 0x30]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
cmp rbx, r13
je 0x14001c16f
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, esi
jmp 0x14000512a
cmp eax, r13d
jl 0x14001c316
mov r8d, dword [rdi + 0xc8]
lea rdx, str.CRecorder__d_::SetVideoEncoderQuality:_set_VBR_peak_mode
mov ecx, 8
call fcn.140001110
mov r11, qword [rdi]
mov esi, 0x7a1200
mov r9d, esi
lea r8, [rsp + 0xf0]
mov edx, esi
mov rcx, rdi
call qword [r11 + 0x70]
mov r9d, eax
cmp eax, r13d
jge 0x14001c1e7
mov eax, r15d
mul r12d
shr edx, 6
mov dword [rsp + 0x20], edx
mov r8d, dword [rdi + 0xc8]
lea rdx, str.CRecorder__d_::AdjustMaxVideoEncoderQuality:_Failed_to_adjust_video_encoder_quality__hr__0x_X___use_original___dKbps_
mov ecx, r14d
call fcn.140001110
mov dword [rsp + 0xf0], esi
jmp 0x14001c1ee
mov esi, dword [rsp + 0xf0]
mov ebp, reloc.OLEAUT32.dll_SafeArrayGetLBound
mov word [rsp + 0x30], bp
mov dword [rsp + 0x38], esi
mov rcx, qword [rdi + 0x1d0]
mov rax, qword [rcx]
lea r8, [rsp + 0x30]
lea rdx, [0x14005bb50]
call qword [rax + 0x48]
mov esi, eax
cmp eax, r13d
jge 0x14001c263
mov r9d, eax
mov r8d, dword [rdi + 0xc8]
lea rdx, str.CRecorder__d_::SetVideoEncoderQuality:_Failed_to_set_peak_quality_0x_X
mov ecx, r14d
call fcn.140001110
nop
lea rcx, [rsp + 0x48]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
lea rcx, [rsp + 0x30]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
cmp rbx, r13
je 0x14001c25c
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, esi
jmp 0x14000512a
mov word [rsp + 0x30], bp
mov eax, dword [rsp + 0xe0]
mov ecx, 0x7270e0
cmp eax, ecx
cmova eax, ecx
mov dword [rsp + 0x38], eax
mov rcx, qword [rdi + 0x1d0]
mov rax, qword [rcx]
lea r8, [rsp + 0x30]
lea rdx, [0x1400557a8]
call qword [rax + 0x48]
mov esi, eax
cmp eax, r13d
jge 0x14001c2e4
mov r9d, eax
mov r8d, dword [rdi + 0xc8]
lea rdx, str.CRecorder__d_::SetVideoEncoderQuality:_Failed_to_set_average_quality_0x_X
mov ecx, r14d
call fcn.140001110
nop
lea rcx, [rsp + 0x48]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
lea rcx, [rsp + 0x30]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
cmp rbx, r13
je 0x14001c2dd
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, esi
jmp 0x14000512a
mov ecx, dword [rsp + 0x38]
mov dword [rdi + 0x1b4], ecx
mov eax, r15d
mul ecx
shr edx, 6
mov r9d, edx
mov r8d, dword [rdi + 0xc8]
lea rdx, str.CRecorder__d_::SetVideoEncoderQuality:_Peak_7500kbps___Average__dKbps_
mov ecx, 8
call fcn.140001110
jmp 0x1400050f0
mov r9d, eax
mov r8d, dword [rdi + 0xc8]
lea rdx, str.CRecorder__d_::SetVideoEncoderQuality:_Failed_to_set_VBR_peak_mode__0x_x
mov ecx, 2
call fcn.140001110
mov esi, 3
cmp word [rsp + 0x48], si
je 0x14001c34d
lea rcx, [rsp + 0x48]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
mov word [rsp + 0x48], si
mov dword [rsp + 0x50], r14d
mov rcx, qword [rdi + 0x1d0]
mov rax, qword [rcx]
lea r8, [rsp + 0x48]
lea rdx, [0x1400557b8]
call qword [rax + 0x48]
mov esi, eax
cmp eax, r13d
jge 0x14001c3b9
mov r9d, eax
mov r8d, dword [rdi + 0xc8]
lea rdx, str.CRecorder__d_::SetVideoEncoderQuality:_Failed_to_set_VBR_average_mode_0x_X
mov ecx, r14d
call fcn.140001110
nop
lea rcx, [rsp + 0x48]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
lea rcx, [rsp + 0x30]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
cmp rbx, r13
je 0x14001c3b2
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, esi
jmp 0x14000512a
mov r8d, dword [rdi + 0xc8]
lea rdx, str.CRecorder__d_::SetVideoEncoderQuality:_set_VBR_average_mode
mov ecx, 8
call fcn.140001110
lea rcx, [rsp + 0x60]
call qword [sym.imp.OLEAUT32.dll_VariantClear]
nop
mov ebp, reloc.OLEAUT32.dll_SafeArrayGetLBound
mov word [rsp + 0x60], bp
mov eax, dword [rsp + 0xe0]
mov ecx, 0x7270e0
cmp eax, ecx
cmova eax, ecx
mov dword [rsp + 0x68], eax
mov rcx, qword [rdi + 0x1d0]
mov rax, qword [rcx]
lea r8, [rsp + 0x60]
lea rdx, [0x1400557a8]
call qword [rax + 0x48]
mov esi, eax
cmp eax, r13d
jge 0x14001c46f
mov r9d, eax
mov r8d, dword [rdi + 0xc8]
lea rdx, str.CRecorder__d_::SetVideoEncoderQuality:_Failed_to_set_average_quality_0x_X
mov ecx, r14d
call fcn.140001110
nop
lea rcx, [rsp + 0x60]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
lea rcx, [rsp + 0x48]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
lea rcx, [rsp + 0x30]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
cmp rbx, r13
je 0x14001c468
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, esi
jmp 0x14000512a
mov ecx, dword [rsp + 0x68]
mov dword [rdi + 0x1b4], ecx
mov eax, r15d
mul ecx
shr edx, 6
mov r9d, edx
mov r8d, dword [rdi + 0xc8]
lea rdx, str.CRecorder__d_::SetVideoEncoderQuality:_Peak_not_set___Average__dKbps_
mov ecx, 8
call fcn.140001110
nop
lea rcx, [rsp + 0x60]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
jmp 0x1400050f0