Function at 0x1400e81c0
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 + 0x40], rax
mov rax, qword [rcx + 0x48]
mov qword [rsp + 0x78], rax
mov rbx, qword [rcx + 0x50]
mov rax, qword [rcx + 0x58]
mov qword [rsp + 0x70], rax
movsxd r14, dword [rcx + 0x60]
xor r13d, r13d
lea rcx, [rsp + 0xc0]
mov r8d, 0x680
xor edx, edx
vzeroupper
call fcn.1401bb600
test r14, r14
jle 0x1400e8aba
mov r8d, 0xffffffff
vxorps xmm0, xmm0, xmm0
xor edx, edx
xor ecx, ecx
xor r9d, r9d
mov qword [rsp + 0x58], r14
vmovups ymm6, ymmword [rsp + 0xa0]
vmovups ymm7, ymmword [rsp + 0x80]
jmp 0x1400e82e3
test r11d, r11d
mov r14, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x68]
mov r9d, dword [rsp + 0x54]
mov r10d, dword [rsp + 0x50]
mov ecx, dword [rsp + 0x48]
jle 0x1400e8410
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], r10w
xor ecx, ecx
inc rdx
cmp r9d, r14d
jge 0x1400e850f
mov r15d, r9d
mov rax, qword [rsp + 0x78]
movsx r10d, word [rax + rdx*2]
mov r9d, r10d
add r9d, r15d
mov rax, qword [rsp + 0x70]
movzx eax, word [rax + rdx*2]
test eax, eax
je 0x1400e8410
cmp r10w, 0x11
mov qword [rsp + 0x68], rdx
mov dword [rsp + 0x54], r9d
mov dword [rsp + 0x50], r10d
jge 0x1400e8430
mov dword [rsp + 0x3c], r8d
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rcx]
mov qword [rsp + 0x48], rdx
mov rdx, qword [rcx + 8]
mov qword [rsp + 0x60], rdx
mov rsi, qword [rcx + 0x10]
mov rdi, qword [rcx + 0x18]
mov r14, qword [rcx + 0x20]
mov r12, qword [rcx + 0x28]
movsxd r8, r13d
lea rcx, [rsp + r8*2]
add rcx, 0x740
shl r8, 5
add r8, rsp
add r8, 0xb900
vxorps xmm1, xmm1, xmm1
xor r11d, r11d
nop
xor edx, edx
tzcnt edx, eax
mov r9, r15
add r15d, edx
movsxd r15, r15d
vmovss xmm2, dword [r14 + r15*4]
vinsertps xmm2, xmm2, dword [r12 + r15*4], 0x1c
mov r10, qword [rsp + 0x48]
vmovss xmm3, dword [r10 + r15*4]
mov r10, qword [rsp + 0x60]
vinsertps xmm3, xmm3, dword [r10 + r15*4], 0x10
vinsertps xmm3, xmm3, dword [rsi + r15*4], 0x20
vinsertps xmm3, xmm3, dword [rdi + r15*4], 0x30
movzx r15d, word [rbx + r15*2]
mov word [rcx + r11*2], r15w
mov r15d, 1
vinsertf128 ymm2, ymm3, xmm2, 1
vmulps ymm2, ymm6, ymm2
vmovups ymmword [r8], ymm2
shlx edx, r15d, edx
mov r15, r9
add r8, 0x20
inc r11
xor eax, edx
vaddps ymm1, ymm1, ymm2
jne 0x1400e8370
add r13d, r11d
mov r14, qword [rsp + 0x58]
mov r8d, dword [rsp + 0x3c]
mov rdx, qword [rsp + 0x68]
mov r9d, dword [rsp + 0x54]
mov r10d, dword [rsp + 0x50]
jmp 0x1400e82b1
movsxd rax, r8d
shl rax, 6
test ecx, ecx
je 0x1400e84e7
add word [rsp + rax + 0xfe2], r10w
jmp 0x1400e8505
mov dword [rsp + 0x48], ecx
mov rcx, qword [rsp + 0x40]
mov r12, qword [rcx]
mov rax, qword [rcx + 8]
mov r14, qword [rcx + 0x10]
mov rsi, qword [rcx + 0x18]
mov rdi, qword [rcx + 0x20]
mov r10, qword [rcx + 0x28]
movsxd r15, r15d
movsxd r9, r9d
vxorps xmm2, xmm2, xmm2
xor r11d, r11d
vxorps xmm1, xmm1, xmm1
jmp 0x1400e847c
inc r15
cmp r15, r9
jge 0x1400e8290
vmovss xmm3, dword [rdi + r15*4]
vinsertps xmm3, xmm3, dword [r10 + r15*4], 0x1c
vmovss xmm4, dword [r12 + r15*4]
vinsertps xmm4, xmm4, dword [rax + r15*4], 0x10
vinsertps xmm4, xmm4, dword [r14 + r15*4], 0x20
vinsertps xmm4, xmm4, dword [rsi + r15*4], 0x30
vinsertf128 ymm3, ymm4, xmm3, 1
vcmpneqps ymm4, ymm3, ymm2
vtestps ymm4, ymm4
je 0x1400e8470
movzx ecx, word [rbx + r15*2]
vmulps ymm3, ymm6, 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 0x1400e8470
lea rcx, [rsp + 0xfc0]
vmovups ymmword [rax + rcx + 0x40], ymm0
inc r8d
mov word [rax + rcx + 0x60], 0
mov word [rax + rcx + 0x62], r10w
mov ecx, 1
jmp 0x1400e82d7
mov dword [rsp + 0x3c], r8d
vbroadcastss ymm0, dword [0x140225680]
vbroadcastss ymm1, dword [0x140221d94]
vfmadd213ps ymm0, ymm7, ymm1
vsubps ymm1, ymm1, ymm7
vxorps xmm2, xmm2, xmm2
xor eax, eax
xor r13d, r13d
xor r12d, r12d
jmp 0x1400e854c
inc rax
cmp r12d, r14d
jge 0x1400e8853
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 0x1400e8600
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 0x1400e8590
movsxd r14, r13d
cmp r8d, 2
mov r15d, 1
cmovge r15d, r8d
cmp r8w, 2
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x60], r14
jge 0x1400e8660
xor ecx, ecx
jmp 0x1400e8733
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 0x1400e8610
jmp 0x1400e8540
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 0x1400e8690
test r15b, 1
je 0x1400e8799
mov rdi, qword [rsp + 0x60]
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 r14, qword [rsp + 0x40]
mov rcx, qword [r14]
mov r10, qword [r14 + 8]
mov r11, qword [r14 + 0x10]
mov rsi, qword [r14 + 0x18]
mov rdi, qword [r14 + 0x20]
mov r14, qword [r14 + 0x28]
mov r13, qword [rsp + 0x48]
nop word cs:[rax + rax]
movzx r15d, byte [rbx + rdx*2]
shr r15d, 2
shl r15, 5
vsubps ymm3, ymm2, ymmword [rsp + r15 + 0xc0]
movzx r15d, byte [rbx + rdx*2 + 1]
shr r15d, 2
shl r15, 5
vsubps ymm3, ymm3, ymmword [rsp + r15 + 0xc0]
vmovss xmm4, dword [rdi + rdx*4]
vinsertps xmm4, xmm4, dword [r14 + rdx*4], 0x1c
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 0x1400e87d0
add r13d, r8d
mov r14, qword [rsp + 0x58]
jmp 0x1400e8540
lea rcx, [rsp + 0xc0]
mov r8d, 0x680
xor edx, edx
vzeroupper
call fcn.1401bb600
mov eax, dword [rsp + 0x3c]
test eax, eax
js 0x1400e8aba
mov eax, eax
vxorps xmm0, xmm0, xmm0
jmp 0x1400e889c
vaddps ymm0, ymm0, ymmword [rsp + rcx + 0xfc0]
mov r13d, edx
lea rcx, [rax - 1]
test rax, rax
mov rax, rcx
jle 0x1400e8aba
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 0x1400e88d0
movzx r8d, word [rsp + rcx + 0xfe0]
test r8w, r8w
jle 0x1400e888c
mov edx, r13d
sub edx, r8d
cmp r8d, 1
jne 0x1400e8950
xor r10d, r10d
xor r9d, r9d
test r8b, 1
je 0x1400e8880
jmp 0x1400e8a50
mov r9d, r8d
and r9d, 0xfffffffe
movsxd r11, r13d
add r11, r11
sub r11, r8
sub r11, r8
lea r10, [rsp + 0x743]
add r11, r10
mov r10d, r8d
neg r10d
lea esi, [r10 + r13]
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 0x1400e8980
mov r9d, r10d
mov r14, qword [rsp + 0x58]
test r8b, 1
je 0x1400e8880
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 0x1400e8880
lea eax, [r14 + 7]
test r14d, r14d
cmovns eax, r14d
sar eax, 3
cmp r14d, 8
jl 0x1400e8c05
mov r11, qword [rsp + 0x40]
mov rcx, qword [r11]
mov rdx, qword [r11 + 8]
mov r8, qword [r11 + 0x10]
mov r9, qword [r11 + 0x18]
mov r10, qword [r11 + 0x20]
mov r11, qword [r11 + 0x28]
mov esi, eax
xor edi, edi
nop word cs:[rax + rax]
vmovups ymm0, ymmword [rsp + rdi*8 + 0x31c0]
vunpcklps ymm0, ymm0, ymmword [rsp + rdi*8 + 0x31e0]
vmovups xmm1, xmmword [rsp + rdi*8 + 0x31c0]
vunpckhps xmm1, xmm1, xmmword [rsp + rdi*8 + 0x31e0]
vmovups xmm2, xmmword [rsp + rdi*8 + 0x3200]
vmovups ymm3, ymmword [rsp + rdi*8 + 0x3200]
vunpcklps ymm3, ymm3, ymmword [rsp + rdi*8 + 0x3220]
vmovups xmm4, xmmword [rsp + rdi*8 + 0x3240]
vunpckhps xmm2, xmm2, xmmword [rsp + rdi*8 + 0x3220]
vmovups ymm5, ymmword [rsp + rdi*8 + 0x3240]
vunpcklps ymm5, ymm5, ymmword [rsp + rdi*8 + 0x3260]
vunpckhps xmm4, xmm4, xmmword [rsp + rdi*8 + 0x3260]
vmovups ymm6, ymmword [rsp + rdi*8 + 0x3280]
vunpcklps ymm6, ymm6, ymmword [rsp + rdi*8 + 0x32a0]
vmovups xmm7, xmmword [rsp + rdi*8 + 0x3280]
vunpckhps xmm7, xmm7, xmmword [rsp + rdi*8 + 0x32a0]
vunpcklpd ymm8, ymm0, ymm3
vunpckhpd ymm0, ymm0, ymm3
vmovlhps xmm3, xmm1, xmm2
vunpckhpd xmm1, xmm1, xmm2
vunpcklpd ymm2, ymm5, ymm6
vunpckhpd ymm5, ymm5, ymm6
vinsertf128 ymm6, ymm8, xmm2, 1
vmovups ymmword [rcx + rdi], ymm6
vmovlhps xmm6, xmm4, xmm7
vunpckhpd xmm4, xmm4, xmm7
vinsertf128 ymm7, ymm0, xmm5, 1
vmovups ymmword [rdx + rdi], ymm7
vmovups xmmword [r8 + rdi + 0x10], xmm6
vmovups xmmword [r8 + rdi], xmm3
vmovups xmmword [r9 + rdi + 0x10], xmm4
vmovups xmmword [r9 + rdi], xmm1
vperm2f128 ymm1, ymm8, ymm2, 0x31
vmovups ymmword [r10 + rdi], ymm1
vperm2f128 ymm0, ymm0, ymm5, 0x31
vmovups ymmword [r11 + rdi], ymm0
add rdi, 0x20
dec rsi
jne 0x1400e8b00
shl eax, 3
cmp eax, r14d
jge 0x1400e8d99
mov r9, qword [rsp + 0x40]
mov rcx, qword [r9]
mov rdx, qword [r9 + 8]
mov r8, qword [r9 + 0x10]
mov r10, qword [r9 + 0x18]
mov r11, qword [r9 + 0x20]
mov rsi, qword [r9 + 0x28]
movsxd r9, eax
mov rax, r9
not rax
test r14b, 1
je 0x1400e8ca1
mov rdi, r9
shl rdi, 5
vmovss xmm0, dword [rsp + rdi + 0x31c0]
vmovss dword [rcx + r9*4], xmm0
vmovss xmm0, dword [rsp + rdi + 0x31c4]
vmovss dword [rdx + r9*4], xmm0
vmovss xmm0, dword [rsp + rdi + 0x31c8]
vmovss dword [r8 + r9*4], xmm0
vmovss xmm0, dword [rsp + rdi + 0x31cc]
vmovss dword [r10 + r9*4], xmm0
vmovss xmm0, dword [rsp + rdi + 0x31d0]
vmovss dword [r11 + r9*4], xmm0
vmovss xmm0, dword [rsp + rdi + 0x31d4]
vmovss dword [rsi + r9*4], xmm0
or r9, 1
add rax, r14
je 0x1400e8d99
sub r14, r9
lea rax, [rcx + r9*4]
add rax, 4
lea rcx, [rdx + r9*4 + 4]
lea rdx, [r8 + r9*4 + 4]
lea r8, [r10 + r9*4]
add r8, 4
lea r10, [r11 + r9*4]
add r10, 4
lea r11, [rsi + r9*4]
add r11, 4
shl r9, 5
lea rsi, [rsp + 0x31c0]
add r9, rsi
add r9, 0x34
xor esi, esi
nop dword [rax]
vmovss xmm0, dword [r9 + rsi*8 - 0x34]
vmovss dword [rax + rsi - 4], xmm0
vmovss xmm0, dword [r9 + rsi*8 - 0x30]
vmovss dword [rcx + rsi - 4], xmm0
vmovss xmm0, dword [r9 + rsi*8 - 0x2c]
vmovss dword [rdx + rsi - 4], xmm0
vmovss xmm0, dword [r9 + rsi*8 - 0x28]
vmovss dword [r8 + rsi - 4], xmm0
vmovss xmm0, dword [r9 + rsi*8 - 0x24]
vmovss dword [r10 + rsi - 4], xmm0
vmovss xmm0, dword [r9 + rsi*8 - 0x20]
vmovss dword [r11 + rsi - 4], xmm0
vmovss xmm0, dword [r9 + rsi*8 - 0x14]
vmovss dword [rax + rsi], xmm0
vmovss xmm0, dword [r9 + rsi*8 - 0x10]
vmovss dword [rcx + rsi], xmm0
vmovss xmm0, dword [r9 + rsi*8 - 0xc]
vmovss dword [rdx + rsi], xmm0
vmovss xmm0, dword [r9 + rsi*8 - 8]
vmovss dword [r8 + rsi], xmm0
vmovss xmm0, dword [r9 + rsi*8 - 4]
vmovss dword [r10 + rsi], xmm0
vmovss xmm0, dword [r9 + rsi*8]
vmovss dword [r11 + rsi], xmm0
add rsi, 8
add r14, 0xfffffffffffffffe
jne 0x1400e8cf0
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