Function at 0x180015ac4
Capabilities:
Set registry value

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
lea rbp, [rsp - 0x3f]
sub rsp, 0x88
mov qword [rbp - 9], 0xfffffffffffffffe
mov rbx, rcx
and dword [rbp + 0x6f], 0
lea rcx, [0x18003d858]
mov rax, qword [0x18003d858]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbx], rax
mov dword [rbp + 0x6f], 1
mov esi, 0x10
mov dword [rbp + 0x77], esi
lea rcx, [rbp - 1]
call fcn.180015d0c
mov rdi, rax
mov rcx, qword [rbx]
lea r8d, [rsi - 0xf]
sub r8d, dword [rcx - 8]
mov ecx, dword [rcx - 0xc]
sub ecx, esi
or ecx, r8d
jge 0x180015b3a
mov edx, esi
mov rcx, rbx
call fcn.1800026b0
lea r9, [rbp + 0x77]
mov r8, qword [rbx]
lea rdx, [0x18002f348]
mov rcx, rdi
call fcn.180012a6c
nop
mov rcx, qword [rbp - 1]
test rcx, rcx
je 0x180015b60
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rcx, qword [rbx]
test rcx, rcx
jne 0x180015b6c
xor eax, eax
jmp 0x180015b7d
movsxd rdx, dword [rcx - 0xc]
call fcn.180019134
test eax, eax
js 0x180015cf4
mov rcx, qword [rbx]
cmp eax, dword [rcx - 0xc]
jg 0x180015cf4
mov dword [rcx - 0x10], eax
movsxd rcx, eax
mov rax, qword [rbx]
mov byte [rcx + rax], 0
mov rax, qword [rbx]
cmp dword [rax - 0x10], 0
jne 0x180015cef
lea rcx, [rbp + 0x7f]
call fcn.180015810
nop
mov rcx, qword [rbp + 0x7f]
mov r8d, 1
sub r8d, dword [rcx - 8]
mov eax, dword [rcx - 0xc]
mov edx, 0x104
sub eax, edx
or eax, r8d
jge 0x180015bd7
lea rcx, [rbp + 0x7f]
call fcn.1800026b0
mov rcx, qword [rbp + 0x7f]
lea rdx, [0x18002f348]
call qword [sym.imp.SHLWAPI.dll_PathAppendA]
mov rcx, qword [rbp + 0x7f]
movsxd rdx, dword [rcx - 0xc]
call fcn.180019134
test eax, eax
js 0x180015ce4
mov rcx, qword [rbp + 0x7f]
cmp eax, dword [rcx - 0xc]
jg 0x180015ce4
mov dword [rcx - 0x10], eax
movsxd rcx, eax
mov rax, qword [rbp + 0x7f]
mov byte [rcx + rax], 0
mov rcx, qword [rbp + 0x7f]
add rcx, 0xffffffffffffffe8
call fcn.180003060
add rax, 0x18
mov qword [rbp - 0x19], rax
lea rdx, [rbp - 0x19]
lea rcx, [rbp - 0x11]
call fcn.180015650
nop
mov rdx, rax
mov rcx, rbx
call fcn.18000bdf0
nop
mov rdx, qword [rbp - 0x11]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x180015c62
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rbx]
cmp dword [rax - 0x10], 0
je 0x180015cc3
lea rcx, [rbp + 0x17]
call fcn.180015d0c
mov rsi, rax
mov rdi, qword [rbx]
xor ecx, ecx
test rdi, rdi
setne cl
test ecx, ecx
je 0x180015cb3
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rdi
mov r9d, 1
xor r8d, r8d
lea rdx, [0x18002f348]
mov rcx, qword [rsi]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov rcx, qword [rbp + 0x17]
test rcx, rcx
je 0x180015cc3
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
nop
mov rdx, qword [rbp + 0x7f]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x180015cef
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x180015cef
mov ecx, 0x80070057
call fcn.1800010d0
nop
mov rax, rbx
jmp 0x180015cff
mov ecx, 0x80070057
call fcn.1800010d0
nop
add rsp, 0x88
pop rdi
pop rsi
pop rbx
pop rbp
ret