Function at 0x180016a38
Capabilities:
Set registry value

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
lea rbp, [rsp - 0x2f]
sub rsp, 0xb8
mov qword [rbp - 0x19], 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 r13d, 1
mov dword [rbp + 0x6f], r13d
lea rdx, str.INODOMAIN_gl
lea rcx, [rbp - 0x11]
call fcn.180003f80
mov rdx, rax
lea rcx, [rbp - 0x59]
call fcn.1800153cc
nop
call fcn.180017d10
test al, al
je 0x180016bf6
call fcn.180017d24
mov esi, eax
or edi, 0xffffffff
cmp eax, 2
jne 0x180016bab
lea rcx, [rbp + 0x7f]
call fcn.1800160f0
nop
mov rcx, qword [rbp + 0x7f]
cmp dword [rcx - 0x10], 0
jle 0x180016b91
lea edx, [rsi + 0x2c]
call fcn.18001b1d4
test rax, rax
je 0x180016b8d
mov rcx, qword [rbp + 0x7f]
sub eax, ecx
test eax, eax
jle 0x180016b91
mov r8d, eax
lea rdx, [rbp - 0x29]
lea rcx, [rbp + 0x7f]
call fcn.180012f18
mov rcx, qword [rax]
call fcn.18001b3f4
mov r12d, eax
mov rdx, qword [rbp - 0x29]
add rdx, 0xffffffffffffffe8
mov ecx, edi
lock xadd dword [rdx + 0x10], ecx
add ecx, edi
test ecx, ecx
jg 0x180016b30
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
cmp r12d, 8
jl 0x180016b8d
mov rcx, qword [rbp - 0x59]
add rcx, 0xffffffffffffffe8
call fcn.180003060
add rax, 0x18
mov qword [rbp - 0x39], rax
lea rdx, [rbp - 0x39]
lea rcx, [rbp - 0x51]
call fcn.1800166cc
nop
mov rax, qword [rbp - 0x51]
cmp dword [rax - 0x10], 0
je 0x180016b73
lea rdx, [rbp - 0x51]
mov rcx, rbx
call fcn.18000bdf0
mov rax, qword [rbp - 0x51]
lea rdx, [rax - 0x18]
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x180016b8d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, qword [rbp + 0x7f]
lea rdx, [rcx - 0x18]
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x180016bb4
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
cmp esi, 3
je 0x180016c46
mov rax, qword [rbx]
cmp dword [rax - 0x10], 0
jne 0x180016c46
mov rcx, qword [rbp - 0x59]
add rcx, 0xffffffffffffffe8
call fcn.180003060
add rax, 0x18
mov qword [rbp - 0x21], rax
lea rdx, [rbp - 0x21]
lea rcx, [rbp - 0x49]
call fcn.180016378
nop
mov rdx, rax
mov rcx, rbx
call fcn.18000bdf0
nop
mov rdx, qword [rbp - 0x49]
jmp 0x180016c2c
mov rcx, qword [rbp - 0x59]
add rcx, 0xffffffffffffffe8
call fcn.180003060
add rax, 0x18
mov qword [rbp - 0x31], rax
lea rdx, [rbp - 0x31]
lea rcx, [rbp - 0x41]
call fcn.180016378
nop
mov rdx, rax
mov rcx, rbx
call fcn.18000bdf0
nop
mov rdx, qword [rbp - 0x41]
or edi, 0xffffffff
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x180016c46
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rbx]
cmp dword [rax - 0x10], 0
jne 0x180016ce7
mov r12d, 0x104
mov dword [rbp + 0x77], r12d
lea rcx, [rbp - 9]
call fcn.180015d0c
mov rsi, rax
mov rcx, qword [rbx]
sub r13d, dword [rcx - 8]
mov ecx, dword [rcx - 0xc]
sub ecx, r12d
or ecx, r13d
jge 0x180016c86
mov edx, r12d
mov rcx, rbx
call fcn.1800026b0
lea r9, [rbp + 0x77]
mov r8, qword [rbx]
lea rdx, str.LastGL
mov rcx, rsi
call fcn.180012a6c
nop
mov rcx, qword [rbp - 9]
test rcx, rcx
je 0x180016cac
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rcx, qword [rbx]
test rcx, rcx
jne 0x180016cb8
xor eax, eax
jmp 0x180016cc5
movsxd rdx, dword [rcx - 0xc]
call fcn.180019134
test eax, eax
js 0x180016cdc
mov rcx, qword [rbx]
cmp eax, dword [rcx - 0xc]
jg 0x180016cdc
mov dword [rcx - 0x10], eax
movsxd rcx, eax
mov rax, qword [rbx]
mov byte [rcx + rax], 0
jmp 0x180016d3e
mov ecx, 0x80070057
call fcn.1800010d0
int3
lea rcx, [rbp + 0xf]
call fcn.180015d0c
mov r12, rax
mov rsi, qword [rbx]
xor ecx, ecx
test rsi, rsi
setne cl
test ecx, ecx
je 0x180016d2e
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, r13d
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rsi
mov r9d, r13d
xor r8d, r8d
lea rdx, str.LastGL
mov rcx, qword [r12]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov rcx, qword [rbp + 0xf]
test rcx, rcx
je 0x180016d3e
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
nop
mov rdx, qword [rbp - 0x59]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x180016d5c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, rbx
add rsp, 0xb8
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret