Function at 0x1400a9456
Capabilities:
Encode data using xor
Encrypt data using curve25519

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x318
movdqa xmmword [rsp + 0x300], xmm11
movdqa xmmword [rsp + 0x2f0], xmm10
movaps xmmword [rsp + 0x2e0], xmm9
movaps xmmword [rsp + 0x2d0], xmm8
movdqa xmmword [rsp + 0x2c0], xmm7
movdqa xmmword [rsp + 0x2b0], xmm6
mov qword [rsp + 0x20], rcx
mov rax, qword [0x140102388]
xor rax, rsp
mov qword [rsp + 0x2a8], rax
movups xmm0, xmmword [rdx]
movups xmm1, xmmword [rdx + 0x10]
movaps xmmword [rsp + 0x30], xmm0
movaps xmmword [rsp + 0x40], xmm1
and byte [rsp + 0x30], 0xf8
mov al, byte [rsp + 0x4f]
and al, 0x3f
or al, 0x40
mov byte [rsp + 0x4f], al
movdqu xmm0, xmmword [r8]
movups xmm1, xmmword [r8 + 0x10]
lea rdx, [rsp + 0x280]
movaps xmmword [rdx + 0x10], xmm1
movdqa xmmword [rdx], xmm0
and byte [rdx + 0x1f], 0x7f
lea rsi, [rsp + 0x258]
mov rcx, rsi
call fcn.1400a5739
pxor xmm0, xmm0
lea rcx, [rsp + 0x230]
movdqu xmmword [rcx + 8], xmm0
movdqu xmmword [rcx + 0x18], xmm0
mov eax, 1
mov qword [rcx], rax
lea rcx, [rsp + 0x200]
movdqa xmmword [rcx], xmm0
movdqa xmmword [rcx + 0x10], xmm0
mov qword [rcx + 0x20], 0
movdqu xmm1, xmmword [rsi]
movdqu xmm2, xmmword [rsi + 0x10]
lea rdx, [rsp + 0x1d0]
movdqa xmmword [rdx], xmm1
movdqa xmmword [rdx + 0x10], xmm2
mov rcx, qword [rsi + 0x20]
mov qword [rdx + 0x20], rcx
lea rcx, [rsp + 0x1a0]
movdqu xmmword [rcx + 8], xmm0
movdqu xmmword [rcx + 0x18], xmm0
mov qword [rcx], rax
mov r12d, 0xfe
xor r15d, r15d
movdqa xmm8, xmmword [0x1400e9720]
movdqa xmm9, xmmword [0x1400e9730]
mov eax, r15d
mov ecx, r12d
shr rcx, 3
movzx r15d, byte [rsp + rcx + 0x30]
mov ecx, r12d
and cl, 7
shr r15, cl
and r15d, 1
xor eax, r15d
neg rax
xor ecx, ecx
mov rdx, qword [rsp + rcx*8 + 0x230]
mov rbx, qword [rsp + rcx*8 + 0x1d0]
mov rbp, rbx
xor rbp, rdx
and rbp, rax
xor rdx, rbp
mov qword [rsp + rcx*8 + 0x230], rdx
xor rbp, rbx
mov qword [rsp + rcx*8 + 0x1d0], rbp
inc rcx
cmp rcx, 5
jne 0x1400a95b6
xor ecx, ecx
mov rdx, qword [rsp + rcx*8 + 0x200]
mov rbx, qword [rsp + rcx*8 + 0x1a0]
mov rbp, rbx
xor rbp, rdx
and rbp, rax
xor rdx, rbp
mov qword [rsp + rcx*8 + 0x200], rdx
xor rbp, rbx
mov qword [rsp + rcx*8 + 0x1a0], rbp
inc rcx
cmp rcx, 5
jne 0x1400a95f0
movdqa xmm11, xmmword [rsp + 0x1d0]
movdqa xmm10, xmmword [rsp + 0x1e0]
movdqa xmm0, xmmword [rsp + 0x1a0]
movdqa xmm1, xmmword [rsp + 0x1b0]
movdqa xmm4, xmm11
psubq xmm4, xmm0
paddq xmm4, xmm8
movdqa xmm5, xmm10
psubq xmm5, xmm1
paddq xmm5, xmm9
mov rcx, qword [rsp + 0x1f0]
movabs rsi, 0xffffffffffffe
lea rdx, [rcx + rsi]
mov rax, qword [rsp + 0x1c0]
sub rdx, rax
movdqa xmmword [rsp + 0x80], xmm4
movdqa xmmword [rsp + 0x90], xmm5
mov qword [rsp + 0xa0], rdx
movdqa xmm2, xmmword [rsp + 0x230]
movdqa xmm3, xmmword [rsp + 0x240]
movdqa xmm6, xmmword [rsp + 0x200]
movdqa xmm7, xmmword [rsp + 0x210]
movdqa xmm4, xmm2
psubq xmm4, xmm6
paddq xmm4, xmm8
movdqa xmm5, xmm3
psubq xmm5, xmm7
paddq xmm5, xmm9
mov rdx, qword [rsp + 0x250]
lea rbp, [rdx + rsi]
mov rbx, qword [rsp + 0x220]
sub rbp, rbx
movdqa xmmword [rsp + 0x50], xmm4
movdqa xmmword [rsp + 0x60], xmm5
mov qword [rsp + 0x70], rbp
paddq xmm6, xmm2
paddq xmm7, xmm3
add rbx, rdx
movdqa xmmword [rsp + 0x110], xmm6
movdqa xmmword [rsp + 0x120], xmm7
mov qword [rsp + 0x130], rbx
paddq xmm0, xmm11
paddq xmm1, xmm10
add rax, rcx
movdqa xmmword [rsp + 0xe0], xmm0
movdqa xmmword [rsp + 0xf0], xmm1
mov qword [rsp + 0x100], rax
lea rax, [rsp + 0x1a0]
mov rcx, rax
lea rax, [rsp + 0x80]
mov rdx, rax
lea rdi, [rsp + 0x110]
mov r8, rdi
call fcn.1400a9e28
lea r13, [rsp + 0x200]
mov rcx, r13
lea r14, [rsp + 0xe0]
mov rdx, r14
lea rbx, [rsp + 0x50]
mov r8, rbx
call fcn.1400a9e28
lea rbp, [rsp + 0x170]
mov rcx, rbp
mov rdx, rbx
call fcn.1400aa23a
lea rbx, [rsp + 0x140]
mov rcx, rbx
mov rdx, rdi
call fcn.1400aa23a
movdqa xmm0, xmmword [rsp + 0x1a0]
movdqa xmm1, xmmword [rsp + 0x1b0]
movdqa xmm2, xmmword [rsp + 0x200]
movdqa xmm3, xmmword [rsp + 0x210]
movdqa xmm4, xmm2
paddq xmm4, xmm0
movdqa xmm5, xmm3
paddq xmm5, xmm1
mov rax, qword [rsp + 0x1c0]
mov rcx, qword [rsp + 0x220]
lea rdx, [rcx + rax]
movdqa xmmword [rsp + 0xb0], xmm4
movdqa xmmword [rsp + 0xc0], xmm5
mov qword [rsp + 0xd0], rdx
psubq xmm0, xmm2
paddq xmm0, xmm8
psubq xmm1, xmm3
paddq xmm1, xmm9
add rax, rsi
sub rax, rcx
movdqa xmmword [rsp + 0xe0], xmm0
movdqa xmmword [rsp + 0xf0], xmm1
mov qword [rsp + 0x100], rax
lea rcx, [rsp + 0x230]
mov rdx, rbx
mov r8, rbp
call fcn.1400a9e28
movdqa xmm6, xmmword [rsp + 0x140]
movdqa xmm7, xmmword [rsp + 0x150]
movdqa xmm11, xmmword [rsp + 0x170]
movdqa xmm10, xmmword [rsp + 0x180]
psubq xmm6, xmm11
paddq xmm6, xmm8
psubq xmm7, xmm10
paddq xmm7, xmm9
mov rdi, qword [rsp + 0x160]
add rdi, rsi
mov rax, qword [rsp + 0x190]
mov qword [rsp + 0x28], rax
sub rdi, rax
movdqa xmmword [rsp + 0x50], xmm6
movdqa xmmword [rsp + 0x60], xmm7
mov qword [rsp + 0x70], rdi
mov rcx, r13
mov rdx, r14
call fcn.1400aa23a
mov rax, rdi
mov esi, 0x1db42
mul rsi
mov r9, rax
mov r8, rdx
pshufd xmm0, xmm7, 0x4e
movq rax, xmm0
mul rsi
mov r11, rax
mov r10, rdx
movq rax, xmm7
mul rsi
mov rdi, rax
mov rcx, rdx
pshufd xmm0, xmm6, 0x4e
movq rax, xmm0
mul rsi
mov rbx, rax
mov rbp, rdx
movq rax, xmm6
mul rsi
mov rsi, rdx
shld rdx, rax, 0xd
shr rsi, 0x33
movabs r13, 0x7ffffffffffff
lea r14, [r13 - 1]
and r14, rax
add rdx, rbx
adc rsi, rbp
mov rax, rsi
shld rax, rdx, 0xd
shr rsi, 0x33
and rdx, r13
add rax, rdi
adc rsi, rcx
mov rbx, rsi
shld rbx, rax, 0xd
shr rsi, 0x33
and rax, r13
add rbx, r11
adc rsi, r10
mov rdi, rsi
shld rdi, rbx, 0xd
shr rsi, 0x33
and rbx, r13
add rdi, r9
adc rsi, r8
shld rsi, rdi, 0xd
and rdi, r13
lea rcx, [rsi + rsi*8]
lea rbp, [rsi + rcx*2]
add rbp, r14
mov rsi, rbp
shr rsi, 0x33
add rsi, rdx
and rbp, r13
mov r14, rsi
shr r14, 0x33
add r14, rax
and rsi, r13
mov qword [rsp + 0x1a0], rbp
mov qword [rsp + 0x1a8], rsi
mov qword [rsp + 0x1b0], r14
mov qword [rsp + 0x1b8], rbx
mov qword [rsp + 0x1c0], rdi
lea rcx, [rsp + 0x1d0]
lea rdx, [rsp + 0xb0]
call fcn.1400aa23a
movq rax, xmm11
add rax, rbp
pshufd xmm0, xmm11, 0x4e
movq rcx, xmm0
add rcx, rsi
movq rdx, xmm10
add rdx, r14
pshufd xmm0, xmm10, 0x4e
movq rbp, xmm0
add rbp, rbx
add rdi, qword [rsp + 0x28]
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x90], rdx
mov qword [rsp + 0x98], rbp
mov qword [rsp + 0xa0], rdi
lea rcx, [rsp + 0x1a0]
lea rdx, [rsp + 0x258]
lea rsi, [rsp + 0x200]
mov r8, rsi
call fcn.1400a9e28
mov rcx, rsi
lea rdx, [rsp + 0x50]
lea r8, [rsp + 0x80]
call fcn.1400a9e28
sub r12d, 1
jae 0x1400a9591
neg r15
xor eax, eax
mov rcx, qword [rsp + rax*8 + 0x230]
mov rbp, qword [rsp + rax*8 + 0x1d0]
mov rdx, rbp
xor rdx, rcx
and rdx, r15
xor rcx, rdx
mov qword [rsp + rax*8 + 0x230], rcx
xor rdx, rbp
mov qword [rsp + rax*8 + 0x1d0], rdx
inc rax
cmp rax, 5
jne 0x1400a9a94
xor eax, eax
mov rcx, qword [rsp + rax*8 + 0x200]
mov rbp, qword [rsp + rax*8 + 0x1a0]
mov rdx, rbp
xor rdx, rcx
and rdx, r15
xor rcx, rdx
mov qword [rsp + rax*8 + 0x200], rcx
xor rdx, rbp
mov qword [rsp + rax*8 + 0x1a0], rdx
inc rax
cmp rax, 5
jne 0x1400a9ace
lea rsi, [rsp + 0x200]
mov rax, qword [rsi + 0x20]
lea rdx, [rsp + 0x280]
mov qword [rdx + 0x20], rax
movaps xmm0, xmmword [rsi]
movaps xmm1, xmmword [rsi + 0x10]
movaps xmmword [rdx + 0x10], xmm1
movaps xmmword [rdx], xmm0
mov rcx, rsi
call fcn.1400a9bd1
lea rdi, [rsp + 0x230]
mov rcx, rdi
mov rdx, rdi
mov r8, rsi
call fcn.1400a9e28
mov rsi, qword [rsp + 0x20]
mov rcx, rsi
mov rdx, rdi
call fcn.1400a4390
lea rcx, [0x1400e9bb0]
mov r8d, 0x20
mov rdx, rsi
call fcn.14006d8c5
xor esi, esi
test eax, eax
setne sil
mov rcx, qword [rsp + 0x2a8]
xor rcx, rsp
call fcn.1400ab340
mov eax, esi
movaps xmm6, xmmword [rsp + 0x2b0]
movaps xmm7, xmmword [rsp + 0x2c0]
movaps xmm8, xmmword [rsp + 0x2d0]
movaps xmm9, xmmword [rsp + 0x2e0]
movaps xmm10, xmmword [rsp + 0x2f0]
movaps xmm11, xmmword [rsp + 0x300]
add rsp, 0x318
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret