Function at 0x1400eabb0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x14078
lea rbp, [rsp + 0x80]
vmovups xmmword [rbp + 0x13fe0], xmm9
vmovups xmmword [rbp + 0x13fd0], xmm8
vmovups xmmword [rbp + 0x13fc0], xmm7
vmovups xmmword [rbp + 0x13fb0], xmm6
and rsp, 0xffffffffffffffc0
vmovups ymm0, ymmword [rcx]
vmovups ymmword [rsp + 0xa0], ymm0
vmovups ymm0, ymmword [rcx + 0x20]
vmovups ymmword [rsp + 0x80], ymm0
mov rax, qword [rcx + 0x40]
mov qword [rsp + 0x30], rax
mov rax, qword [rcx + 0x48]
mov qword [rsp + 0x70], rax
mov rbx, qword [rcx + 0x50]
mov rax, qword [rcx + 0x58]
mov qword [rsp + 0x68], rax
movsxd r15, dword [rcx + 0x60]
xor esi, esi
lea rcx, [rsp + 0xc0]
mov r8d, 0x680
xor edx, edx
vzeroupper
call fcn.1401bb600
test r15, r15
jle 0x1400eb51a
mov ecx, 0xffffffff
vxorps xmm0, xmm0, xmm0
xor r8d, r8d
xor edx, edx
xor r9d, r9d
mov qword [rsp + 0x50], r15
vmovups ymm6, ymmword [rsp + 0xa0]
vmovups ymm7, ymmword [rsp + 0x80]
jmp 0x1400eacd6
test r11d, r11d
mov r15, qword [rsp + 0x50]
mov ecx, dword [rsp + 0x28]
mov r8, qword [rsp + 0x60]
mov r9d, dword [rsp + 0x2c]
mov r10d, dword [rsp + 0x4c]
mov edx, dword [rsp + 0x38]
jle 0x1400eae30
movsxd rax, ecx
inc ecx
shl rax, 6
lea rdx, [rsp + 0xfc0]
mov word [rax + rdx + 0x60], r11w
vmovups ymmword [rax + rdx + 0x40], ymm1
mov word [rax + rdx + 0x62], r10w
xor edx, edx
inc r8
cmp r9d, r15d
jge 0x1400eaf53
mov r11d, r9d
mov rax, qword [rsp + 0x70]
movsx r10d, word [rax + r8*2]
mov r9d, r10d
add r9d, r11d
mov rax, qword [rsp + 0x68]
movzx eax, word [rax + r8*2]
test eax, eax
je 0x1400eae30
mov dword [rsp + 0x2c], r9d
mov qword [rsp + 0x60], r8
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x4c], r10d
cmp r10w, 0x11
jge 0x1400eae50
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rcx]
mov qword [rsp + 0x40], rdx
mov rdx, qword [rcx + 8]
mov qword [rsp + 0x38], rdx
mov rdx, qword [rcx + 0x10]
mov qword [rsp + 0x58], rdx
mov rdx, qword [rcx + 0x18]
mov qword [rsp + 0x78], rdx
mov r13, qword [rcx + 0x20]
mov rdi, qword [rcx + 0x28]
mov r14, qword [rcx + 0x30]
mov r12, qword [rcx + 0x38]
mov r9, r11
movsxd r11, esi
lea rdx, [rsp + r11*2]
add rdx, 0x740
shl r11, 5
lea r15, [rsp + r11]
add r15, 0xb900
vxorps xmm1, xmm1, xmm1
xor r11d, r11d
nop dword [rax + rax]
xor ecx, ecx
tzcnt ecx, eax
lea r8d, [rcx + r9]
movsxd r8, r8d
vmovss xmm2, dword [r13 + r8*4]
vinsertps xmm2, xmm2, dword [rdi + r8*4], 0x10
vinsertps xmm2, xmm2, dword [r14 + r8*4], 0x20
vinsertps xmm2, xmm2, dword [r12 + r8*4], 0x30
mov r10, qword [rsp + 0x40]
vmovss xmm3, dword [r10 + r8*4]
mov r10, qword [rsp + 0x38]
vinsertps xmm3, xmm3, dword [r10 + r8*4], 0x10
mov r10, qword [rsp + 0x58]
vinsertps xmm3, xmm3, dword [r10 + r8*4], 0x20
mov r10, qword [rsp + 0x78]
vinsertps xmm3, xmm3, dword [r10 + r8*4], 0x30
movzx r8d, word [rbx + r8*2]
mov word [rdx + r11*2], r8w
mov r8d, 1
vinsertf128 ymm2, ymm3, xmm2, 1
vmulps ymm2, ymm6, ymm2
vmovups ymmword [r15], ymm2
shlx ecx, r8d, ecx
add r15, 0x20
inc r11
xor eax, ecx
vaddps ymm1, ymm1, ymm2
jne 0x1400ead80
add esi, r11d
mov r15, qword [rsp + 0x50]
mov ecx, dword [rsp + 0x28]
mov r8, qword [rsp + 0x60]
mov r9d, dword [rsp + 0x2c]
mov r10d, dword [rsp + 0x4c]
jmp 0x1400eaca5
movsxd rax, ecx
shl rax, 6
test edx, edx
je 0x1400eaf2c
add word [rsp + rax + 0xfe2], r10w
jmp 0x1400eaf49
mov dword [rsp + 0x38], edx
mov rcx, qword [rsp + 0x30]
mov rax, qword [rcx]
mov qword [rsp + 0x40], rax
mov rax, qword [rcx + 8]
mov r14, qword [rcx + 0x10]
mov r12, qword [rcx + 0x18]
mov r10, qword [rcx + 0x20]
mov rdi, qword [rcx + 0x28]
mov r9, qword [rcx + 0x30]
mov rcx, qword [rcx + 0x38]
movsxd r15, r11d
movsxd r8, dword [rsp + 0x2c]
vxorps xmm2, xmm2, xmm2
xor r11d, r11d
vxorps xmm1, xmm1, xmm1
jmp 0x1400eaeac
inc r15
cmp r15, r8
jge 0x1400eac80
vmovss xmm3, dword [r10 + r15*4]
vinsertps xmm3, xmm3, dword [rdi + r15*4], 0x10
vinsertps xmm3, xmm3, dword [r9 + r15*4], 0x20
vinsertps xmm3, xmm3, dword [rcx + r15*4], 0x30
mov rdx, qword [rsp + 0x40]
vmovss xmm4, dword [rdx + r15*4]
vinsertps xmm4, xmm4, dword [rax + r15*4], 0x10
vinsertps xmm4, xmm4, dword [r14 + r15*4], 0x20
vinsertps xmm4, xmm4, dword [r12 + r15*4], 0x30
vinsertf128 ymm3, ymm4, xmm3, 1
vcmpneqps ymm4, ymm3, ymm2
vtestps ymm4, ymm4
je 0x1400eaea0
movzx edx, word [rbx + r15*2]
vmulps ymm3, ymm6, ymm3
movsxd rsi, esi
mov r13, rsi
shl r13, 5
vmovups ymmword [rsp + r13 + 0xb900], ymm3
vaddps ymm1, ymm1, ymm3
mov word [rsp + rsi*2 + 0x740], dx
inc esi
inc r11d
jmp 0x1400eaea0
lea rdx, [rsp + 0xfc0]
vmovups ymmword [rax + rdx + 0x40], ymm0
inc ecx
mov word [rax + rdx + 0x60], 0
mov word [rax + rdx + 0x62], r10w
mov edx, 1
jmp 0x1400eacca
mov dword [rsp + 0x28], ecx
vbroadcastss ymm0, dword [0x140225680]
vbroadcastss ymm1, dword [0x140221d94]
vfmadd213ps ymm0, ymm7, ymm1
vsubps ymm1, ymm1, ymm7
vxorps xmm2, xmm2, xmm2
xor eax, eax
xor r14d, r14d
xor r12d, r12d
jmp 0x1400eaf8c
inc rax
cmp r12d, r15d
jge 0x1400eb2ad
mov r10, rax
shl r10, 6
movsxd rdx, r12d
movsx r12, word [rsp + r10 + 0xfe2]
add r12, rdx
movsx r8d, word [rsp + r10 + 0xfe0]
mov rcx, rdx
shl rcx, 5
test r8d, r8d
je 0x1400eb040
lea r9, [rsp + rcx]
add r9, 0x31c0
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, 5
vsubps ymm3, ymm2, ymmword [rsp + rsi + 0xc0]
shr edi, 2
shl rdi, 5
vsubps ymm3, ymm3, ymmword [rsp + rdi + 0xc0]
vmulps ymm3, ymm1, ymm3
vmovups ymmword [rcx], ymm3
inc r11
add rcx, 0x20
cmp r11, r12
jl 0x1400eafd0
mov qword [rsp + 0x40], r14
movsxd r14, r14d
cmp r8d, 2
mov r15d, 1
cmovge r15d, r8d
cmp r8w, 2
mov qword [rsp + 0x58], r14
jge 0x1400eb0a0
xor ecx, ecx
jmp 0x1400eb173
add rcx, rsp
add rcx, 0x31c0
nop word [rax + rax]
movzx r8d, byte [rbx + rdx*2]
movzx r9d, byte [rbx + rdx*2 + 1]
shr r8d, 2
shl r8, 5
vsubps ymm3, ymm2, ymmword [rsp + r8 + 0xc0]
shr r9d, 2
shl r9, 5
vsubps ymm3, ymm3, ymmword [rsp + r9 + 0xc0]
vmulps ymm3, ymm0, ymm3
vmovups ymmword [rcx], ymm3
inc rdx
add rcx, 0x20
cmp rdx, r12
jl 0x1400eb050
jmp 0x1400eaf80
mov esi, r15d
and esi, 0x7ffffffe
lea rcx, [rsp + 0x743]
lea rdi, [rcx + r14*2]
shl r14, 5
lea rcx, [rsp + 0xb920]
add r14, rcx
xor ecx, ecx
nop word cs:[rax + rax]
movzx r13d, byte [rdi + rcx*2 - 3]
shr r13d, 2
shl r13, 5
vmovups ymm3, ymmword [r14 - 0x20]
vaddps ymm4, ymm3, ymmword [rsp + r13 + 0xc0]
movzx r11d, byte [rdi + rcx*2 - 2]
shr r11d, 2
vmovups ymmword [rsp + r13 + 0xc0], ymm4
shl r11, 5
vaddps ymm3, ymm3, ymmword [rsp + r11 + 0xc0]
movzx r13d, byte [rdi + rcx*2 - 1]
shr r13d, 2
shl r13, 5
vmovups ymmword [rsp + r11 + 0xc0], ymm3
vmovups ymm3, ymmword [r14]
vaddps ymm4, ymm3, ymmword [rsp + r13 + 0xc0]
movzx r11d, byte [rdi + rcx*2]
shr r11d, 2
shl r11, 5
vmovups ymmword [rsp + r13 + 0xc0], ymm4
vaddps ymm3, ymm3, ymmword [rsp + r11 + 0xc0]
vmovups ymmword [rsp + r11 + 0xc0], ymm3
add rcx, 2
add r14, 0x40
cmp rsi, rcx
jne 0x1400eb0d0
mov dword [rsp + 0x38], r8d
test r15b, 1
je 0x1400eb1de
mov r8, qword [rsp + 0x58]
lea r11, [rsp + r8*2]
add r11, 0x740
movzx esi, byte [r11 + rcx*2]
movzx r11d, byte [r11 + rcx*2 + 1]
add rcx, r8
shr esi, 2
shl rsi, 5
shl rcx, 5
vmovups ymm3, ymmword [rsp + rcx + 0xb900]
vaddps ymm4, ymm3, ymmword [rsp + rsi + 0xc0]
vmovups ymmword [rsp + rsi + 0xc0], ymm4
shr r11d, 2
shl r11, 5
vaddps ymm3, ymm3, ymmword [rsp + r11 + 0xc0]
vmovups ymmword [rsp + r11 + 0xc0], ymm3
vaddps ymm2, ymm2, ymmword [rsp + r10 + 0xfc0]
mov r8, qword [rsp + 0x30]
mov rcx, qword [r8]
mov r10, qword [r8 + 8]
mov r11, qword [r8 + 0x10]
mov rsi, qword [r8 + 0x18]
mov rdi, qword [r8 + 0x20]
mov r14, qword [r8 + 0x28]
mov r15, qword [r8 + 0x30]
mov r13, qword [r8 + 0x38]
nop dword [rax]
movzx r8d, byte [rbx + rdx*2]
shr r8d, 2
shl r8, 5
vsubps ymm3, ymm2, ymmword [rsp + r8 + 0xc0]
movzx r8d, byte [rbx + rdx*2 + 1]
shr r8d, 2
shl r8, 5
vsubps ymm3, ymm3, ymmword [rsp + r8 + 0xc0]
vmovss xmm4, dword [rdi + rdx*4]
vinsertps xmm4, xmm4, dword [r14 + rdx*4], 0x10
vinsertps xmm4, xmm4, dword [r15 + rdx*4], 0x20
vinsertps xmm4, xmm4, dword [r13 + rdx*4], 0x30
vmovss xmm5, dword [rcx + rdx*4]
vinsertps xmm5, xmm5, dword [r10 + rdx*4], 0x10
vinsertps xmm5, xmm5, dword [r11 + rdx*4], 0x20
vinsertps xmm5, xmm5, dword [rsi + rdx*4], 0x30
vinsertf128 ymm4, ymm5, xmm4, 1
vfmadd231ps ymm3, ymm6, ymm4
vfnmadd213ps ymm3, ymm7, ymmword [r9]
vmovups ymmword [r9], ymm3
inc rdx
add r9, 0x20
cmp rdx, r12
jl 0x1400eb210
mov r14, qword [rsp + 0x40]
add r14d, dword [rsp + 0x38]
mov r15, qword [rsp + 0x50]
jmp 0x1400eaf80
lea rcx, [rsp + 0xc0]
mov r8d, 0x680
xor edx, edx
vzeroupper
call fcn.1401bb600
mov eax, dword [rsp + 0x28]
test eax, eax
js 0x1400eb51a
mov eax, eax
vxorps xmm0, xmm0, xmm0
jmp 0x1400eb2fc
vaddps ymm0, ymm0, ymmword [rsp + rcx + 0xfc0]
mov r14d, edx
lea rcx, [rax - 1]
test rax, rax
mov rax, rcx
jle 0x1400eb51a
mov rcx, rax
shl rcx, 6
movsx r8d, word [rsp + rcx + 0xfe2]
movsxd rdx, r12d
sub r12d, r8d
movsxd r8, r12d
mov r9, r8
shl r9, 5
add r9, rsp
add r9, 0x31c0
nop word cs:[rax + rax]
movzx r10d, byte [rbx + r8*2]
movzx r11d, byte [rbx + r8*2 + 1]
shr r10d, 2
shl r10, 5
vsubps ymm1, ymm0, ymmword [rsp + r10 + 0xc0]
shr r11d, 2
shl r11, 5
vsubps ymm1, ymm1, ymmword [rsp + r11 + 0xc0]
vmovups ymm2, ymmword [r9]
vsubps ymm1, ymm2, ymm1
vmovups ymmword [r9], ymm1
inc r8
add r9, 0x20
cmp r8, rdx
jl 0x1400eb330
movzx r8d, word [rsp + rcx + 0xfe0]
test r8w, r8w
jle 0x1400eb2ec
mov edx, r14d
sub edx, r8d
cmp r8d, 1
jne 0x1400eb3b0
xor r10d, r10d
xor r9d, r9d
test r8b, 1
je 0x1400eb2e0
jmp 0x1400eb4b0
mov r9d, r8d
and r9d, 0xfffffffe
movsxd r11, r14d
add r11, r11
sub r11, r8
sub r11, r8
lea r10, [rsp + 0x743]
add r11, r10
mov r10d, r8d
neg r10d
lea esi, [r14 + r10]
inc esi
mov edi, edx
xor r10d, r10d
nop
movzx r14d, byte [r11 + r10*2 - 3]
lea r15d, [rdi + r10]
movsxd r15, r15d
shr r14d, 2
shl r15, 5
shl r14, 5
vmovups ymm1, ymmword [rsp + r15 + 0xb900]
vaddps ymm2, ymm1, ymmword [rsp + r14 + 0xc0]
movzx r15d, byte [r11 + r10*2 - 2]
shr r15d, 2
shl r15, 5
vmovups ymmword [rsp + r14 + 0xc0], ymm2
vaddps ymm1, ymm1, ymmword [rsp + r15 + 0xc0]
movzx r14d, byte [r11 + r10*2 - 1]
lea r13d, [rsi + r10]
movsxd r13, r13d
shr r14d, 2
vmovups ymmword [rsp + r15 + 0xc0], ymm1
shl r14, 5
shl r13, 5
vmovups ymm1, ymmword [rsp + r13 + 0xb900]
movzx r15d, byte [r11 + r10*2]
vaddps ymm2, ymm1, ymmword [rsp + r14 + 0xc0]
vmovups ymmword [rsp + r14 + 0xc0], ymm2
shr r15d, 2
shl r15, 5
vaddps ymm1, ymm1, ymmword [rsp + r15 + 0xc0]
vmovups ymmword [rsp + r15 + 0xc0], ymm1
add r10, 2
cmp r9, r10
jne 0x1400eb3e0
mov r9d, r10d
mov r15, qword [rsp + 0x50]
test r8b, 1
je 0x1400eb2e0
movsxd r8, edx
lea r8, [rsp + r8*2]
add r8, 0x740
movzx r11d, byte [r8 + r10*2]
movzx r8d, byte [r8 + r10*2 + 1]
add r9d, edx
movsxd r9, r9d
shr r11d, 2
shl r11, 5
shl r9, 5
vmovups ymm1, ymmword [rsp + r9 + 0xb900]
vaddps ymm2, ymm1, ymmword [rsp + r11 + 0xc0]
vmovups ymmword [rsp + r11 + 0xc0], ymm2
shr r8d, 2
shl r8, 5
vaddps ymm1, ymm1, ymmword [rsp + r8 + 0xc0]
vmovups ymmword [rsp + r8 + 0xc0], ymm1
jmp 0x1400eb2e0
lea eax, [r15 + 7]
test r15d, r15d
cmovns eax, r15d
sar eax, 3
cmp r15d, 8
jl 0x1400eb65f
mov rdi, qword [rsp + 0x30]
mov rcx, qword [rdi]
mov rdx, qword [rdi + 8]
mov r8, qword [rdi + 0x10]
mov r9, qword [rdi + 0x18]
mov r10, qword [rdi + 0x20]
mov r11, qword [rdi + 0x28]
mov rsi, qword [rdi + 0x30]
mov rdi, qword [rdi + 0x38]
mov ebx, eax
xor r14d, r14d
nop dword [rax + rax]
vmovups ymm0, ymmword [rsp + r14*8 + 0x31c0]
vmovups ymm1, ymmword [rsp + r14*8 + 0x31e0]
vmovups ymm2, ymmword [rsp + r14*8 + 0x3200]
vmovups ymm3, ymmword [rsp + r14*8 + 0x3220]
vunpcklps ymm4, ymm0, ymm1
vunpckhps ymm0, ymm0, ymm1
vunpcklps ymm1, ymm2, ymm3
vunpckhps ymm2, ymm2, ymm3
vmovups ymm3, ymmword [rsp + r14*8 + 0x3260]
vmovups ymm5, ymmword [rsp + r14*8 + 0x3240]
vunpcklps ymm6, ymm5, ymm3
vunpckhps ymm3, ymm5, ymm3
vmovups ymm5, ymmword [rsp + r14*8 + 0x32a0]
vmovups ymm7, ymmword [rsp + r14*8 + 0x3280]
vunpcklps ymm8, ymm7, ymm5
vunpckhps ymm5, ymm7, ymm5
vunpcklpd ymm7, ymm4, ymm1
vunpckhpd ymm1, ymm4, ymm1
vunpcklpd ymm4, ymm0, ymm2
vunpckhpd ymm0, ymm0, ymm2
vunpcklpd ymm2, ymm6, ymm8
vinsertf128 ymm9, ymm7, xmm2, 1
vmovups ymmword [rcx + r14], ymm9
vunpckhpd ymm6, ymm6, ymm8
vinsertf128 ymm8, ymm1, xmm6, 1
vmovups ymmword [rdx + r14], ymm8
vunpcklpd ymm8, ymm3, ymm5
vinsertf128 ymm9, ymm4, xmm8, 1
vmovups ymmword [r8 + r14], ymm9
vunpckhpd ymm3, ymm3, ymm5
vinsertf128 ymm5, ymm0, xmm3, 1
vmovups ymmword [r9 + r14], ymm5
vperm2f128 ymm2, ymm7, ymm2, 0x31
vmovups ymmword [r10 + r14], ymm2
vperm2f128 ymm1, ymm1, ymm6, 0x31
vmovups ymmword [r11 + r14], ymm1
vperm2f128 ymm1, ymm4, ymm8, 0x31
vmovups ymmword [rsi + r14], ymm1
vperm2f128 ymm0, ymm0, ymm3, 0x31
vmovups ymmword [rdi + r14], ymm0
add r14, 0x20
dec rbx
jne 0x1400eb560
shl eax, 3
cmp eax, r15d
jge 0x1400eb734
movsxd rdi, eax
lea rax, [rdi*4]
mov rbx, qword [rsp + 0x30]
mov rcx, qword [rbx]
add rcx, rax
mov rdx, qword [rbx + 8]
add rdx, rax
mov r8, qword [rbx + 0x10]
add r8, rax
mov r9, qword [rbx + 0x18]
add r9, rax
mov r10, qword [rbx + 0x20]
add r10, rax
mov r11, qword [rbx + 0x28]
add r11, rax
mov rsi, qword [rbx + 0x30]
add rsi, rax
add rax, qword [rbx + 0x38]
sub r15, rdi
shl rdi, 5
lea rbx, [rsp + 0x31c0]
add rdi, rbx
add rdi, 0x1c
xor ebx, ebx
nop word [rax + rax]
vmovss xmm0, dword [rdi + rbx*8 - 0x1c]
vmovss dword [rcx + rbx], xmm0
vmovss xmm0, dword [rdi + rbx*8 - 0x18]
vmovss dword [rdx + rbx], xmm0
vmovss xmm0, dword [rdi + rbx*8 - 0x14]
vmovss dword [r8 + rbx], xmm0
vmovss xmm0, dword [rdi + rbx*8 - 0x10]
vmovss dword [r9 + rbx], xmm0
vmovss xmm0, dword [rdi + rbx*8 - 0xc]
vmovss dword [r10 + rbx], xmm0
vmovss xmm0, dword [rdi + rbx*8 - 8]
vmovss dword [r11 + rbx], xmm0
vmovss xmm0, dword [rdi + rbx*8 - 4]
vmovss dword [rsi + rbx], xmm0
vmovss xmm0, dword [rdi + rbx*8]
vmovss dword [rax + rbx], xmm0
add rbx, 4
dec r15
jne 0x1400eb6d0
vmovups xmm6, xmmword [rbp + 0x13fb0]
vmovups xmm7, xmmword [rbp + 0x13fc0]
vmovups xmm8, xmmword [rbp + 0x13fd0]
vmovups xmm9, xmmword [rbp + 0x13fe0]
lea rsp, [rbp + 0x13ff8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
vzeroupper
ret