Function at 0x1400e5ad0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xa4b8
lea rbp, [rsp + 0x80]
vmovups xmmword [rbp + 0xa420], xmm7
vmovups xmmword [rbp + 0xa410], xmm6
and rsp, 0xffffffffffffffc0
vmovups xmm6, xmmword [rcx]
vmovups xmm7, xmmword [rcx + 0x10]
mov rax, qword [rcx + 0x20]
mov qword [rsp + 0x48], rax
mov rax, qword [rcx + 0x28]
mov qword [rsp + 0x78], rax
mov rbx, qword [rcx + 0x30]
mov rax, qword [rcx + 0x38]
mov qword [rsp + 0x70], rax
movsxd rsi, dword [rcx + 0x40]
xor r13d, r13d
lea rcx, [rsp + 0x80]
mov r8d, 0x340
xor edx, edx
call fcn.1401bb600
test rsi, rsi
jle 0x1400e630e
mov r9d, 0xffffffff
vxorps xmm0, xmm0, xmm0
xor edx, edx
xor r10d, r10d
xor r8d, r8d
mov qword [rsp + 0x60], rsi
jmp 0x1400e5bb9
test r11d, r11d
mov rsi, qword [rsp + 0x60]
mov r8d, dword [rsp + 0x58]
mov edi, dword [rsp + 0x50]
jle 0x1400e5cb0
movsxd rax, r9d
inc r9d
shl rax, 5
lea rcx, [rsp + 0xc40]
mov word [rax + rcx + 0x30], r11w
vmovups xmmword [rax + rcx + 0x20], xmm1
mov word [rax + rcx + 0x32], di
xor r10d, r10d
inc rdx
cmp r8d, esi
jge 0x1400e5d8d
mov r15d, r8d
mov rax, qword [rsp + 0x78]
movsx edi, word [rax + rdx*2]
mov r8d, edi
add r8d, r15d
mov rax, qword [rsp + 0x70]
movzx eax, word [rax + rdx*2]
test eax, eax
je 0x1400e5cb0
cmp di, 0x11
mov dword [rsp + 0x58], r8d
mov dword [rsp + 0x50], edi
jge 0x1400e5cd0
mov qword [rsp + 0x68], rdx
mov dword [rsp + 0x44], r9d
mov rcx, qword [rsp + 0x48]
mov r10, qword [rcx]
mov rsi, qword [rcx + 8]
mov edx, 1
mov rdi, qword [rcx + 0x10]
mov r14, qword [rcx + 0x18]
movsxd r9, r13d
lea r12, [rsp + r9*2]
add r12, 0x3c0
shl r9, 4
add r9, rsp
add r9, 0x6100
vxorps xmm1, xmm1, xmm1
xor r11d, r11d
nop word cs:[rax + rax]
xor ecx, ecx
tzcnt ecx, eax
lea r8d, [rcx + r15]
movsxd r8, r8d
vmovss xmm2, dword [r10 + r8*4]
vinsertps xmm2, xmm2, dword [rsi + r8*4], 0x10
vinsertps xmm2, xmm2, dword [rdi + r8*4], 0x20
vinsertps xmm2, xmm2, dword [r14 + r8*4], 0x30
movzx r8d, word [rbx + r8*2]
mov word [r12 + r11*2], r8w
vmulps xmm2, xmm6, xmm2
vmovups xmmword [r9], xmm2
shlx ecx, edx, ecx
add r9, 0x10
inc r11
xor eax, ecx
vaddps xmm1, xmm1, xmm2
jne 0x1400e5c40
add r13d, r11d
mov rsi, qword [rsp + 0x60]
mov r9d, dword [rsp + 0x44]
mov rdx, qword [rsp + 0x68]
mov r8d, dword [rsp + 0x58]
mov edi, dword [rsp + 0x50]
jmp 0x1400e5b87
movsxd rax, r9d
shl rax, 5
test r10d, r10d
je 0x1400e5d65
add word [rsp + rax + 0xc52], di
jmp 0x1400e5d82
mov rcx, qword [rsp + 0x48]
mov r12, qword [rcx]
mov rax, qword [rcx + 8]
mov r14, qword [rcx + 0x10]
mov rsi, qword [rcx + 0x18]
movsxd r15, r15d
movsxd rdi, r8d
vxorps xmm2, xmm2, xmm2
xor r11d, r11d
vxorps xmm1, xmm1, xmm1
jmp 0x1400e5d0c
inc r15
cmp r15, rdi
jge 0x1400e5b70
vmovss xmm3, dword [r12 + r15*4]
vinsertps xmm3, xmm3, dword [rax + r15*4], 0x10
vinsertps xmm3, xmm3, dword [r14 + r15*4], 0x20
vinsertps xmm3, xmm3, dword [rsi + r15*4], 0x30
vcmpneqps xmm4, xmm3, xmm2
vtestps xmm4, xmm4
je 0x1400e5d00
movzx ecx, word [rbx + r15*2]
vmulps xmm3, xmm6, xmm3
movsxd r13, r13d
mov r8, r13
shl r8, 4
vmovups xmmword [rsp + r8 + 0x6100], xmm3
vaddps xmm1, xmm1, xmm3
mov word [rsp + r13*2 + 0x3c0], cx
inc r13d
inc r11d
jmp 0x1400e5d00
lea rcx, [rsp + 0xc40]
vmovups xmmword [rax + rcx + 0x20], xmm0
inc r9d
mov word [rax + rcx + 0x30], 0
mov word [rax + rcx + 0x32], di
mov r10d, 1
jmp 0x1400e5bad
mov dword [rsp + 0x44], r9d
vbroadcastss xmm0, dword [0x140225680]
vbroadcastss xmm1, dword [0x140221d94]
vfmadd213ps xmm0, xmm7, xmm1
vsubps xmm1, xmm1, xmm7
vxorps xmm2, xmm2, xmm2
xor eax, eax
xor r14d, r14d
xor r12d, r12d
jmp 0x1400e5dcc
inc rax
cmp r12d, esi
jge 0x1400e60b3
mov r10, rax
shl r10, 5
movsxd rdx, r12d
movsx r12, word [rsp + r10 + 0xc52]
add r12, rdx
movsx r8d, word [rsp + r10 + 0xc50]
mov rcx, rdx
shl rcx, 4
test r8d, r8d
je 0x1400e5e80
lea r9, [rsp + rcx]
add r9, 0x1d40
mov rcx, r9
mov r11, rdx
nop dword [rax]
movzx esi, byte [rbx + r11*2]
movzx edi, byte [rbx + r11*2 + 1]
shr esi, 2
shl rsi, 4
vsubps xmm3, xmm2, xmmword [rsp + rsi + 0x80]
shr edi, 2
shl rdi, 4
vsubps xmm3, xmm3, xmmword [rsp + rdi + 0x80]
vmulps xmm3, xmm1, xmm3
vmovups xmmword [rcx], xmm3
inc r11
add rcx, 0x10
cmp r11, r12
jl 0x1400e5e10
movsxd rdi, r14d
cmp r8d, 2
mov r15d, 1
cmovge r15d, r8d
cmp r8w, 2
mov qword [rsp + 0x58], r14
mov qword [rsp + 0x50], rdi
jge 0x1400e5ee0
xor ecx, ecx
jmp 0x1400e5fb1
add rcx, rsp
add rcx, 0x1d40
nop word [rax + rax]
movzx r8d, byte [rbx + rdx*2]
movzx r9d, byte [rbx + rdx*2 + 1]
shr r8d, 2
shl r8, 4
vsubps xmm3, xmm2, xmmword [rsp + r8 + 0x80]
shr r9d, 2
shl r9, 4
vsubps xmm3, xmm3, xmmword [rsp + r9 + 0x80]
vmulps xmm3, xmm0, xmm3
vmovups xmmword [rcx], xmm3
inc rdx
add rcx, 0x10
cmp rdx, r12
jl 0x1400e5e90
jmp 0x1400e5dc0
mov r14d, r15d
and r14d, 0x7ffffffe
lea rcx, [rsp + 0x3c3]
lea rsi, [rcx + rdi*2]
shl rdi, 4
lea rcx, [rsp + 0x6110]
add rdi, rcx
xor ecx, ecx
nop word [rax + rax]
movzx r13d, byte [rsi + rcx*2 - 3]
movzx r11d, byte [rsi + rcx*2 - 2]
shr r13d, 2
shl r13, 4
vmovups xmm3, xmmword [rdi - 0x10]
vaddps xmm4, xmm3, xmmword [rsp + r13 + 0x80]
vmovups xmmword [rsp + r13 + 0x80], xmm4
shr r11d, 2
shl r11, 4
vaddps xmm3, xmm3, xmmword [rsp + r11 + 0x80]
vmovups xmmword [rsp + r11 + 0x80], xmm3
movzx r11d, byte [rsi + rcx*2 - 1]
movzx r13d, byte [rsi + rcx*2]
shr r11d, 2
shl r11, 4
vmovups xmm3, xmmword [rdi]
vaddps xmm4, xmm3, xmmword [rsp + r11 + 0x80]
vmovups xmmword [rsp + r11 + 0x80], xmm4
shr r13d, 2
shl r13, 4
vaddps xmm3, xmm3, xmmword [rsp + r13 + 0x80]
vmovups xmmword [rsp + r13 + 0x80], xmm3
add rcx, 2
add rdi, 0x20
cmp r14, rcx
jne 0x1400e5f10
test r15b, 1
je 0x1400e6017
mov rdi, qword [rsp + 0x50]
lea r11, [rsp + rdi*2]
add r11, 0x3c0
movzx esi, byte [r11 + rcx*2]
movzx r11d, byte [r11 + rcx*2 + 1]
add rcx, rdi
shr esi, 2
shl rsi, 4
shl rcx, 4
vmovups xmm3, xmmword [rsp + rcx + 0x6100]
vaddps xmm4, xmm3, xmmword [rsp + rsi + 0x80]
vmovups xmmword [rsp + rsi + 0x80], xmm4
shr r11d, 2
shl r11, 4
vaddps xmm3, xmm3, xmmword [rsp + r11 + 0x80]
vmovups xmmword [rsp + r11 + 0x80], xmm3
vaddps xmm2, xmm2, xmmword [rsp + r10 + 0xc40]
mov rsi, qword [rsp + 0x48]
mov rcx, qword [rsi]
mov r10, qword [rsi + 8]
mov r11, qword [rsi + 0x10]
mov rsi, qword [rsi + 0x18]
nop word cs:[rax + rax]
movzx edi, byte [rbx + rdx*2]
vmovss xmm3, dword [rcx + rdx*4]
vinsertps xmm3, xmm3, dword [r10 + rdx*4], 0x10
vinsertps xmm3, xmm3, dword [r11 + rdx*4], 0x20
movzx r14d, byte [rbx + rdx*2 + 1]
vinsertps xmm3, xmm3, dword [rsi + rdx*4], 0x30
shr r14d, 2
shr edi, 2
shl rdi, 4
vsubps xmm4, xmm2, xmmword [rsp + rdi + 0x80]
shl r14, 4
vsubps xmm4, xmm4, xmmword [rsp + r14 + 0x80]
vfmadd231ps xmm4, xmm6, xmm3
vfnmadd213ps xmm4, xmm7, xmmword [r9]
vmovups xmmword [r9], xmm4
inc rdx
add r9, 0x10
cmp rdx, r12
jl 0x1400e6040
mov r14, qword [rsp + 0x58]
add r14d, r8d
mov rsi, qword [rsp + 0x60]
jmp 0x1400e5dc0
lea rcx, [rsp + 0x80]
mov r8d, 0x340
xor edx, edx
call fcn.1401bb600
mov eax, dword [rsp + 0x44]
test eax, eax
js 0x1400e630e
mov eax, eax
vxorps xmm0, xmm0, xmm0
jmp 0x1400e60fc
vaddps xmm0, xmm0, xmmword [rsp + rcx + 0xc40]
mov r14d, edx
lea rcx, [rax - 1]
test rax, rax
mov rax, rcx
jle 0x1400e630e
mov rcx, rax
shl rcx, 5
movsx r8d, word [rsp + rcx + 0xc52]
movsxd rdx, r12d
sub r12d, r8d
movsxd r8, r12d
mov r9, r8
shl r9, 4
add r9, rsp
add r9, 0x1d40
nop word cs:[rax + rax]
movzx r10d, byte [rbx + r8*2]
movzx r11d, byte [rbx + r8*2 + 1]
shr r10d, 2
shl r10, 4
vsubps xmm1, xmm0, xmmword [rsp + r10 + 0x80]
shr r11d, 2
shl r11, 4
vsubps xmm1, xmm1, xmmword [rsp + r11 + 0x80]
vmovups xmm2, xmmword [r9]
vsubps xmm1, xmm2, xmm1
vmovups xmmword [r9], xmm1
inc r8
add r9, 0x10
cmp r8, rdx
jl 0x1400e6130
movzx r8d, word [rsp + rcx + 0xc50]
test r8w, r8w
jle 0x1400e60ec
mov edx, r14d
sub edx, r8d
cmp r8d, 1
jne 0x1400e61b0
xor r10d, r10d
xor r9d, r9d
test r8b, 1
je 0x1400e60e0
jmp 0x1400e62a4
mov r9d, r8d
and r9d, 0xfffffffe
movsxd r11, r14d
add r11, r11
sub r11, r8
sub r11, r8
lea r10, [rsp + 0x3c3]
add r11, r10
mov r10d, r8d
neg r10d
add r14d, r10d
inc r14d
mov r15d, edx
xor r10d, r10d
movzx esi, byte [r11 + r10*2 - 3]
movzx edi, byte [r11 + r10*2 - 2]
lea r13d, [r15 + r10]
movsxd r13, r13d
shr esi, 2
shl rsi, 4
shl r13, 4
vmovups xmm1, xmmword [rsp + r13 + 0x6100]
vaddps xmm2, xmm1, xmmword [rsp + rsi + 0x80]
vmovups xmmword [rsp + rsi + 0x80], xmm2
shr edi, 2
shl rdi, 4
vaddps xmm1, xmm1, xmmword [rsp + rdi + 0x80]
vmovups xmmword [rsp + rdi + 0x80], xmm1
movzx esi, byte [r11 + r10*2 - 1]
movzx edi, byte [r11 + r10*2]
lea r13d, [r14 + r10]
movsxd r13, r13d
shr esi, 2
shl rsi, 4
shl r13, 4
vmovups xmm1, xmmword [rsp + r13 + 0x6100]
vaddps xmm2, xmm1, xmmword [rsp + rsi + 0x80]
vmovups xmmword [rsp + rsi + 0x80], xmm2
shr edi, 2
shl rdi, 4
vaddps xmm1, xmm1, xmmword [rsp + rdi + 0x80]
vmovups xmmword [rsp + rdi + 0x80], xmm1
add r10, 2
cmp r9, r10
jne 0x1400e61e0
mov r9d, r10d
mov rsi, qword [rsp + 0x60]
test r8b, 1
je 0x1400e60e0
movsxd r8, edx
lea r8, [rsp + r8*2]
add r8, 0x3c0
movzx r11d, byte [r8 + r10*2]
movzx r8d, byte [r8 + r10*2 + 1]
add r9d, edx
movsxd r9, r9d
shr r11d, 2
shl r11, 4
shl r9, 4
vmovups xmm1, xmmword [rsp + r9 + 0x6100]
vaddps xmm2, xmm1, xmmword [rsp + r11 + 0x80]
vmovups xmmword [rsp + r11 + 0x80], xmm2
shr r8d, 2
shl r8, 4
vaddps xmm1, xmm1, xmmword [rsp + r8 + 0x80]
vmovups xmmword [rsp + r8 + 0x80], xmm1
jmp 0x1400e60e0
lea eax, [rsi + 3]
test esi, esi
cmovns eax, esi
sar eax, 2
cmp esi, 4
jl 0x1400e63ad
mov r9, qword [rsp + 0x48]
mov rcx, qword [r9]
mov rdx, qword [r9 + 8]
mov r8, qword [r9 + 0x10]
mov r9, qword [r9 + 0x18]
mov r10d, eax
xor r11d, r11d
nop dword [rax]
vmovups xmm0, xmmword [rsp + r11*4 + 0x1d40]
vmovups xmm1, xmmword [rsp + r11*4 + 0x1d50]
vmovups xmm2, xmmword [rsp + r11*4 + 0x1d60]
vmovups xmm3, xmmword [rsp + r11*4 + 0x1d70]
vmovlhps xmm4, xmm0, xmm1
vunpckhpd xmm0, xmm0, xmm1
vmovlhps xmm1, xmm2, xmm3
vshufps xmm5, xmm4, xmm1, 0x88
vmovups xmmword [rcx + r11], xmm5
vunpckhpd xmm2, xmm2, xmm3
vshufps xmm1, xmm4, xmm1, 0xdd
vmovups xmmword [rdx + r11], xmm1
vshufps xmm1, xmm0, xmm2, 0x88
vmovups xmmword [r8 + r11], xmm1
vshufps xmm0, xmm0, xmm2, 0xdd
vmovups xmmword [r9 + r11], xmm0
add r11, 0x10
dec r10
jne 0x1400e6340
shl eax, 2
cmp eax, esi
jge 0x1400e64e5
mov r9, qword [rsp + 0x48]
mov rcx, qword [r9]
mov rdx, qword [r9 + 8]
mov r8, qword [r9 + 0x10]
mov r9, qword [r9 + 0x18]
cdqe
mov r10, rax
not r10
test sil, 1
je 0x1400e6423
mov r11, rax
shl r11, 4
vmovss xmm0, dword [rsp + r11 + 0x1d40]
vmovss dword [rcx + rax*4], xmm0
vmovss xmm0, dword [rsp + r11 + 0x1d44]
vmovss dword [rdx + rax*4], xmm0
vmovss xmm0, dword [rsp + r11 + 0x1d48]
vmovss dword [r8 + rax*4], xmm0
vmovss xmm0, dword [rsp + r11 + 0x1d4c]
vmovss dword [r9 + rax*4], xmm0
or rax, 1
add r10, rsi
je 0x1400e64e5
sub rsi, rax
lea rcx, [rcx + rax*4]
add rcx, 4
lea rdx, [rdx + rax*4]
add rdx, 4
lea r8, [r8 + rax*4]
add r8, 4
lea r9, [r9 + rax*4]
add r9, 4
shl rax, 4
lea r10, [rsp + 0x1d40]
add rax, r10
add rax, 0x1c
xor r10d, r10d
nop word cs:[rax + rax]
vmovss xmm0, dword [rax + r10*4 - 0x1c]
vmovss dword [rcx + r10 - 4], xmm0
vmovss xmm0, dword [rax + r10*4 - 0x18]
vmovss dword [rdx + r10 - 4], xmm0
vmovss xmm0, dword [rax + r10*4 - 0x14]
vmovss dword [r8 + r10 - 4], xmm0
vmovss xmm0, dword [rax + r10*4 - 0x10]
vmovss dword [r9 + r10 - 4], xmm0
vmovss xmm0, dword [rax + r10*4 - 0xc]
vmovss dword [rcx + r10], xmm0
vmovss xmm0, dword [rax + r10*4 - 8]
vmovss dword [rdx + r10], xmm0
vmovss xmm0, dword [rax + r10*4 - 4]
vmovss dword [r8 + r10], xmm0
vmovss xmm0, dword [rax + r10*4]
vmovss dword [r9 + r10], xmm0
add r10, 8
add rsi, 0xfffffffffffffffe
jne 0x1400e6470
vmovups xmm6, xmmword [rbp + 0xa410]
vmovups xmm7, xmmword [rbp + 0xa420]
lea rsp, [rbp + 0xa438]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret