Function at 0x14003a27c
Capabilities:
Delete registry value
Set registry value

Disassembly:
mov rax, rsp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x80
mov qword [rsp + 0x48], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov rbp, r9
movzx r14d, r8w
mov r13, rdx
mov rbx, rcx
mov rax, qword [rcx + 0xd0]
mov rdi, qword [rax + 0x48]
test rdi, rdi
jne 0x14003a2dc
mov r8d, dword [rcx + 0xc8]
lea rdx, str.CRecorder__d_::SetRecorderConfigInternal:_m_pRecInfo__wsConfig_is_NULL__bad_configuration_.
lea ecx, [rdi + 4]
call fcn.140001110
mov eax, 0x8007064a
jmp 0x14003a94c
xor eax, eax
or r8, 0xffffffffffffffff
mov rcx, r8
repne scasw ax, word [rdi]
not rcx
lea rsi, [rcx + 0xe]
mov r12d, esi
lea eax, [r8 + 3]
mul r12
cmovo rax, r8
mov rcx, rax
call fcn.1400025a0
mov rdi, rax
test rax, rax
jne 0x14003a330
mov r9d, esi
mov r8d, dword [rbx + 0xc8]
lea rdx, str.CRecorder__d_::SetRecorderConfigInternal:_new_WCHAR__d__returned_NULL.
lea ecx, [rax + 1]
call fcn.140001110
mov eax, 0x8007000e
jmp 0x14003a94c
mov r9, qword [rbx + 0xd0]
lea rax, str.UserSettings
mov qword [rsp + 0x20], rax
mov r9, qword [r9 + 0x48]
lea r8, str._s_s
mov rdx, r12
mov rcx, rdi
call fcn.14000f360
mov esi, eax
test eax, eax
jns 0x14003a389
mov r9d, eax
mov r8d, dword [rbx + 0xc8]
lea rdx, str.CRecorder__d_::SetRecorderConfigInternal:_Failed_to_call_StringCchPrintf__0x_x.
mov ecx, 1
call fcn.140001110
mov rcx, rdi
call sub.msvcrt.dll_free
mov eax, esi
jmp 0x14003a94c
mov r9, r13
lea r8, str.TuneRequest
mov rdx, rdi
mov rcx, rbx
call fcn.14003b630
mov esi, eax
mov rcx, rdi
call sub.msvcrt.dll_free
test esi, esi
jns 0x14003a3ce
mov r9d, esi
mov r8d, dword [rbx + 0xc8]
lea rdx, str.CRecorder__d_::SetRecorderConfigInternal:_Failed_to_save_tune_request__0x_x.
mov ecx, 1
call fcn.140001110
mov eax, esi
jmp 0x14003a94c
and qword [rsp + 0x60], 0
and qword [rsp + 0x68], 0
and qword [rsp + 0x70], 0
mov rax, qword [rbx + 0xd0]
and qword [rsp + 0x38], 0
and qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x20006
and dword [rsp + 0x20], 0
xor r9d, r9d
lea r8, str.UserSettings
mov rdx, qword [rax + 0x30]
lea rcx, [rsp + 0x60]
call fcn.1400039c8
test eax, eax
je 0x14003a45d
movzx edi, ax
or edi, 0x80070000
test eax, eax
cmovle edi, eax
mov r9d, edi
mov r8d, dword [rbx + 0xc8]
lea rdx, str.CRecorder__d_::SetRecorderConfigInternal:_Failed_to_call_CRegKey::Create__0x_x.
mov ecx, 1
call fcn.140001110
nop
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x14003a456
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, edi
jmp 0x14003a94c
movsx eax, r14w
mov dword [rsp + 0xb0], eax
mov esi, 4
mov dword [rsp + 0x28], esi
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x20], rax
mov r9d, esi
xor r8d, r8d
lea rdx, str.UseSTB
mov rdi, qword [rsp + 0x60]
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
je 0x14003a4dc
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
mov r9d, esi
mov r8d, dword [rbx + 0xc8]
lea rdx, str.CRecorder__d_::SetRecorderConfigInternal:_Cannot_RegSetValueEx_0x_x
mov ecx, 8
call fcn.140001110
nop
test rdi, rdi
je 0x14003a4d5
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, esi
jmp 0x14003a94c
test rbp, rbp
je 0x14003a553
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [rax + rax + 2]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rbp
mov r9d, 1
xor r8d, r8d
lea rdx, str.STBCode
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
je 0x14003a563
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
mov r9d, esi
mov r8d, dword [rbx + 0xc8]
lea rdx, str.CRecorder__d_::SetRecorderConfigInternal:_Cannot_RegSetValueEx_0x_x
mov ecx, 8
call fcn.140001110
nop
test rdi, rdi
je 0x14003a54c
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, esi
jmp 0x14003a94c
lea rdx, str.STBCode
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
mov rbp, qword [rsp + 0xd0]
test rbp, rbp
je 0x14003a5e2
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [rax + rax + 2]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rbp
mov r9d, 1
xor r8d, r8d
lea rdx, str.UserDefName
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
je 0x14003a5f2
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
mov r9d, esi
mov r8d, dword [rbx + 0xc8]
lea rdx, str.CRecorder__d_::SetRecorderConfigInternal:_Cannot_RegSetValueEx_0x_x
mov ecx, 8
call fcn.140001110
nop
test rdi, rdi
je 0x14003a5db
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, esi
jmp 0x14003a94c
lea rdx, str.UserDefName
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
mov ebp, dword [rsp + 0xd8]
mov dword [rsp + 0xb0], ebp
mov dword [rsp + 0x28], esi
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x20], rax
mov r9d, esi
xor r8d, r8d
lea rdx, str.WatchOrder
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
je 0x14003a66a
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
mov r9d, esi
mov r8d, dword [rbx + 0xc8]
lea rdx, str.CRecorder__d_::SetRecorderConfigInternal:_Cannot_RegSetValueEx_0x_x
mov ecx, 8
call fcn.140001110
nop
test rdi, rdi
je 0x14003a663
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, esi
jmp 0x14003a94c
mov r12d, dword [rsp + 0xe0]
mov dword [rsp + 0xb0], r12d
mov dword [rsp + 0x28], esi
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x20], rax
mov r9d, esi
xor r8d, r8d
lea rdx, str.RecordOrder
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
je 0x14003a6e4
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
mov r9d, esi
mov r8d, dword [rbx + 0xc8]
lea rdx, str.CRecorder__d_::SetRecorderConfigInternal:_Cannot_RegSetValueEx_0x_x
mov ecx, 8
call fcn.140001110
nop
test rdi, rdi
je 0x14003a6dd
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, esi
jmp 0x14003a94c
movsx eax, word [rsp + 0xe8]
mov dword [rsp + 0xb0], eax
mov dword [rsp + 0x28], esi
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x20], rax
mov r9d, esi
xor r8d, r8d
lea rdx, str.WatchPrefered
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
je 0x14003a75d
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
mov r9d, esi
mov r8d, dword [rbx + 0xc8]
lea rdx, str.CRecorder__d_::SetRecorderConfigInternal:_Cannot_RegSetValueEx_0x_x
mov ecx, 8
call fcn.140001110
nop
test rdi, rdi
je 0x14003a756
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, esi
jmp 0x14003a94c
movsx eax, word [rsp + 0xf0]
mov dword [rsp + 0xb0], eax
mov dword [rsp + 0x28], esi
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x20], rax
mov r9d, esi
xor r8d, r8d
lea rdx, str.RecordPrefered
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
je 0x14003a7d6
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
mov r9d, esi
mov r8d, dword [rbx + 0xc8]
lea rdx, str.CRecorder__d_::SetRecorderConfigInternal:_Cannot_RegSetValueEx_0x_x
mov ecx, 8
call fcn.140001110
nop
test rdi, rdi
je 0x14003a7cf
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, esi
jmp 0x14003a94c
movsx eax, word [rsp + 0xf8]
mov dword [rsp + 0xb0], eax
mov dword [rsp + 0x28], esi
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x20], rax
mov r9d, esi
xor r8d, r8d
lea rdx, str.EnabledForMCE
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
je 0x14003a84f
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
mov r9d, esi
mov r8d, dword [rbx + 0xc8]
lea rdx, str.CRecorder__d_::SetRecorderConfigInternal:_Cannot_RegSetValueEx_0x_x
mov ecx, 8
call fcn.140001110
nop
test rdi, rdi
je 0x14003a848
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, esi
jmp 0x14003a94c
mov rax, qword [rbx + 0xd0]
mov word [rax + 0x198], bp
mov rax, qword [rbx + 0xd0]
mov word [rax + 0x19a], r12w
mov rcx, qword [rbx + 0xd0]
xor eax, eax
or rdx, 0xffffffffffffffff
cmp word [rsp + 0xe8], dx
sete al
add eax, eax
xor eax, dword [rcx + 0x19c]
and eax, 2
xor dword [rcx + 0x19c], eax
mov rcx, qword [rbx + 0xd0]
xor eax, eax
cmp word [rsp + 0xf0], dx
sete al
shl eax, 2
xor eax, dword [rcx + 0x19c]
and eax, esi
xor dword [rcx + 0x19c], eax
mov rcx, qword [rbx + 0xd0]
xor eax, eax
cmp word [rsp + 0xf8], dx
sete al
shl eax, 3
xor eax, dword [rcx + 0x19c]
and eax, 8
xor dword [rcx + 0x19c], eax
and qword [rsp + 0x40], 0
mov rax, qword [rbx + 0xd0]
lea r8, [rsp + 0x40]
lea rdx, [0x140054350]
mov ecx, dword [rax + 0x10]
call fcn.1400024f0
test eax, eax
js 0x14003a92b
mov rax, qword [rbx + 0xd0]
movdqu xmm0, xmmword [rax + 0x9c]
movdqu xmmword [rsp + 0x50], xmm0
mov rcx, qword [rsp + 0x40]
mov rax, qword [rcx]
lea rdx, [rsp + 0x50]
call qword [rax + 0x20]
nop
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x14003a93c
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
test rdi, rdi
je 0x14003a94a
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
lea r11, [rsp + 0x80]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsp, r11
pop r14
pop r13
pop r12
pop rdi
pop rsi
ret