Function at 0x14005777c
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x48
lea rbp, [rsp + 0x40]
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov qword [rbp - 0x38], rsp
mov eax, 0x40
call fcn.140074a70
sub rsp, rax
mov r12, rsp
mov rsi, qword [rcx + 0x18]
movzx r8d, word [rsi + 0x3d2]
mov rax, qword [rcx + 0x28]
mov qword [rbp - 0x18], rax
movzx edx, word [rax + 0x3d2]
movabs rax, 0xa4505eabc5152ec8
lea r15, [rax + 1]
xor r15, rax
mov qword [rbp - 0x10], r8
add r15, r8
mov qword [rbp], rdx
lea r8, [r15 + rdx]
movabs rax, 0xf93f322e19c02da4
lea rdx, [rax + 4]
xor rax, rdx
cmp r8, rax
jae 0x140057ae4
mov rbx, qword [rcx]
mov rax, qword [rcx + 8]
mov qword [rbp - 0x28], rax
movzx r13d, word [rbx + 0x3d2]
mov rax, qword [rcx + 0x20]
mov qword [rbp - 0x30], rax
mov r14, qword [rcx + 0x10]
mov qword [rbp - 0x20], r8
mov word [rsi + 0x3d2], r8w
imul rax, r14, 0x38
mov qword [rbp - 8], r14
lea rcx, [rbx + rax]
add rcx, 0x168
mov rax, qword [rcx + 0x30]
mov qword [r12 + 0x30], rax
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
movups xmm2, xmmword [rcx + 0x20]
movups xmmword [r12 + 0x20], xmm2
movups xmmword [r12 + 0x10], xmm1
movups xmmword [r12], xmm0
movabs rax, 0x28d05caf85ddd980
lea rdi, [rax + 1]
xor rdi, rax
add rdi, r14
imul rax, rdi, 0x38
lea rdx, [rbx + rax]
add rdx, 0x168
movabs rax, 0x12ac1da7992e2491
lea r8, [rax + 0x18]
xor r8, rax
not r14
add r14, r13
imul r8, r14
sub rsp, 0x20
call fcn.140084cc0
add rsp, 0x20
imul rax, qword [rbp - 0x10], 0x38
movups xmm0, xmmword [r12]
movups xmm1, xmmword [r12 + 0x10]
movups xmm2, xmmword [r12 + 0x20]
movups xmmword [rsi + rax + 0x168], xmm0
movups xmmword [rsi + rax + 0x178], xmm1
movups xmmword [rsi + rax + 0x188], xmm2
mov rcx, qword [r12 + 0x30]
mov qword [rsi + rax + 0x198], rcx
mov rax, qword [rbp - 0x18]
lea rdx, [rax + 0x168]
imul rax, r15, 0x38
lea rcx, [rsi + rax]
add rcx, 0x168
movabs r8, 0xeccca76eeeb2ebc0
lea rax, [r8 + 0x38]
xor r8, rax
imul r8, qword [rbp]
sub rsp, 0x20
call fcn.140084cc0
add rsp, 0x20
mov rax, qword [rbp - 8]
shl rax, 5
lea rcx, [rbx + rax]
movups xmm0, xmmword [rbx + rax]
movups xmm1, xmmword [rbx + rax + 0x10]
mov r12, qword [rbp - 0x38]
movups xmmword [r12], xmm0
movups xmmword [r12 + 0x10], xmm1
mov rdx, rdi
shl rdx, 5
add rdx, rbx
mov r8, r14
shl r8, 5
sub rsp, 0x20
call fcn.140084cc0
add rsp, 0x20
mov rax, qword [rbp - 0x10]
shl rax, 5
movups xmm0, xmmword [r12]
movups xmm1, xmmword [r12 + 0x10]
movups xmmword [rsi + rax], xmm0
movups xmmword [rsi + rax + 0x10], xmm1
mov rcx, r15
shl rcx, 5
add rcx, rsi
mov r8, qword [rbp]
shl r8, 5
sub rsp, 0x20
mov r12, qword [rbp - 0x18]
mov rdx, r12
call fcn.140084cc0
add rsp, 0x20
lea rcx, [rbx + rdi*8]
add rcx, 0x3d8
movabs rax, 0xfb76ec375ba5d671
lea rdx, [rax + 2]
xor rdx, rax
add rdx, qword [rbp - 8]
lea rdx, [rbx + rdx*8]
add rdx, 0x3d8
shl r14, 3
sub rsp, 0x20
mov r8, r14
call fcn.140084cc0
add rsp, 0x20
cmp rdi, r13
mov r9, qword [rbp]
jae 0x140057a2b
movabs rax, 0x5d1d73eec1db1460
lea rcx, [rax + 1]
xor rcx, rax
add rcx, rdi
mov rdx, qword [rbx + rdi*8 + 0x3d8]
mov qword [rdx + 0x160], rbx
mov word [rdx + 0x3d0], di
mov rdi, rcx
cmp rcx, r13
jne 0x140057a03
dec word [rbx + 0x3d2]
movabs rax, 0xcfba31fce839d25e
lea rcx, [rax + 1]
xor rcx, rax
cmp qword [rbp - 0x28], rcx
jbe 0x140057ab2
movabs rdi, 0x401928921c9b21dc
lea rcx, [rsi + r15*8]
mov edx, 0x3d8
add rcx, rdx
add rdx, r12
movabs rax, 0x8bcf16c7dfc37e65
lea r8, [rax + 8]
xor r8, rax
lea r8, [r8 + r9*8]
sub rsp, 0x20
call fcn.140084cc0
mov rdx, qword [rbp - 0x20]
add rsp, 0x20
lea rax, [rdi + 1]
xor rax, rdi
mov rcx, qword [rsi + r15*8 + 0x3d8]
mov qword [rcx + 0x160], rsi
mov word [rcx + 0x3d0], r15w
lea rcx, [r15 + rax]
cmp r15, rdx
mov r15, rcx
jne 0x140057a8f
mov rcx, qword [0x1400a5b60]
sub rsp, 0x20
xor edx, edx
mov r8, r12
call qword [sym.imp.kernel32.dll_HeapFree]
add rsp, 0x20
mov rax, rsi
mov rdx, qword [rbp - 0x30]
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
ud2