Function at 0x1400a3230
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x928
movaps xmmword [rsp + 0x910], xmm7
movaps xmmword [rsp + 0x900], xmm6
mov rsi, r8
mov qword [rsp + 0x28], rdx
mov r14, rcx
mov rax, qword [0x140125058]
xor rax, rsp
mov qword [rsp + 0x8f8], rax
lea rbx, [rsp + 0x240]
mov ebp, 0xf
lea r15, [rsp + 0xd0]
lea r12, [rsp + 0x30]
movdqa xmm6, xmmword [0x1401081f0]
movdqa xmm7, xmmword [0x140108200]
lea r13, [0x140108270]
mov rcx, r15
mov rdx, rsi
call fcn.1400a29e0
lea rdx, [rsi + 0x20]
mov rcx, r12
call fcn.1400a29e0
mov rax, qword [rsp + 0x50]
movdqa xmm2, xmmword [rsp + 0x30]
movdqa xmm0, xmmword [rsp + 0x40]
mov rcx, qword [rsp + 0xf0]
movdqa xmm3, xmmword [rsp + 0xd0]
movdqa xmm1, xmmword [rsp + 0xe0]
movq rdx, xmm2
movq rdi, xmm3
add rdi, rdx
mov qword [rbx - 0x50], rdi
pshufd xmm4, xmm2, 0x4e
movq rdx, xmm4
pshufd xmm4, xmm3, 0x4e
movq rdi, xmm4
add rdi, rdx
mov qword [rbx - 0x48], rdi
movq rdx, xmm0
movq rdi, xmm1
add rdi, rdx
mov qword [rbx - 0x40], rdi
pshufd xmm4, xmm0, 0x4e
movq rdx, xmm4
pshufd xmm4, xmm1, 0x4e
movq rdi, xmm4
add rdi, rdx
mov qword [rbx - 0x38], rdi
lea rdx, [rcx + rax]
mov qword [rbx - 0x30], rdx
paddq xmm2, xmm6
psubq xmm2, xmm3
movdqu xmmword [rbx - 0x28], xmm2
paddq xmm0, xmm7
psubq xmm0, xmm1
movdqu xmmword [rbx - 0x18], xmm0
movabs rdx, 0xffffffffffffe
add rax, rdx
sub rax, rcx
mov qword [rbx - 8], rax
mov rcx, rbx
mov rdx, r15
mov r8, r12
call fcn.1400a7520
mov rcx, rbx
mov rdx, rbx
mov r8, r13
call fcn.1400a7520
add rbx, 0x78
add rsi, 0x40
dec rbp
jne 0x1400a32a1
pxor xmm6, xmm6
movdqu xmmword [r14 + 0x10], xmm6
movdqu xmmword [r14], xmm6
xor eax, eax
mov qword [r14 + 0x20], rax
movdqu xmmword [r14 + 0x40], xmm6
movdqu xmmword [r14 + 0x30], xmm6
mov ecx, 1
mov qword [r14 + 0x28], rcx
movdqu xmmword [r14 + 0x68], xmm6
movdqu xmmword [r14 + 0x58], xmm6
mov qword [r14 + 0x50], rcx
movdqu xmmword [r14 + 0x88], xmm6
movdqu xmmword [r14 + 0x78], xmm6
mov qword [r14 + 0x98], rax
lea r15, [rsp + 0x180]
mov r12d, 0x3f
lea r13, [rsp + 0x30]
mov rsi, r12
shr rsi, 3
add rsi, qword [rsp + 0x28]
mov eax, r12d
and eax, 7
xor edx, edx
xor ebp, ebp
movzx ebx, byte [rsi + rdx*8]
mov ecx, eax
shr ebx, cl
and ebx, 1
mov ecx, edx
shl ebx, cl
or bpl, bl
inc rdx
cmp rdx, 4
jne 0x1400a3417
movdqu xmmword [r15 + 0x10], xmm6
movdqu xmmword [r15], xmm6
mov eax, 1
mov qword [rsp + 0x178], rax
movdqu xmmword [r15 + 0x38], xmm6
movdqu xmmword [r15 + 0x28], xmm6
mov qword [rsp + 0x1a0], rax
movdqu xmmword [r15 + 0x58], xmm6
movdqu xmmword [r15 + 0x48], xmm6
mov qword [r15 + 0x68], 0
lea rcx, [rsp + 0x1f0]
mov edx, ebp
xor dl, al
movzx edx, dl
dec edx
shr edx, 0x1f
neg rdx
xor esi, esi
mov rbx, qword [rsp + rsi*8 + 0x178]
mov rdi, qword [rcx + rsi*8]
xor rdi, rbx
and rdi, rdx
xor rdi, rbx
mov qword [rsp + rsi*8 + 0x178], rdi
inc rsi
cmp rsi, 5
jne 0x1400a348b
mov esi, 5
mov rbx, qword [rsp + rsi*8 + 0x178]
mov rdi, qword [rcx + rsi*8]
xor rdi, rbx
and rdi, rdx
xor rdi, rbx
mov qword [rsp + rsi*8 + 0x178], rdi
inc rsi
cmp rsi, 0xa
jne 0x1400a34b6
mov esi, 0xa
mov rbx, qword [rsp + rsi*8 + 0x178]
mov rdi, qword [rcx + rsi*8]
xor rdi, rbx
and rdi, rdx
xor rdi, rbx
mov qword [rsp + rsi*8 + 0x178], rdi
inc rsi
cmp rsi, 0xf
jne 0x1400a34e1
inc rax
add rcx, 0x78
cmp rax, 0x10
jne 0x1400a347a
lea rsi, [rsp + 0xd0]
mov rcx, rsi
mov rdx, r14
call fcn.1400a2bf0
mov rcx, r13
mov rdx, r14
mov r8, rsi
call fcn.1400a2d30
mov rcx, r14
mov rdx, r13
call fcn.1400a2cd0
mov rcx, r13
mov rdx, r14
lea r8, [rsp + 0x178]
call fcn.1400a35b0
mov rcx, r14
mov rdx, r13
call fcn.1400a2cd0
dec r12
cmp r12d, 0x40
jb 0x1400a3401
mov rcx, qword [rsp + 0x8f8]
xor rcx, rsp
call fcn.1400a8dd0
movaps xmm6, xmmword [rsp + 0x900]
movaps xmm7, xmmword [rsp + 0x910]
add rsp, 0x928
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret