Function at 0x1400a587c
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x140]
sub rsp, 0x240
mov rax, qword [0x140126080]
xor rax, rsp
mov qword [rbp + 0x138], rax
mov rbx, r8
mov qword [rsp + 0x58], rcx
mov r8d, 0x20
lea rcx, [rbp + 0x118]
call sub.VCRUNTIME140.dll_memcpy
mov rdx, rbx
lea rcx, [rbp + 0x28]
call fcn.1400a28a8
mov ebx, 0x28
lea rcx, [rbp + 0xa0]
mov r8d, ebx
xor edx, edx
call sub.VCRUNTIME140.dll_memset
lea edi, [rbx - 0x27]
mov r8d, ebx
xor edx, edx
mov qword [rbp + 0xa0], rdi
lea rcx, [rbp + 0x78]
call sub.VCRUNTIME140.dll_memset
movups xmm0, xmmword [rbp + 0x28]
mov r8d, ebx
xor edx, edx
movups xmm1, xmmword [rbp + 0x38]
lea rcx, [rbp + 0x50]
movups xmmword [rbp + 0xc8], xmm0
movsd xmm0, qword [rbp + 0x48]
movsd qword [rbp + 0xe8], xmm0
movups xmmword [rbp + 0xd8], xmm1
call sub.VCRUNTIME140.dll_memset
movdqa xmm2, xmmword [0x1400fa4e0]
lea r10d, [rbx - 0x23]
xor r13d, r13d
mov qword [rbp + 0x50], rdi
mov ecx, 0xfe
mov r8d, r13d
mov dword [rsp + 0x20], ecx
movabs rsi, 0xfffffffffffda
mov r14d, 0x1db42
mov eax, ecx
mov rbx, r10
shr rax, 3
movzx ecx, cl
and ecx, 7
movzx edx, byte [rbp + rax + 0x118]
shr edx, cl
and edx, edi
mov eax, r8d
mov r9d, edx
mov r8, r13
xor r9, rax
mov r11d, edx
neg r9
mov qword [rsp + 0x50], r11
mov rax, qword [rbp + r8 + 0xa0]
mov rdx, qword [rbp + r8 + 0xc8]
lea r8, [r8 + 8]
mov rcx, rax
xor rcx, rdx
and rcx, r9
xor rax, rcx
xor rdx, rcx
mov qword [rbp + r8 + 0x98], rax
mov qword [rbp + r8 + 0xc0], rdx
sub rbx, rdi
jne 0x1400a5992
mov r8, r13
mov rax, qword [rbp + r8 + 0x78]
mov rdx, qword [rbp + r8 + 0x50]
lea r8, [r8 + 8]
mov rcx, rax
xor rcx, rdx
and rcx, r9
xor rax, rcx
xor rdx, rcx
mov qword [rbp + r8 + 0x70], rax
mov qword [rbp + r8 + 0x48], rdx
sub r10, rdi
jne 0x1400a59cd
mov r8, qword [rbp + 0xc8]
mov r9, qword [rbp + 0x50]
mov rax, r8
sub rax, r9
mov dword [rsp + 0x24], r11d
add rax, rsi
mov qword [rbp - 0x50], rax
mov rax, r13
movdqu xmm1, xmmword [rbp + rax + 0xd0]
movdqu xmm0, xmmword [rbp + rax + 0x58]
psubq xmm1, xmm0
paddq xmm1, xmm2
movdqu xmmword [rbp + rax - 0x48], xmm1
add rax, 0x10
cmp rax, 0x20
jl 0x1400a5a19
mov rcx, qword [rbp + 0xa0]
mov rdx, qword [rbp + 0x78]
mov rax, rcx
sub rax, rdx
add rax, rsi
mov qword [rsp + 0x28], rax
mov rax, r13
movdqu xmm1, xmmword [rbp + rax + 0xa8]
movdqu xmm0, xmmword [rbp + rax + 0x80]
psubq xmm1, xmm0
paddq xmm1, xmm2
movdqu xmmword [rsp + rax + 0x30], xmm1
add rax, 0x10
cmp rax, 0x20
jl 0x1400a5a5c
lea rax, [rdx + rcx]
mov rcx, qword [rbp + 0xa8]
add rcx, qword [rbp + 0x80]
lea rdx, [rbp - 0x50]
mov qword [rbp - 0x20], rcx
mov rcx, qword [rbp + 0xb0]
add rcx, qword [rbp + 0x88]
mov qword [rbp - 0x18], rcx
mov rcx, qword [rbp + 0xb8]
add rcx, qword [rbp + 0x90]
mov qword [rbp - 0x10], rcx
mov rcx, qword [rbp + 0xc0]
add rcx, qword [rbp + 0x98]
mov qword [rbp - 8], rcx
mov rcx, qword [rbp + 0xd0]
add rcx, qword [rbp + 0x58]
mov qword [rsp + 0x68], rcx
mov rcx, qword [rbp + 0xd8]
add rcx, qword [rbp + 0x60]
mov qword [rsp + 0x70], rcx
mov rcx, qword [rbp + 0xe0]
add rcx, qword [rbp + 0x68]
mov qword [rsp + 0x78], rcx
mov rcx, qword [rbp + 0xe8]
add rcx, qword [rbp + 0x70]
mov qword [rbp - 0x28], rax
lea rax, [r8 + r9]
mov qword [rbp - 0x80], rcx
lea r8, [rbp - 0x28]
lea rcx, [rbp + 0x50]
mov qword [rsp + 0x60], rax
call fcn.1400a2fac
lea r8, [rsp + 0x28]
lea rdx, [rsp + 0x60]
lea rcx, [rbp + 0x78]
call fcn.1400a2fac
lea rdx, [rsp + 0x28]
lea rcx, [rbp - 0x78]
call fcn.1400a33f0
lea rdx, [rbp - 0x28]
lea rcx, [rbp + 0xf0]
call fcn.1400a33f0
mov rdx, qword [rbp + 0x78]
mov r8, qword [rbp + 0x50]
mov rcx, qword [rbp + 0x80]
add rcx, qword [rbp + 0x58]
mov qword [rbp + 8], rcx
mov rcx, qword [rbp + 0x88]
lea rax, [rdx + r8]
add rcx, qword [rbp + 0x60]
sub r8, rdx
mov qword [rbp + 0x10], rcx
mov rcx, qword [rbp + 0x90]
add rcx, qword [rbp + 0x68]
mov qword [rbp + 0x18], rcx
mov rcx, qword [rbp + 0x98]
add rcx, qword [rbp + 0x70]
add r8, rsi
mov qword [rbp], rax
mov qword [rsp + 0x60], r8
mov rax, r13
mov qword [rbp + 0x20], rcx
movdqu xmm1, xmmword [rbp + rax + 0x58]
movdqu xmm0, xmmword [rbp + rax + 0x80]
psubq xmm1, xmm0
paddq xmm1, xmm2
movdqu xmmword [rsp + rax + 0x68], xmm1
add rax, 0x10
cmp rax, 0x20
jl 0x1400a5bba
lea r8, [rbp - 0x78]
lea rdx, [rbp + 0xf0]
lea rcx, [rbp + 0xa0]
call fcn.1400a2fac
mov rax, qword [rbp + 0xf0]
sub rax, qword [rbp - 0x78]
add rax, rsi
mov qword [rsp + 0x28], rax
mov rax, r13
movdqu xmm1, xmmword [rbp + rax + 0xf8]
movdqu xmm0, xmmword [rbp + rax - 0x70]
psubq xmm1, xmm0
paddq xmm1, xmm2
movdqu xmmword [rsp + rax + 0x30], xmm1
add rax, 0x10
cmp rax, 0x20
jl 0x1400a5c0e
lea rdx, [rsp + 0x60]
lea rcx, [rbp + 0x78]
call fcn.1400a33f0
mov rax, qword [rsp + 0x48]
mul r14
mov rsi, rax
mov r15, rdx
mov rax, qword [rsp + 0x40]
mul r14
mov r11, rax
mov rbx, rdx
mov rax, qword [rsp + 0x38]
mul r14
mov r9, rax
mov r10, rdx
mov rax, qword [rsp + 0x30]
mul r14
mov rcx, rax
mov r8, rdx
mov rax, qword [rsp + 0x28]
mul r14
mov r14, rax
shl rdx, 0xd
mov rdi, rax
shr r14, 0x33
or r14, rdx
add r14, rcx
mov rax, r14
setb cl
shr rax, 0x33
movzx r12d, cl
add r12, r8
shl r12, 0xd
or r12, rax
add r12, r9
setb al
movzx r9d, al
mov rax, r12
shr rax, 0x33
add r9, r10
shl r9, 0xd
or r9, rax
add r9, r11
setb al
movzx r8d, al
mov rax, r9
shr rax, 0x33
add r8, rbx
shl r8, 0xd
or r8, rax
add r8, rsi
setb al
movzx ecx, al
mov rax, r8
add rcx, r15
shr rax, 0x33
movabs r15, 0x7ffffffffffff
shl rcx, 0xd
or rcx, rax
and rdi, r15
imul rdx, rcx, 0x13
and r14, r15
and r12, r15
add rdx, rdi
and r9, r15
mov rax, rdx
mov qword [rbp + 0x68], r9
shr rax, 0x33
and rdx, r15
movzx ecx, al
add rcx, r14
mov qword [rbp + 0x50], rdx
mov rax, rcx
lea rdx, [rbp]
shr rcx, 0x33
and rax, r15
add rcx, r12
mov qword [rbp + 0x58], rax
and r8, r15
mov qword [rbp + 0x60], rcx
mov qword [rbp + 0x70], r8
lea rcx, [rbp + 0xc8]
call fcn.1400a33f0
mov rcx, qword [rbp - 0x78]
lea r8, [rbp + 0x78]
add rcx, qword [rbp + 0x50]
lea rdx, [rbp + 0x28]
mov qword [rbp - 0x50], rcx
mov rcx, qword [rbp + 0x58]
add rcx, qword [rbp - 0x70]
mov qword [rbp - 0x48], rcx
mov rcx, qword [rbp + 0x60]
add rcx, qword [rbp - 0x68]
mov qword [rbp - 0x40], rcx
mov rcx, qword [rbp + 0x68]
add rcx, qword [rbp - 0x60]
mov qword [rbp - 0x38], rcx
mov rcx, qword [rbp + 0x70]
add rcx, qword [rbp - 0x58]
mov qword [rbp - 0x30], rcx
lea rcx, [rbp + 0x50]
call fcn.1400a2fac
lea r8, [rbp - 0x50]
lea rdx, [rsp + 0x28]
lea rcx, [rbp + 0x78]
call fcn.1400a2fac
mov ecx, dword [rsp + 0x20]
mov edi, 1
mov r8d, dword [rsp + 0x24]
sub ecx, edi
mov dword [rsp + 0x20], ecx
movabs rsi, 0xfffffffffffda
mov r14d, 0x1db42
lea r10d, [rdi + 4]
jns 0x1400a5960
mov r10, qword [rsp + 0x50]
lea r9d, [rdi + 4]
mov r10d, r10d
mov r8, r13
neg r10
mov r11d, r9d
mov rax, qword [rbp + r8 + 0xa0]
mov rdx, qword [rbp + r8 + 0xc8]
lea r8, [r8 + 8]
mov rcx, rax
xor rcx, rdx
and rcx, r10
xor rax, rcx
xor rdx, rcx
mov qword [rbp + r8 + 0x98], rax
mov qword [rbp + r8 + 0xc0], rdx
sub r11, rdi
jne 0x1400a5e02
mov rax, qword [rbp + r13 + 0x78]
mov rdx, qword [rbp + r13 + 0x50]
lea r13, [r13 + 8]
mov rcx, rax
xor rcx, rdx
and rcx, r10
xor rax, rcx
xor rdx, rcx
mov qword [rbp + r13 + 0x70], rax
mov qword [rbp + r13 + 0x48], rdx
sub r9, rdi
jne 0x1400a5e3a
movups xmm0, xmmword [rbp + 0x78]
lea rdx, [rbp + 0xf0]
movups xmm1, xmmword [rbp + 0x88]
lea rcx, [rbp + 0x78]
movups xmmword [rbp + 0xf0], xmm0
movsd xmm0, qword [rbp + 0x98]
movsd qword [rbp + 0x110], xmm0
movups xmmword [rbp + 0x100], xmm1
call fcn.1400a2b1c
lea r8, [rbp + 0x78]
lea rdx, [rbp + 0xa0]
lea rcx, [rbp + 0xa0]
call fcn.1400a2fac
mov rcx, qword [rsp + 0x58]
lea rdx, [rbp + 0xa0]
call fcn.1400a367c
mov rcx, qword [rbp + 0x138]
xor rcx, rsp
call fcn.1400aa9d0
mov rbx, qword [rsp + 0x298]
add rsp, 0x240
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret