Function at 0x14001caf0
Capabilities:
Set registry value

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x4d0]
sub rsp, 0x5d0
mov qword [rbp - 0x10], 0xfffffffffffffffe
mov qword [rsp + 0x628], rbx
mov rax, qword [0x1401cde90]
xor rax, rsp
mov qword [rbp + 0x4c0], rax
mov dword [rbp - 0x60], r8d
mov r14, rdx
mov qword [rbp - 0x80], rdx
mov r15, rcx
mov qword [rbp - 0x78], rcx
mov qword [rbp - 8], rcx
mov qword [rbp], rdx
movzx eax, byte [0x1401d5d64]
neg al
sbb r12, r12
add r12, 0xffffffff80000002
mov qword [rsp + 0x58], r12
lea rcx, str.__r_
mov rax, qword [str.__r_]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x78], rax
mov r9d, dword [0x1401d5d60]
mov ecx, r9d
imul ecx, r9d
imul ecx, r9d
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
shl eax, 3
sub ecx, eax
xor r13d, r13d
cmp ecx, 0xc
jne 0x14001cc1c
mov esi, r13d
lea rdi, [rbp + 0x10]
mov r10d, r13d
nop word [rax + rax]
lea ebx, [r10 + 1]
lea ecx, [rsi + 1]
mov eax, r9d
cdq
idiv ecx
mov r8d, edx
mov ecx, r9d
sub ecx, esi
imul r8d, ecx
mov eax, r9d
cdq
idiv ebx
add r8d, eax
sub r8d, r10d
mov dword [rdi], r8d
mov edx, r8d
lea rcx, [0x140154a84]
call fcn.1400d40f4
mov r10d, ebx
add rdi, 4
cmp ebx, 0x17
jge 0x14001cc0c
mov r9d, dword [0x1401d5d60]
jmp 0x14001cbc0
inc esi
cmp esi, 0xd
jge 0x14001cc1c
mov r9d, dword [0x1401d5d60]
jmp 0x14001cbb2
mov qword [rsp + 0x60], r13
mov dword [rsp + 0x68], r13d
mov qword [rsp + 0x70], r13
lea rcx, str.__r_
mov rax, qword [str.__r_]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x50], rbx
lea rcx, str.__r_
mov rax, qword [str.__r_]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x70], rax
lea rdx, [0x1401560e8]
test rdx, 0xffffffffffff0000
jne 0x14001cc8e
movzx edi, dx
mov ecx, edi
call fcn.1400019e0
test rax, rax
je 0x14001cc98
mov r8d, edi
mov rdx, rax
lea rcx, [rbp - 0x70]
call fcn.140002760
jmp 0x14001cc98
lea rcx, [rbp - 0x70]
call fcn.1400034f0
nop
lea r8, [rbp - 0x70]
lea rdx, [rsp + 0x78]
lea rcx, [rbp - 0x28]
call fcn.14000ff10
nop
lea r8, [0x1401d6110]
mov rdx, rax
lea rcx, [rbp - 0x40]
call fcn.14000ff10
nop
lea r8, [0x140154c0c]
mov rdx, rax
lea rcx, [rbp - 0x58]
call fcn.14001b320
nop
mov r8, r15
mov rdx, rax
lea rcx, [rbp - 0x30]
call fcn.14000ff10
nop
mov r13, qword [rax]
lea rcx, [r13 - 0x18]
lea rsi, [rbx - 0x18]
or edi, 0xffffffff
cmp rcx, rsi
je 0x14001ce3d
cmp dword [rsi + 0x10], 0
jl 0x14001cd31
mov rax, qword [rsi]
cmp qword [rcx], rax
jne 0x14001cd31
call fcn.1400025c0
mov rbx, rax
lock add dword [rsi + 0x10], edi
jg 0x14001cd23
mov rcx, qword [rsi]
mov r8, qword [rcx]
mov rdx, rsi
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
lea rax, [rbx + 0x18]
mov qword [rsp + 0x50], rax
jmp 0x14001ce3d
movsxd r14, dword [r13 - 0x10]
test r14d, r14d
jne 0x14001cd99
mov r14, qword [rsi]
cmp dword [rsi + 8], 0
je 0x14001ce39
cmp dword [rsi + 0x10], 0
jge 0x14001cd6f
cmp dword [rbx - 0xc], 0
jge 0x14001cd5e
mov ecx, 0x80070057
call fcn.140001920
int3
xor esi, esi
mov dword [rbx - 0x10], esi
mov word [rbx], si
mov r14, qword [rbp - 0x80]
jmp 0x14001ce3f
lock add dword [rsi + 0x10], 0xffffffff
jg 0x14001cd82
mov rcx, qword [rsi]
mov rax, qword [rcx]
mov rdx, rsi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x50], rax
jmp 0x14001ce39
test r13, r13
jne 0x14001cda9
mov ecx, 0x80070057
call fcn.140001920
int3
mov r12d, dword [rbx - 0x10]
mov r15, r13
sub r15, rbx
sar r15, 1
test r14d, r14d
jns 0x14001cdc6
mov ecx, 0x80070057
call fcn.140001920
int3
mov ecx, 1
sub ecx, dword [rsi + 0x10]
mov eax, dword [rsi + 0xc]
sub eax, r14d
or eax, ecx
jge 0x14001cdea
mov edx, r14d
lea rcx, [rsp + 0x50]
call fcn.140002560
mov rbx, qword [rsp + 0x50]
lea rsi, [r14 + r14]
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
mov r9, rsi
add rdx, rdx
cmp r15, r12
ja 0x14001ce0b
lea r8, [rbx + r15*2]
call fcn.1400d400c
jmp 0x14001ce13
mov r8, r13
call fcn.1400d41cc
cmp r14d, dword [rbx - 0xc]
jg 0x14001ce2e
mov dword [rbx - 0x10], r14d
xor eax, eax
mov word [rsi + rbx], ax
mov r15, qword [rbp - 0x78]
mov r12, qword [rsp + 0x58]
jmp 0x14001ce39
mov ecx, 0x80070057
call fcn.140001920
int3
mov r14, qword [rbp - 0x80]
xor esi, esi
mov rdx, qword [rbp - 0x30]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14001ce58
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x58]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14001ce71
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x40]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14001ce8a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x28]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14001cea3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x70]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14001cebb
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rcx, str.__r_
mov rax, qword [str.__r_]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x58], rax
lea rdx, [0x1401560f8]
test rdx, 0xffffffffffff0000
jne 0x14001cf06
movzx ebx, dx
mov ecx, ebx
call fcn.1400019e0
test rax, rax
je 0x14001cf11
mov r8d, ebx
mov rdx, rax
lea rcx, [rsp + 0x58]
call fcn.140002760
jmp 0x14001cf11
lea rcx, [rsp + 0x58]
call fcn.1400034f0
nop
lea r8, [rsp + 0x58]
lea rdx, [rsp + 0x78]
lea rcx, [rbp - 0x48]
call fcn.14000ff10
nop
lea r8, [0x1401d6110]
mov rdx, rax
lea rcx, [rbp - 0x50]
call fcn.14000ff10
nop
lea r8, [0x140154c24]
mov rdx, rax
lea rcx, [rbp - 0x20]
call fcn.14001b320
nop
mov r8, r15
mov rdx, rax
lea rcx, [rbp - 0x18]
call fcn.14000ff10
nop
mov qword [rbp - 0x78], rsi
lea rcx, [rbp - 0x38]
mov qword [rsp + 0x40], rcx
lea rcx, [rbp - 0x78]
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], 0x20006
mov dword [rsp + 0x20], esi
xor r9d, r9d
xor r8d, r8d
mov rdx, qword [rax]
mov rcx, r12
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
mov ecx, eax
test eax, eax
jne 0x14001cfab
mov dword [rsp + 0x68], esi
mov ecx, esi
mov rax, qword [rbp - 0x78]
mov qword [rsp + 0x60], rax
test ecx, ecx
setne bl
mov rdx, qword [rbp - 0x18]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14001cfc9
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x20]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14001cfe2
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x50]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14001cffb
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x48]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14001d014
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14001d02d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test bl, bl
je 0x14001d0bc
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14001d04f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x14001d064
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rsp + 0x60], rsi
mov dword [rsp + 0x68], esi
mov rdx, qword [rsp + 0x78]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14001d082
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [r15]
sub rdx, 0x18
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
jg 0x14001d09e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [r14]
sub rdx, 0x18
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14001d0b5
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor al, al
jmp 0x14001d213
mov eax, dword [rbp - 0x60]
mov dword [rbp - 0x68], eax
mov dword [rsp + 0x28], 4
lea rax, [rbp - 0x68]
mov qword [rsp + 0x20], rax
mov r9d, 4
xor r8d, r8d
mov rdx, qword [r14]
mov rbx, qword [rsp + 0x60]
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
je 0x14001d17a
test rbx, rbx
je 0x14001d108
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rsp + 0x60], rsi
mov dword [rsp + 0x68], esi
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14001d126
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x14001d13b
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rsp + 0x60], rsi
mov dword [rsp + 0x68], esi
mov rdx, qword [rsp + 0x78]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14001d159
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [r15]
sub rdx, 0x18
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
jg 0x14001d175
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
jmp 0x14001d09e
test rbx, rbx
je 0x14001d18d
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rsp + 0x60], rsi
mov dword [rsp + 0x68], esi
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14001d1ab
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x14001d1c0
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rsp + 0x60], rsi
mov dword [rsp + 0x68], esi
mov rdx, qword [rsp + 0x78]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14001d1de
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [r15]
sub rdx, 0x18
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
jg 0x14001d1fa
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [r14]
sub rdx, 0x18
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14001d211
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov al, 1
mov rcx, qword [rbp + 0x4c0]
xor rcx, rsp
call fcn.1400d37e0
mov rbx, qword [rsp + 0x628]
add rsp, 0x5d0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret