Function at 0x14000bb20
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 0x14000bb51
lea ebx, [r14 + 1]
jmp 0x14000bf1d
mov rcx, qword [rcx + 0x18]
lea rdx, [rbp + 0x48]
mov rax, qword [rcx]
mov rax, qword [rax + 0x80]
call qword [0x14002a548]
mov ebx, eax
test eax, eax
js 0x14000bf0e
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 0x14000befb
mov rcx, qword [rdi + 0x30]
test rcx, rcx
je 0x14000bd8c
cmp word [rcx], r14w
je 0x14000bd8c
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov rcx, qword [rdi + 0x30]
lea rdx, str.RelativeCachePath
mov r9d, 1
xor r8d, r8d
lea eax, [rax*2 + 2]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rcx
mov rcx, qword [rbp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
movzx ebx, ax
or ebx, r15d
test eax, eax
cmovle ebx, eax
test ebx, ebx
js 0x14000befb
mov rcx, qword [rdi + 0x38]
test rcx, rcx
je 0x14000bda9
cmp word [rcx], r14w
je 0x14000bda9
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov rcx, qword [rdi + 0x38]
lea rdx, str.RelativeSourcePath
mov r9d, 1
xor r8d, r8d
lea eax, [rax*2 + 2]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rcx
mov rcx, qword [rbp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
movzx ebx, ax
or ebx, r15d
test eax, eax
cmovle ebx, eax
test ebx, ebx
js 0x14000befb
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 0x14000befb
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 0x14000befb
mov rcx, qword [rbp + 0x40]
lea rax, [rdi + 0x48]
lea rdx, str.HashType
cmp dword [rax], r14d
je 0x14000bdc6
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 0x14000befb
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 0x14000befb
mov rdx, qword [rbp + 0x40]
mov rcx, rdi
call fcn.14000c918
mov ebx, eax
test eax, eax
jns 0x14000be03
mov ecx, eax
jmp 0x14000befd
mov rcx, qword [rbp + 0x40]
lea rdx, str.RelativeCachePath
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
cmp eax, 2
cmove eax, r14d
jmp 0x14000bc0f
mov rcx, qword [rbp + 0x40]
lea rdx, str.RelativeSourcePath
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
cmp eax, 2
cmove eax, r14d
jmp 0x14000bc6d
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 0x14000befb
mov rcx, qword [rbp + 0x40]
lea rdx, str.Hash
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
cmp eax, 2
cmove eax, r14d
jmp 0x14000bd60
mov rcx, qword [rdi + 0xa8]
test rcx, rcx
je 0x14000beba
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [0x14002a548]
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 0x14000befb
mov rcx, qword [rdi + 0xb0]
test rcx, rcx
je 0x14000bed4
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [0x14002a548]
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 0x14000beec
mov rcx, qword [rbp + 0x40]
lea rdx, str.PreferredSource
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
cmp eax, 2
cmove eax, r14d
jmp 0x14000be56
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 0x14000bf0e
mov ecx, ebx
mov r8, qword [rdi + 0x28]
xor r9d, r9d
mov edx, 0xc0000013
call fcn.1400027fc
mov rcx, qword [rbp + 0x40]
test rcx, rcx
je 0x14000bf1d
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