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

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rdi
push r12
push r14
push r15
mov rbp, rsp
sub rsp, 0x50
xor r14d, r14d
mov rdi, rcx
mov qword [rbp + 0x48], r14
mov qword [rbp + 0x40], r14
cmp dword [rcx + 0x64], r14d
je 0x14000bd01
lea ebx, [r14 + 1]
jmp 0x14000c0cd
mov rcx, qword [rcx + 0x18]
lea rdx, [rbp + 0x48]
mov rax, qword [rcx]
mov rax, qword [rax + 0x80]
call qword [0x14002a558]
mov ebx, eax
test eax, eax
js 0x14000c0be
mov rdx, qword [rdi + 0x28]
lea rax, [rbp + 0x30]
mov rcx, qword [rbp + 0x48]
xor r9d, r9d
mov qword [rsp + 0x40], rax
xor r8d, r8d
lea rax, [rbp + 0x40]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], 0x2001f
mov dword [rsp + 0x20], r14d
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
movzx ebx, ax
mov r15d, 0x80070000
or ebx, r15d
test eax, eax
cmovle ebx, eax
test ebx, ebx
js 0x14000c0ab
mov rcx, qword [rdi + 0x30]
test rcx, rcx
je 0x14000bf3c
cmp word [rcx], r14w
je 0x14000bf3c
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov rcx, qword [rbp + 0x40]
lea rdx, str.RelativeCachePath
mov r9d, 1
xor r8d, r8d
lea eax, [rax*2 + 2]
mov dword [rsp + 0x28], eax
mov rax, qword [rdi + 0x30]
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
movzx ebx, ax
or ebx, r15d
test eax, eax
cmovle ebx, eax
test ebx, ebx
js 0x14000c0ab
mov rcx, qword [rdi + 0x38]
test rcx, rcx
je 0x14000bf59
cmp word [rcx], r14w
je 0x14000bf59
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov rcx, qword [rbp + 0x40]
lea rdx, str.RelativeSourcePath
mov r9d, 1
xor r8d, r8d
lea eax, [rax*2 + 2]
mov dword [rsp + 0x28], eax
mov rax, qword [rdi + 0x38]
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
movzx ebx, ax
or ebx, r15d
test eax, eax
cmovle ebx, eax
test ebx, ebx
js 0x14000c0ab
mov rcx, qword [rbp + 0x40]
lea rax, [rdi + 0x40]
mov r12d, 4
lea rdx, str.Priority
mov dword [rsp + 0x28], r12d
mov r9d, r12d
xor r8d, r8d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
movzx ebx, ax
or ebx, r15d
test eax, eax
cmovle ebx, eax
test ebx, ebx
js 0x14000c0ab
mov rcx, qword [rbp + 0x40]
lea rax, [rdi + 0x44]
mov dword [rsp + 0x28], r12d
lea rdx, str.Signed
mov r9d, r12d
mov qword [rsp + 0x20], rax
xor r8d, r8d
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
movzx ebx, ax
or ebx, r15d
test eax, eax
cmovle ebx, eax
test ebx, ebx
js 0x14000c0ab
mov rcx, qword [rbp + 0x40]
lea rax, [rdi + 0x48]
lea rdx, str.HashType
cmp dword [rax], r14d
je 0x14000bf76
mov dword [rsp + 0x28], r12d
mov r9d, r12d
xor r8d, r8d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
movzx ebx, ax
or ebx, r15d
test eax, eax
cmovle ebx, eax
test ebx, ebx
js 0x14000c0ab
mov eax, dword [rdi + 0x4c]
lea rcx, [rdi + 0x50]
mov dword [rsp + 0x28], eax
lea r9d, [r12 - 1]
mov qword [rsp + 0x20], rcx
lea rdx, str.Hash
mov rcx, qword [rbp + 0x40]
xor r8d, r8d
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
movzx ebx, ax
or ebx, r15d
test eax, eax
cmovle ebx, eax
test ebx, ebx
js 0x14000c0ab
mov rdx, qword [rbp + 0x40]
mov rcx, rdi
call fcn.14000cb18
mov ebx, eax
test eax, eax
jns 0x14000bfb3
mov ecx, eax
jmp 0x14000c0ad
mov rcx, qword [rbp + 0x40]
lea rdx, str.RelativeCachePath
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
cmp eax, 2
cmove eax, r14d
jmp 0x14000bdbf
mov rcx, qword [rbp + 0x40]
lea rdx, str.RelativeSourcePath
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
cmp eax, 2
cmove eax, r14d
jmp 0x14000be1d
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
cmp eax, 2
cmove eax, r14d
movzx ebx, ax
or ebx, r15d
test eax, eax
cmovle ebx, eax
test ebx, ebx
js 0x14000c0ab
mov rcx, qword [rbp + 0x40]
lea rdx, str.Hash
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
cmp eax, 2
cmove eax, r14d
jmp 0x14000bf10
mov rcx, qword [rdi + 0xa8]
test rcx, rcx
je 0x14000c06a
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [0x14002a558]
mov rcx, rax
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov rcx, qword [rbp + 0x40]
lea rdx, str.PreferredSource
mov r9d, 1
xor r8d, r8d
lea eax, [rax*2 + 2]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rbx
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
movzx ebx, ax
or ebx, r15d
test eax, eax
cmovle ebx, eax
test ebx, ebx
js 0x14000c0ab
mov rcx, qword [rdi + 0xb0]
test rcx, rcx
je 0x14000c084
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [0x14002a558]
mov rcx, rax
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov rcx, qword [rbp + 0x40]
lea rdx, str.ContainerResource
mov r9d, 1
xor r8d, r8d
lea eax, [rax*2 + 2]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rbx
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
jmp 0x14000c09c
mov rcx, qword [rbp + 0x40]
lea rdx, str.PreferredSource
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
cmp eax, 2
cmove eax, r14d
jmp 0x14000c006
mov rcx, qword [rbp + 0x40]
lea rdx, str.ContainerResource
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
cmp eax, 2
cmove eax, r14d
movzx ebx, ax
or ebx, r15d
test eax, eax
cmovle ebx, eax
test ebx, ebx
jns 0x14000c0be
mov ecx, ebx
mov r8, qword [rdi + 0x28]
xor r9d, r9d
mov edx, 0xc0000013
call fcn.14000282c
mov rcx, qword [rbp + 0x40]
test rcx, rcx
je 0x14000c0cd
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, ebx
mov rbx, qword [rsp + 0x88]
add rsp, 0x50
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret