Function at 0x14004ed60
Capabilities:
Encode data using xor
Set registry value

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1f]
sub rsp, 0x98
mov rdi, rdx
mov rsi, rcx
xor ebx, ebx
mov qword [rbp + 0x7f], rbx
movdqa xmm0, xmmword [0x1400a55c0]
movdqu xmmword [rbp - 0x29], xmm0
mov dword [rbp - 0x19], 0xfbf4d3f5
mov word [rbp - 0x15], 0x98f2
mov ecx, ebx
lea rdx, [rbp - 0x29]
nop
lea eax, [rcx - 0x7d]
xor byte [rdx], al
inc ecx
lea rdx, [rdx + 1]
cmp ecx, 0x15
jb 0x14004edb0
mov byte [rbp - 0x14], bl
xorps xmm0, xmm0
movups xmmword [rbp - 0x11], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 1], xmm1
lea rax, [rbp - 0x29]
mov r8, 0xffffffffffffffff
nop dword [rax]
inc r8
cmp byte [rax + r8], bl
jne 0x14004ede0
lea rdx, [rbp - 0x29]
lea rcx, [rbp - 0x11]
call fcn.1400608e0
lea rdx, [rbp - 0x11]
cmp qword [rbp + 7], 0xf
cmova rdx, qword [rbp - 0x11]
lea rax, [rbp + 0x77]
mov qword [rsp + 0x40], rax
lea rax, [rbp + 0x7f]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], 0x20006
mov dword [rsp + 0x20], ebx
xor r9d, r9d
xor r8d, r8d
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
je 0x14004ef35
mov rdx, qword [rbp + 7]
cmp rdx, 0xf
jbe 0x14004ee7d
inc rdx
mov rcx, qword [rbp - 0x11]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004ee78
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004f1f5
call fcn.1400624fc
movdqa xmm0, xmmword [0x1400a5090]
mov byte [rbp - 0x11], bl
movdqu xmmword [rbp - 1], xmm0
mov rdx, qword [rsi + 0x18]
cmp rdx, 0xf
jbe 0x14004eec7
inc rdx
cmp rdx, 0x1000
mov rcx, qword [rsi]
jb 0x14004eec2
mov r8, qword [rcx - 8]
sub rcx, r8
add rdx, 0x27
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14004f1ef
mov rcx, r8
call fcn.1400624fc
mov qword [rsi + 0x10], rbx
mov qword [rsi + 0x18], 0xf
mov byte [rsi], 0
mov rdx, qword [rdi + 0x18]
cmp rdx, 0xf
jbe 0x14004ef10
inc rdx
mov rcx, qword [rdi]
cmp rdx, 0x1000
jb 0x14004ef0b
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14004f1fb
mov rcx, r8
call fcn.1400624fc
mov byte [rdi], 0
mov qword [rdi + 0x18], 0xf
mov qword [rdi + 0x10], rbx
xor al, al
add rsp, 0x98
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
lea rdx, [rbp - 0x11]
cmp qword [rbp + 7], 0xf
cmova rdx, qword [rbp - 0x11]
lea rax, [rbp + 0x7f]
mov qword [rsp + 0x20], rax
mov r9d, 0x20006
xor r8d, r8d
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x14004f1b0
mov eax, dword [rsi + 0x10]
lea ecx, [rax*8 + 1]
mov rax, rsi
lea r15, [rsi + 0x18]
cmp qword [rsi + 0x18], 0xf
jbe 0x14004ef85
mov rax, qword [rsi]
mov rdx, rdi
lea r14, [rdi + 0x18]
cmp qword [r14], 0xf
jbe 0x14004ef9b
mov rdx, qword [rdi]
lea r13, [rsi + 0x18]
jmp 0x14004ef9e
mov r13, r15
mov dword [rsp + 0x28], ecx
mov qword [rsp + 0x20], rax
mov r9d, 1
xor r8d, r8d
mov rcx, qword [rbp + 0x7f]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov ebx, eax
mov rcx, qword [rbp + 0x7f]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rdx, qword [rbp + 7]
test ebx, ebx
jne 0x14004f0c5
cmp rdx, 0xf
jbe 0x14004f011
inc rdx
mov rcx, qword [rbp - 0x11]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004f004
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004f1f5
call fcn.1400624fc
lea r15, [rsi + 0x18]
lea r14, [rdi + 0x18]
movdqa xmm0, xmmword [0x1400a5090]
movdqu xmmword [rbp - 1], xmm0
mov byte [rbp - 0x11], 0
mov rdx, qword [rsi + 0x18]
mov rbx, r14
cmp rdx, 0xf
jbe 0x14004f063
mov rcx, qword [rsi]
inc rdx
cmp rdx, 0x1000
jb 0x14004f05e
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14004f1ef
mov rcx, r8
lea rbx, [rdi + 0x18]
call fcn.1400624fc
xor r12d, r12d
mov qword [rsi + 0x10], r12
mov qword [r15], 0xf
mov byte [rsi], r12b
mov rdx, qword [r14]
cmp rdx, 0xf
jbe 0x14004f0b0
inc rdx
mov rcx, qword [rdi]
cmp rdx, 0x1000
jb 0x14004f0a8
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14004f1fb
mov rcx, r8
call fcn.1400624fc
mov r14, rbx
mov qword [rdi + 0x10], r12
mov qword [r14], 0xf
mov byte [rdi], 0
mov al, 1
jmp 0x14004ef21
cmp rdx, 0xf
jbe 0x14004f103
inc rdx
mov rcx, qword [rbp - 0x11]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004f0f7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004f1f5
call fcn.1400624fc
mov r15, r13
lea r14, [rdi + 0x18]
movdqa xmm0, xmmword [0x1400a5090]
movdqu xmmword [rbp - 1], xmm0
mov byte [rbp - 0x11], 0
mov rdx, qword [r15]
mov rbx, r14
cmp rdx, 0xf
jbe 0x14004f154
mov rcx, qword [rsi]
inc rdx
cmp rdx, 0x1000
jb 0x14004f14f
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14004f1ef
mov rcx, r8
lea rbx, [rdi + 0x18]
call fcn.1400624fc
xor r12d, r12d
mov qword [rsi + 0x10], r12
mov qword [r15], 0xf
mov byte [rsi], r12b
mov rdx, qword [r14]
cmp rdx, 0xf
jbe 0x14004f19d
inc rdx
mov rcx, qword [rdi]
cmp rdx, 0x1000
jb 0x14004f195
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14004f1fb
mov rcx, r8
call fcn.1400624fc
mov r14, rbx
mov qword [rdi + 0x10], r12
mov qword [r14], 0xf
mov byte [rdi], 0
jmp 0x14004ef1f
mov rdx, qword [rbp + 7]
cmp rdx, 0xf
jbe 0x14004ee7d
inc rdx
mov rcx, qword [rbp - 0x11]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004ee78
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004f1f5
jmp 0x14004ee78
call fcn.1400788cc
nop
call fcn.1400788cc
nop
call fcn.1400788cc
int3