Function at 0x14002ea90
Capabilities:
Set registry value

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov rax, qword [0x140064018]
xor rax, rsp
mov qword [rsp + 0x48], rax
xor ebx, ebx
mov qword [rsp + 0x38], rdx
mov rdi, r8
mov r13, rcx
mov ebp, ebx
mov r14d, ebx
lea rsi, [rbx - 1]
test r8, r8
je 0x14002eb17
mov rcx, rsi
inc rcx
cmp byte [r8 + rcx], bl
jne 0x14002ead1
add rcx, 1
mov edx, 2
cmovb rcx, rsi
call fcn.14003853c
mov r14, rax
nop
movsx ecx, byte [rdi]
test cl, cl
je 0x14002eb0a
test r14, r14
je 0x14002eaf0
inc ebp
mov word [rax], cx
inc rdi
add rax, 2
jmp 0x14002eaf0
test r14, r14
je 0x14002eb17
movsxd rax, ebp
mov word [r14 + rax*2], bx
mov r15, rbx
mov rdi, rsi
nop dword [rax]
inc rdi
cmp word [r14 + rdi*2], bx
jne 0x14002eb20
mov rcx, rdi
mov edx, 1
add rcx, 1
cmovb rcx, rsi
call fcn.14003853c
mov r12, rax
test rax, rax
je 0x14002ecae
mov rdx, rbx
test rdi, rdi
je 0x14002eb70
nop dword [rax]
nop word [rax + rax]
movzx ecx, byte [r14 + rdx*2]
mov byte [rdx + rax], cl
inc rdx
cmp rdx, rdi
jb 0x14002eb60
lea r9, [rsp + 0x30]
mov byte [rax + rdi], bl
mov rdx, rdi
mov qword [rsp + 0x30], rbx
mov rcx, r12
call fcn.14002a2f0
mov rcx, r12
mov rdi, rax
call fcn.140038520
mov rcx, qword [rsp + 0x30]
mov rdx, rdi
call fcn.1400298c0
mov rcx, qword [rsp + 0x30]
mov rbp, rax
call fcn.140038520
test rbp, rbp
je 0x14002ecae
mov rdi, rsi
nop dword [rax]
cmp byte [rdi + rbp + 1], bl
lea rdi, [rdi + 1]
jne 0x14002ebc0
lea r14, [rdi + 1]
mov edx, 2
mov rcx, r14
add rcx, 1
cmovb rcx, rsi
call fcn.14003853c
mov r15, rax
test rax, rax
je 0x14002eca6
mov rdx, rbx
test r14, r14
je 0x14002eca1
cmp r14, 0x20
jb 0x14002ec7f
lea rcx, [rdi + rbp]
lea rax, [rax + rdi*2]
cmp r15, rcx
ja 0x14002ec13
cmp rax, rbp
jae 0x14002ec7f
mov r8, r14
and r8, 0xffffffffffffffe0
lea rax, [rbp + 0x10]
lea rcx, [r15 + 0x20]
movq xmm0, qword [rax - 0x10]
lea rcx, [rcx + 0x40]
movq xmm1, qword [rax - 8]
lea rax, [rax + 0x20]
punpcklbw xmm0, xmm0
add rdx, 0x20
punpcklbw xmm1, xmm1
psraw xmm0, 8
psraw xmm1, 8
movdqu xmmword [rcx - 0x60], xmm0
movq xmm0, qword [rax - 0x20]
punpcklbw xmm0, xmm0
psraw xmm0, 8
movdqu xmmword [rcx - 0x50], xmm1
movq xmm1, qword [rax - 0x18]
punpcklbw xmm1, xmm1
psraw xmm1, 8
movdqu xmmword [rcx - 0x40], xmm0
movdqu xmmword [rcx - 0x30], xmm1
cmp rdx, r8
jb 0x14002ec22
cmp rdx, r14
jae 0x14002eca1
nop dword [rax]
nop dword [rax + rax]
movsx eax, byte [rdx + rbp]
mov word [r15 + rdx*2], ax
inc rdx
cmp rdx, r14
jb 0x14002ec90
mov word [r15 + r14*2], bx
mov rcx, rbp
call fcn.140038520
mov edi, ebx
test r15, r15
je 0x14002ed0b
mov rcx, rsi
nop dword [rax + rax]
inc rcx
cmp word [r15 + rcx*2], bx
jne 0x14002ecc0
add rcx, 1
mov edx, 1
cmovb rcx, rsi
call fcn.14003853c
mov rbx, rax
mov rcx, rax
mov rax, r15
movzx edx, word [rax]
test dx, dx
je 0x14002ecff
test rbx, rbx
je 0x14002ece5
inc edi
mov byte [rcx], dl
add rax, 2
inc rcx
jmp 0x14002ece5
test rbx, rbx
je 0x14002ed0b
movsxd rax, edi
mov byte [rax + rbx], 0
mov rcx, r15
call fcn.140038520
lea rax, [rsp + 0x40]
mov r9d, 0xf003f
xor r8d, r8d
mov qword [rsp + 0x20], rax
mov rdx, r13
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test rbx, rbx
je 0x14002eda2
test eax, eax
jne 0x14002eda2
mov rax, rsi
inc rax
cmp byte [rbx + rax], 0
jne 0x14002ed42
mov rdx, qword [rsp + 0x38]
inc eax
mov rcx, qword [rsp + 0x40]
mov r9d, 1
mov dword [rsp + 0x28], eax
xor r8d, r8d
mov qword [rsp + 0x20], rbx
call qword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov edi, eax
inc rsi
cmp byte [rbx + rsi], 0
jne 0x14002ed71
mov r8, rsi
xor edx, edx
mov rcx, rbx
call fcn.1400376d0
mov rcx, rbx
call fcn.140038520
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test edi, edi
jne 0x14002eda2
xor eax, eax
jmp 0x14002eda7
mov eax, 1
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.140036180
mov rbx, qword [rsp + 0xa8]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret