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

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r14
push r15
lea rbp, [rsp - 0x910]
sub rsp, 0xa10
mov rax, qword [0x180109070]
xor rax, rsp
mov qword [rbp + 0x900], rax
mov rbx, rcx
movsxd rsi, edx
lea rcx, [rsp + 0x40]
call fcn.180054740
mov ecx, esi
call fcn.180053b10
test ax, ax
je 0x180054695
mov rdx, qword [0x18015b4c8]
test rdx, rdx
je 0x180054695
movzx r14d, ax
add rdx, 0xd8
imul ecx, r14d, 0x188
add rcx, rdx
call fcn.18006a6a0
mov rdi, rax
movabs r15, 0x7ffffffeefff
add rax, 0xfffffffffffff000
cmp rax, r15
ja 0x180054546
lea rcx, [rbp + 0x2c0]
call fcn.180054740
lea rax, [rbp + 0x2c0]
mov dword [rbp + 0x270], 3
mov qword [rbp + 0x298], rax
lea rax, [rbp + 0x270]
mov qword [rbp + 0x260], rax
xor eax, eax
mov qword [rbp + 0x290], rdi
mov qword [rbp + 0x2a0], 0x320
mov dword [rsp + 0x30], 0xe5f7e7cc
mov dword [rsp + 0x34], 0xe9e4efe9
mov word [rsp + 0x38], 0x100
nop
lea ecx, [rax - 0x7f]
xor byte [rsp + rax + 0x30], cl
inc rax
cmp rax, 8
jb 0x180054480
mov rcx, qword [0x18015b4b0]
lea rax, [rbp + 0x260]
mov dword [rsp + 0x28], 8
lea rdx, [rsp + 0x30]
mov r9d, recv
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov byte [rsp + 0x39], 0
call qword [sym.imp.ADVAPI32.dll_RegSetValueExA]
lea rcx, [0x18015b4d0]
mov r8d, 6
mov dword [rcx + rsi*4], r14d
lea rdx, [rbp + 0x2c0]
mov rcx, rbx
nop
lea rcx, [rcx + 0x80]
movups xmm0, xmmword [rdx]
movups xmm1, xmmword [rdx + 0x10]
lea rdx, [rdx + 0x80]
movups xmmword [rcx - 0x80], xmm0
movups xmm0, xmmword [rdx - 0x60]
movups xmmword [rcx - 0x70], xmm1
movups xmm1, xmmword [rdx - 0x50]
movups xmmword [rcx - 0x60], xmm0
movups xmm0, xmmword [rdx - 0x40]
movups xmmword [rcx - 0x50], xmm1
movups xmm1, xmmword [rdx - 0x30]
movups xmmword [rcx - 0x40], xmm0
movups xmm0, xmmword [rdx - 0x20]
movups xmmword [rcx - 0x30], xmm1
movups xmm1, xmmword [rdx - 0x10]
movups xmmword [rcx - 0x20], xmm0
movups xmmword [rcx - 0x10], xmm1
sub r8, 1
jne 0x1800544e0
movups xmm0, xmmword [rdx]
movups xmm1, xmmword [rdx + 0x10]
movups xmmword [rcx], xmm0
movups xmmword [rcx + 0x10], xmm1
jmp 0x180054711
lea rcx, [0x18015b4d0]
imul eax, dword [rcx + rsi*4], 0x188
lea rsi, [rcx + rsi*4]
movsxd rcx, eax
mov rax, qword [0x18015b4c8]
add rax, 0xd8
add rcx, rax
call fcn.18006a6a0
mov rdi, rax
lea rcx, [rax - 0x1000]
cmp rcx, r15
ja 0x180054695
lea rcx, [rbp + 0x5e0]
call fcn.180054740
lea rax, [rbp + 0x5e0]
mov dword [rbp + 0x270], 3
mov qword [rbp + 0x298], rax
lea rax, [rbp + 0x270]
mov qword [rbp + 0x260], rax
xor eax, eax
mov qword [rbp + 0x290], rdi
mov qword [rbp + 0x2a0], 0x320
mov dword [rsp + 0x30], 0xe5f7e7cc
mov dword [rsp + 0x34], 0xe9e4efe9
mov word [rsp + 0x38], 0x100
lea ecx, [rax - 0x7f]
xor byte [rsp + rax + 0x30], cl
inc rax
cmp rax, 8
jb 0x1800545e0
mov rcx, qword [0x18015b4b0]
lea rax, [rbp + 0x260]
mov dword [rsp + 0x28], 8
lea rdx, [rsp + 0x30]
mov r9d, recv
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov byte [rsp + 0x39], 0
call qword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov rax, rbx
mov dword [rsi], r14d
lea rcx, [rbp + 0x5e0]
mov r8d, 6
nop word [rax + rax]
lea rax, [rax + 0x80]
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
lea rcx, [rcx + 0x80]
movups xmmword [rax - 0x80], xmm0
movups xmm0, xmmword [rcx - 0x60]
movups xmmword [rax - 0x70], xmm1
movups xmm1, xmmword [rcx - 0x50]
movups xmmword [rax - 0x60], xmm0
movups xmm0, xmmword [rcx - 0x40]
movups xmmword [rax - 0x50], xmm1
movups xmm1, xmmword [rcx - 0x30]
movups xmmword [rax - 0x40], xmm0
movups xmm0, xmmword [rcx - 0x20]
movups xmmword [rax - 0x30], xmm1
movups xmm1, xmmword [rcx - 0x10]
movups xmmword [rax - 0x20], xmm0
movups xmmword [rax - 0x10], xmm1
sub r8, 1
jne 0x180054640
jmp 0x180054703
mov rax, rbx
lea rcx, [rsp + 0x40]
mov r8d, 6
nop dword [rax]
nop word [rax + rax]
lea rax, [rax + 0x80]
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
lea rcx, [rcx + 0x80]
movups xmmword [rax - 0x80], xmm0
movups xmm0, xmmword [rcx - 0x60]
movups xmmword [rax - 0x70], xmm1
movups xmm1, xmmword [rcx - 0x50]
movups xmmword [rax - 0x60], xmm0
movups xmm0, xmmword [rcx - 0x40]
movups xmmword [rax - 0x50], xmm1
movups xmm1, xmmword [rcx - 0x30]
movups xmmword [rax - 0x40], xmm0
movups xmm0, xmmword [rcx - 0x20]
movups xmmword [rax - 0x30], xmm1
movups xmm1, xmmword [rcx - 0x10]
movups xmmword [rax - 0x20], xmm0
movups xmmword [rax - 0x10], xmm1
sub r8, 1
jne 0x1800546b0
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm1
mov rax, rbx
mov rcx, qword [rbp + 0x900]
xor rcx, rsp
call fcn.1800d12f0
mov rbx, qword [rsp + 0xa50]
add rsp, 0xa10
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret