Function at 0x140028be0
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 [0x14005a018]
xor rax, rsp
mov qword [rsp + 0x48], rax
xor edi, edi
mov qword [rsp + 0x38], rdx
mov rbx, r8
mov r13, rcx
mov ebp, edi
mov r15d, edi
lea rsi, [rdi - 1]
test r8, r8
je 0x140028c62
mov rcx, rsi
inc rcx
cmp byte [r8 + rcx], dil
jne 0x140028c21
add rcx, 1
mov edx, 2
cmovb rcx, rsi
call fcn.14002f9e8
mov r15, rax
mov rdx, rax
movzx ecx, byte [rbx]
test cl, cl
je 0x140028c5a
movsx ecx, cl
inc ebp
inc rbx
mov word [rdx], cx
add rdx, 2
jmp 0x140028c42
movsxd rax, ebp
mov word [r15 + rax*2], di
mov r14, rdi
mov rbx, rsi
nop dword [rax + rax]
inc rbx
cmp word [r15 + rbx*2], di
jne 0x140028c70
mov rcx, rbx
mov edx, 1
add rcx, 1
cmovb rcx, rsi
call fcn.14002f9e8
mov r12, rax
test rax, rax
je 0x140028dff
mov rdx, rdi
test rbx, rbx
je 0x140028cc0
nop dword [rax]
nop word [rax + rax]
movzx ecx, byte [r15 + rdx*2]
mov byte [rdx + rax], cl
inc rdx
cmp rdx, rbx
jb 0x140028cb0
lea r9, [rsp + 0x30]
mov byte [rax + rbx], dil
mov rdx, rbx
mov qword [rsp + 0x30], rdi
mov rcx, r12
call fcn.140025980
mov rcx, r12
mov rbx, rax
call fcn.14002fc28
mov rcx, qword [rsp + 0x30]
mov rdx, rbx
call fcn.140025000
mov rcx, qword [rsp + 0x30]
mov rbp, rax
call fcn.14002fc28
test rbp, rbp
je 0x140028dff
mov rcx, rsi
nop word [rax + rax]
cmp byte [rcx + rbp + 1], dil
lea rcx, [rcx + 1]
jne 0x140028d10
lea rbx, [rcx + 1]
mov eax, 2
lea rcx, [rbx + 1]
mul rcx
cmovo rax, rsi
mov rcx, rax
call fcn.14002fc3c
mov r14, rax
test rax, rax
je 0x140028df7
mov rcx, rdi
test rbx, rbx
je 0x140028df2
cmp rbx, 0x20
jb 0x140028ddc
add rax, 0xfffffffffffffffe
lea rdx, [rbp - 1]
add rdx, rbx
lea rax, [rax + rbx*2]
cmp r14, rdx
ja 0x140028d72
cmp rax, rbp
jae 0x140028ddc
mov rdx, rbx
and rdx, 0xffffffffffffffe0
lea rax, [r14 + 0x20]
nop dword [rax]
movq xmm0, qword [rcx + rbp]
lea rax, [rax + 0x40]
movq xmm1, qword [rcx + rbp + 8]
punpcklbw xmm0, xmm0
punpcklbw xmm1, xmm1
psraw xmm0, 8
movdqu xmmword [rax - 0x60], xmm0
movq xmm0, qword [rcx + rbp + 0x10]
psraw xmm1, 8
movdqu xmmword [rax - 0x50], xmm1
movq xmm1, qword [rcx + rbp + 0x18]
add rcx, 0x20
punpcklbw xmm0, xmm0
punpcklbw xmm1, xmm1
psraw xmm0, 8
psraw xmm1, 8
movdqu xmmword [rax - 0x40], xmm0
movdqu xmmword [rax - 0x30], xmm1
cmp rcx, rdx
jb 0x140028d80
cmp rcx, rbx
jae 0x140028df2
movsx eax, byte [rcx + rbp]
mov word [r14 + rcx*2], ax
inc rcx
cmp rcx, rbx
jb 0x140028de1
mov word [r14 + rbx*2], di
mov rcx, rbp
call fcn.14002fc28
mov ebx, edi
test r14, r14
je 0x140028e51
mov rcx, rsi
nop dword [rax]
inc rcx
cmp word [r14 + rcx*2], bx
jne 0x140028e10
add rcx, 1
mov edx, 1
cmovb rcx, rsi
call fcn.14002f9e8
mov rdi, rax
mov rcx, rax
mov rax, r14
movzx edx, word [rax]
test dx, dx
je 0x140028e4a
inc ebx
mov byte [rcx], dl
add rax, 2
inc rcx
jmp 0x140028e35
movsxd rax, ebx
mov byte [rax + rdi], 0
mov rcx, r14
call fcn.14002fc28
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 rdi, rdi
je 0x140028ed9
mov rax, rsi
inc rax
cmp byte [rdi + rax], 0
jne 0x140028e84
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], rdi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov ebx, eax
inc rsi
cmp byte [rdi + rsi], 0
jne 0x140028eb3
mov r8, rsi
xor edx, edx
mov rcx, rdi
call fcn.14002ec20
mov rcx, rdi
call fcn.14002fc28
test ebx, ebx
jne 0x140028ed9
xor eax, eax
jmp 0x140028ede
mov eax, 1
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.14002d5c0
mov rbx, qword [rsp + 0xa8]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret