Function at 0x1400e6d70
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], xmm8
vmovups xmmword [rbp + 0x13fd0], xmm7
vmovups xmmword [rbp + 0x13fc0], 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 + 0x48], rax
mov rax, qword [rcx + 0x48]
mov qword [rsp + 0x70], rax
mov rbx, qword [rcx + 0x50]
mov rax, qword [rcx + 0x58]
mov qword [rsp + 0x78], rax
movsxd rdi, dword [rcx + 0x60]
xor r13d, r13d
lea rcx, [rsp + 0xc0]
mov r8d, 0x680
xor edx, edx
vzeroupper
call fcn.1401bb600
test rdi, rdi
jle 0x1400e7624
mov r8d, 0xffffffff
vxorps xmm0, xmm0, xmm0
xor edx, edx
xor ecx, ecx
xor r10d, r10d
mov qword [rsp + 0x68], rdi
vmovups ymm5, ymmword [rsp + 0xa0]
vmovups ymm6, ymmword [rsp + 0x80]
mov r9, qword [rsp + 0x70]
jmp 0x1400e6e91
test r11d, r11d
mov rdi, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x60]
mov r10d, dword [rsp + 0x58]
mov esi, dword [rsp + 0x54]
mov ecx, dword [rsp + 0x44]
jle 0x1400e6fa0
movsxd rax, r8d
inc r8d
shl rax, 6
lea rcx, [rsp + 0xfc0]
mov word [rax + rcx + 0x60], r11w
vmovups ymmword [rax + rcx + 0x40], ymm1
mov word [rax + rcx + 0x62], si
xor ecx, ecx
inc rdx
cmp r10d, edi
jge 0x1400e7087
mov r15d, r10d
movsx esi, word [r9 + rdx*2]
mov r10d, esi
add r10d, r15d
mov rax, qword [rsp + 0x78]
movzx eax, word [rax + rdx*2]
test eax, eax
je 0x1400e6fa0
cmp si, 0x11
mov qword [rsp + 0x60], rdx
mov dword [rsp + 0x58], r10d
mov dword [rsp + 0x54], esi
jge 0x1400e6fc0
mov dword [rsp + 0x44], r8d
mov rcx, qword [rsp + 0x48]
mov r10, qword [rcx]
mov rsi, qword [rcx + 8]
mov rdi, qword [rcx + 0x10]
mov r14, qword [rcx + 0x18]
mov r12, qword [rcx + 0x20]
movsxd rcx, r13d
lea r9, [rsp + rcx*2]
add r9, 0x740
shl rcx, 5
add rcx, rsp
add rcx, 0xb900
vxorps xmm1, xmm1, xmm1
xor r11d, r11d
nop dword [rax + rax]
xor r8d, r8d
tzcnt r8d, eax
lea edx, [r8 + r15]
movsxd rdx, edx
vmovss xmm2, dword [r10 + rdx*4]
vinsertps xmm2, xmm2, dword [rsi + rdx*4], 0x10
vinsertps xmm2, xmm2, dword [rdi + rdx*4], 0x20
vinsertps xmm2, xmm2, dword [r14 + rdx*4], 0x30
vmovss xmm3, dword [r12 + rdx*4]
movzx edx, word [rbx + rdx*2]
mov word [r9 + r11*2], dx
vinsertf128 ymm2, ymm2, xmm3, 1
vmulps ymm2, ymm5, ymm2
vmovups ymmword [rcx], ymm2
mov edx, 1
shlx edx, edx, r8d
add rcx, 0x20
inc r11
xor eax, edx
vaddps ymm1, ymm1, ymm2
jne 0x1400e6f10
add r13d, r11d
mov rdi, qword [rsp + 0x68]
mov r8d, dword [rsp + 0x44]
mov r9, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x60]
mov r10d, dword [rsp + 0x58]
mov esi, dword [rsp + 0x54]
jmp 0x1400e6e60
movsxd rax, r8d
shl rax, 6
test ecx, ecx
je 0x1400e7060
add word [rsp + rax + 0xfe2], si
jmp 0x1400e707d
mov dword [rsp + 0x44], ecx
mov rcx, qword [rsp + 0x48]
mov r12, qword [rcx]
mov rax, qword [rcx + 8]
mov r14, qword [rcx + 0x10]
mov rsi, qword [rcx + 0x18]
mov rdi, qword [rcx + 0x20]
movsxd r15, r15d
movsxd r10, r10d
vxorps xmm2, xmm2, xmm2
xor r11d, r11d
vxorps xmm1, xmm1, xmm1
jmp 0x1400e6ffc
inc r15
cmp r15, r10
jge 0x1400e6e40
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
vmovss xmm4, dword [rdi + r15*4]
vinsertf128 ymm3, ymm3, xmm4, 1
vcmpneqps ymm4, ymm3, ymm2
vtestps ymm4, ymm4
je 0x1400e6ff0
movzx ecx, word [rbx + r15*2]
vmulps ymm3, ymm5, ymm3
movsxd r13, r13d
mov rdx, r13
shl rdx, 5
vmovups ymmword [rsp + rdx + 0xb900], ymm3
vaddps ymm1, ymm1, ymm3
mov word [rsp + r13*2 + 0x740], cx
inc r13d
inc r11d
jmp 0x1400e6ff0
lea rcx, [rsp + 0xfc0]
vmovups ymmword [rax + rcx + 0x40], ymm0
inc r8d
mov word [rax + rcx + 0x60], 0
mov word [rax + rcx + 0x62], si
mov ecx, 1
jmp 0x1400e6e85
mov dword [rsp + 0x44], r8d
vbroadcastss ymm0, dword [0x140225680]
vbroadcastss ymm1, dword [0x140221d94]
vfmadd213ps ymm0, ymm6, ymm1
vsubps ymm1, ymm1, ymm6
vxorps xmm2, xmm2, xmm2
xor eax, eax
xor r14d, r14d
xor r12d, r12d
jmp 0x1400e70cc
inc rax
cmp r12d, edi
jge 0x1400e73c1
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 0x1400e7180
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 0x1400e7110
movsxd r11, r14d
cmp r8d, 2
mov r15d, 1
cmovge r15d, r8d
cmp r8w, 2
mov qword [rsp + 0x60], r14
mov qword [rsp + 0x58], r11
jge 0x1400e71e0
xor ecx, ecx
jmp 0x1400e72b3
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 0x1400e7190
jmp 0x1400e70c0
mov esi, r15d
and esi, 0x7ffffffe
lea rcx, [rsp + 0x743]
lea rdi, [rcx + r11*2]
mov r14, r11
shl r14, 5
lea rcx, [rsp + 0xb920]
add r14, rcx
xor ecx, ecx
nop dword [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 0x1400e7210
test r15b, 1
je 0x1400e7319
mov rdi, qword [rsp + 0x58]
lea r11, [rsp + rdi*2]
add r11, 0x740
movzx esi, byte [r11 + rcx*2]
movzx r11d, byte [r11 + rcx*2 + 1]
add rcx, rdi
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 rdi, qword [rsp + 0x48]
mov rcx, qword [rdi]
mov r10, qword [rdi + 8]
mov r11, qword [rdi + 0x10]
mov rsi, qword [rdi + 0x18]
mov rdi, qword [rdi + 0x20]
nop dword [rax + rax]
movzx r14d, byte [rbx + rdx*2]
movzx r15d, byte [rbx + rdx*2 + 1]
vmovss xmm3, dword [rdi + rdx*4]
vmovss xmm4, dword [rcx + rdx*4]
vinsertps xmm4, xmm4, dword [r10 + rdx*4], 0x10
vinsertps xmm4, xmm4, dword [r11 + rdx*4], 0x20
vinsertps xmm4, xmm4, dword [rsi + rdx*4], 0x30
vinsertf128 ymm3, ymm4, xmm3, 1
shr r15d, 2
shr r14d, 2
shl r14, 5
vsubps ymm4, ymm2, ymmword [rsp + r14 + 0xc0]
shl r15, 5
vsubps ymm4, ymm4, ymmword [rsp + r15 + 0xc0]
vfmadd231ps ymm4, ymm5, ymm3
vfnmadd213ps ymm4, ymm6, ymmword [r9]
vmovups ymmword [r9], ymm4
inc rdx
add r9, 0x20
cmp rdx, r12
jl 0x1400e7340
mov r14, qword [rsp + 0x60]
add r14d, r8d
mov rdi, qword [rsp + 0x68]
jmp 0x1400e70c0
lea rcx, [rsp + 0xc0]
mov r8d, 0x680
xor edx, edx
vzeroupper
call fcn.1401bb600
mov eax, dword [rsp + 0x44]
test eax, eax
js 0x1400e7624
mov eax, eax
vxorps xmm0, xmm0, xmm0
jmp 0x1400e740c
vaddps ymm0, ymm0, ymmword [rsp + rcx + 0xfc0]
mov r14d, edx
lea rcx, [rax - 1]
test rax, rax
mov rax, rcx
jle 0x1400e7624
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 0x1400e7440
movzx r8d, word [rsp + rcx + 0xfe0]
test r8w, r8w
jle 0x1400e73fc
mov edx, r14d
sub edx, r8d
cmp r8d, 1
jne 0x1400e74c0
xor r10d, r10d
xor r9d, r9d
test r8b, 1
je 0x1400e73f0
jmp 0x1400e75ba
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
add r14d, r10d
inc r14d
mov esi, edx
xor r10d, r10d
nop
movzx edi, byte [r11 + r10*2 - 3]
lea r15d, [rsi + r10]
movsxd r15, r15d
shr edi, 2
shl r15, 5
shl rdi, 5
vmovups ymm1, ymmword [rsp + r15 + 0xb900]
vaddps ymm2, ymm1, ymmword [rsp + rdi + 0xc0]
movzx r15d, byte [r11 + r10*2 - 2]
shr r15d, 2
shl r15, 5
vmovups ymmword [rsp + rdi + 0xc0], ymm2
vaddps ymm1, ymm1, ymmword [rsp + r15 + 0xc0]
movzx edi, byte [r11 + r10*2 - 1]
lea r13d, [r14 + r10]
movsxd r13, r13d
shr edi, 2
vmovups ymmword [rsp + r15 + 0xc0], ymm1
shl rdi, 5
shl r13, 5
vmovups ymm1, ymmword [rsp + r13 + 0xb900]
movzx r15d, byte [r11 + r10*2]
vaddps ymm2, ymm1, ymmword [rsp + rdi + 0xc0]
vmovups ymmword [rsp + rdi + 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 0x1400e74f0
mov r9d, r10d
mov rdi, qword [rsp + 0x68]
test r8b, 1
je 0x1400e73f0
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 0x1400e73f0
lea eax, [rdi + 7]
test edi, edi
cmovns eax, edi
sar eax, 3
cmp edi, 8
jl 0x1400e7759
mov r10, qword [rsp + 0x48]
mov rcx, qword [r10]
mov rdx, qword [r10 + 8]
mov r8, qword [r10 + 0x10]
mov r9, qword [r10 + 0x18]
mov r10, qword [r10 + 0x20]
mov r11d, eax
xor esi, esi
nop word cs:[rax + rax]
vmovups ymm0, ymmword [rsp + rsi*8 + 0x31c0]
vunpcklps ymm0, ymm0, ymmword [rsp + rsi*8 + 0x31e0]
vmovups xmm1, xmmword [rsp + rsi*8 + 0x31c0]
vunpckhps xmm1, xmm1, xmmword [rsp + rsi*8 + 0x31e0]
vmovups xmm2, xmmword [rsp + rsi*8 + 0x3200]
vmovups ymm3, ymmword [rsp + rsi*8 + 0x3200]
vunpcklps ymm3, ymm3, ymmword [rsp + rsi*8 + 0x3220]
vmovups xmm4, xmmword [rsp + rsi*8 + 0x3240]
vunpckhps xmm2, xmm2, xmmword [rsp + rsi*8 + 0x3220]
vmovups ymm5, ymmword [rsp + rsi*8 + 0x3240]
vunpcklps ymm5, ymm5, ymmword [rsp + rsi*8 + 0x3260]
vunpckhps xmm4, xmm4, xmmword [rsp + rsi*8 + 0x3260]
vmovups ymm6, ymmword [rsp + rsi*8 + 0x3280]
vunpcklps ymm6, ymm6, ymmword [rsp + rsi*8 + 0x32a0]
vmovups xmm7, xmmword [rsp + rsi*8 + 0x3280]
vunpckhps xmm7, xmm7, xmmword [rsp + rsi*8 + 0x32a0]
vunpcklpd ymm8, ymm0, ymm3
vunpckhpd xmm0, xmm0, xmm3
vunpcklpd ymm3, ymm5, ymm6
vunpckhpd xmm5, xmm5, xmm6
vinsertf128 ymm6, ymm8, xmm3, 1
vmovups ymmword [rcx + rsi], ymm6
vmovlhps xmm6, xmm4, xmm7
vunpckhpd xmm4, xmm4, xmm7
vmovlhps xmm7, xmm1, xmm2
vmovups xmmword [rdx + rsi + 0x10], xmm5
vmovups xmmword [rdx + rsi], xmm0
vmovups xmmword [r8 + rsi + 0x10], xmm6
vmovups xmmword [r8 + rsi], xmm7
vmovups xmmword [r9 + rsi + 0x10], xmm4
vunpckhpd xmm0, xmm1, xmm2
vmovups xmmword [r9 + rsi], xmm0
vperm2f128 ymm0, ymm8, ymm3, 0x31
vmovups ymmword [r10 + rsi], ymm0
add rsi, 0x20
dec r11
jne 0x1400e7660
shl eax, 3
cmp eax, edi
jge 0x1400e78c4
mov rdx, qword [rsp + 0x48]
mov rcx, qword [rdx]
mov r8, qword [rdx + 8]
mov r9, qword [rdx + 0x10]
mov r10, qword [rdx + 0x18]
mov r11, qword [rdx + 0x20]
movsxd rdx, eax
mov rax, rdx
not rax
test dil, 1
je 0x1400e77e0
mov rsi, rdx
shl rsi, 5
vmovss xmm0, dword [rsp + rsi + 0x31c0]
vmovss dword [rcx + rdx*4], xmm0
vmovss xmm0, dword [rsp + rsi + 0x31c4]
vmovss dword [r8 + rdx*4], xmm0
vmovss xmm0, dword [rsp + rsi + 0x31c8]
vmovss dword [r9 + rdx*4], xmm0
vmovss xmm0, dword [rsp + rsi + 0x31cc]
vmovss dword [r10 + rdx*4], xmm0
vmovss xmm0, dword [rsp + rsi + 0x31d0]
vmovss dword [r11 + rdx*4], xmm0
or rdx, 1
add rax, rdi
je 0x1400e78c4
sub rdi, rdx
lea rax, [rcx + rdx*4]
add rax, 4
lea rcx, [r8 + rdx*4 + 4]
lea r8, [r9 + rdx*4]
add r8, 4
lea r9, [r10 + rdx*4]
add r9, 4
lea r10, [r11 + rdx*4]
add r10, 4
shl rdx, 5
lea r11, [rsp + 0x31c0]
add rdx, r11
add rdx, 0x30
xor r11d, r11d
nop word [rax + rax]
vmovss xmm0, dword [rdx + r11*8 - 0x30]
vmovss dword [rax + r11 - 4], xmm0
vmovss xmm0, dword [rdx + r11*8 - 0x2c]
vmovss dword [rcx + r11 - 4], xmm0
vmovss xmm0, dword [rdx + r11*8 - 0x28]
vmovss dword [r8 + r11 - 4], xmm0
vmovss xmm0, dword [rdx + r11*8 - 0x24]
vmovss dword [r9 + r11 - 4], xmm0
vmovss xmm0, dword [rdx + r11*8 - 0x20]
vmovss dword [r10 + r11 - 4], xmm0
vmovss xmm0, dword [rdx + r11*8 - 0x10]
vmovss dword [rax + r11], xmm0
vmovss xmm0, dword [rdx + r11*8 - 0xc]
vmovss dword [rcx + r11], xmm0
vmovss xmm0, dword [rdx + r11*8 - 8]
vmovss dword [r8 + r11], xmm0
vmovss xmm0, dword [rdx + r11*8 - 4]
vmovss dword [r9 + r11], xmm0
vmovss xmm0, dword [rdx + r11*8]
vmovss dword [r10 + r11], xmm0
add r11, 8
add rdi, 0xfffffffffffffffe
jne 0x1400e7830
vmovups xmm6, xmmword [rbp + 0x13fc0]
vmovups xmm7, xmmword [rbp + 0x13fd0]
vmovups xmm8, 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