Function at 0x180008128
Capabilities:
Set registry value

Disassembly:
mov rax, rsp
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x290
mov qword [rsp + 0x58], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov rax, qword [0x180057b40]
xor rax, rsp
mov qword [rsp + 0x280], rax
mov rbp, r9
mov r12, r8
mov rdi, rdx
mov rbx, qword [rsp + 0x2f0]
call qword [0x180057950]
and qword [rsp + 0x60], 0
test r12, r12
je 0x180008185
test rbp, rbp
jne 0x180008195
jmp 0x18000818a
test rbp, rbp
je 0x180008195
mov ecx, 0x80004005
call fcn.180001000
int3
lea r13, [0x180041500]
test rbx, rbx
cmovne r13, rbx
mov ebx, 0x104
mov r8d, ebx
lea rdx, [rsp + 0x72]
mov rcx, qword [0x180059c48]
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov r15d, eax
test eax, eax
jne 0x1800081cf
call fcn.180007350
nop
jmp 0x18000845f
cmp eax, ebx
jne 0x1800081dd
mov eax, 0x8007007a
jmp 0x18000845f
lea rdx, [rsp + 0x48]
mov rcx, rdi
call qword [sym.imp.ole32.dll_StringFromCLSID]
test eax, eax
jns 0x1800081f4
jmp 0x18000845f
mov r14, qword [rsp + 0x48]
test r12, r12
je 0x180008210
mov r8, r13
mov rdx, r12
mov rcx, r14
call fcn.180008044
mov esi, eax
jmp 0x180008212
xor esi, esi
test esi, esi
jne 0x18000822f
test rbp, rbp
je 0x18000822d
mov r8, r13
mov rdx, rbp
mov rcx, r14
call fcn.180008044
mov esi, eax
jmp 0x18000822f
xor esi, esi
xor edi, edi
test esi, esi
jne 0x180008445
xor ebx, ebx
mov qword [rsp + 0x40], rbx
and qword [rsp + 0x50], rbx
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
mov r9d, 0x2001f
xor r8d, r8d
lea rdx, str.CLSID
mov rcx, 0xffffffff80000000
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov edi, eax
xor eax, eax
cmp edi, eax
jne 0x180008280
mov edi, eax
mov rbx, qword [rsp + 0x50]
mov qword [rsp + 0x40], rbx
cmp edi, eax
jne 0x180008437
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0x2001f
mov dword [rsp + 0x20], eax
xor r9d, r9d
mov r8, r14
mov rdx, rbx
lea rcx, [rsp + 0x40]
call fcn.180007388
mov edi, eax
test eax, eax
jne 0x180008432
test r13, r13
setne al
test eax, eax
jne 0x1800082d0
mov ecx, 0x80004005
call fcn.180001000
int3
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [rax + rax + 2]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], r13
mov r9d, 1
xor r8d, r8d
xor edx, edx
mov rbx, qword [rsp + 0x40]
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov edi, eax
test eax, eax
jne 0x180008437
test r12, r12
je 0x180008329
xor r9d, r9d
mov r8, r12
lea rdx, str.ProgID
lea rcx, [rsp + 0x40]
call fcn.180007e6c
mov edi, eax
jmp 0x18000832b
xor edi, edi
test edi, edi
jne 0x180008437
test rbp, rbp
je 0x180008353
xor r9d, r9d
mov r8, rbp
lea rdx, str.VersionIndependentProgID
lea rcx, [rsp + 0x40]
call fcn.180007e6c
mov edi, eax
jmp 0x180008355
xor edi, edi
test edi, edi
jne 0x180008437
cmp qword [0x180059c48], 0
je 0x1800083f9
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
cmp qword [0x180059c48], rax
je 0x1800083f9
mov ebp, dword [rsp + 0x2f8]
test bpl, 4
lea rax, str.AUTPRX32.DLL
lea r8, [rsp + 0x72]
cmovne r8, rax
xor r9d, r9d
lea rdx, str.InprocServer32
lea rcx, [rsp + 0x40]
call fcn.180007e6c
mov edi, eax
test eax, eax
jne 0x180008437
mov eax, ebp
and bpl, 1
lea rcx, str.Apartment
neg bpl
sbb r8, r8
and r8, rcx
lea rcx, str.both
and al, 2
cmovne r8, rcx
test r8, r8
je 0x180008437
lea r9, str.ThreadingModel
lea rdx, str.InprocServer32
lea rcx, [rsp + 0x40]
call fcn.180007e6c
mov edi, eax
jmp 0x180008437
mov word [rsp + 0x70], 0x22
lea eax, [r15 + 1]
mov word [rsp + rax*2 + 0x70], 0x22
lea eax, [r15 + 2]
and word [rsp + rax*2 + 0x70], 0
xor r9d, r9d
lea r8, [rsp + 0x70]
lea rdx, str.LocalServer32
lea rcx, [rsp + 0x40]
call fcn.180007e6c
mov edi, eax
jmp 0x180008437
mov rbx, qword [rsp + 0x40]
test rbx, rbx
je 0x180008445
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.ole32.dll_CoTaskMemFree]
test edi, edi
je 0x18000845d
mov ecx, edi
call fcn.180007374
mov esi, eax
mov eax, esi
mov rcx, qword [rsp + 0x280]
xor rcx, rsp
call fcn.180026cf0
mov rbx, qword [rsp + 0x2d0]
add rsp, 0x290
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret