Function at 0x14021ab38
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x448]
sub rsp, 0x510
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
movaps xmmword [rax - 0x68], xmm8
movaps xmmword [rax - 0x78], xmm9
movaps xmmword [rax - 0x88], xmm10
movaps xmmword [rax - 0x98], xmm11
movaps xmmword [rax - 0xa8], xmm12
movaps xmmword [rax - 0xb8], xmm13
movaps xmmword [rax - 0xc8], xmm14
movaps xmmword [rax - 0xd8], xmm15
mov rax, qword [0x14046e3c8]
xor rax, rsp
mov qword [rbp + 0x360], rax
mov r15, rcx
mov qword [rsp + 0x50], r8
sub rdx, rcx
mov rax, r15
lea rcx, [rsp + 0x60]
sub rcx, r15
test r9d, r9d
je 0x14021abf7
sub r8, r15
mov r9d, 0x40
movdqu xmm1, xmmword [rax + rdx]
pxor xmm1, xmmword [rax]
movdqu xmmword [rax], xmm1
movdqu xmm0, xmmword [r8 + rax]
pxor xmm0, xmm1
movdqu xmmword [rcx + rax], xmm0
lea rax, [rax + 0x10]
sub r9, 1
jne 0x14021abcf
jmp 0x14021ac19
mov r8d, 0x40
movdqu xmm0, xmmword [rax + rdx]
pxor xmm0, xmmword [rax]
movdqu xmmword [rax], xmm0
movdqu xmmword [rcx + rax], xmm0
lea rax, [rax + 0x10]
sub r8, 1
jne 0x14021abfd
movdqa xmm15, xmmword [0x14033c6e0]
xor r13d, r13d
lea eax, [r13*8]
lea r14d, [rax + 2]
mov r11d, eax
add r14, r14
mov r8d, eax
add r11, r11
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x20]
movdqu xmm7, xmmword [r15 + r14*8]
movdqu xmm0, xmmword [r15 + r11*8]
movdqa xmmword [rsp + 0x40], xmm7
movdqa xmmword [rsp + 0x20], xmm0
call fcn.14021ab1c
movdqa xmm14, xmm0
movdqu xmmword [r15 + r11*8], xmm0
lea esi, [rax + 3]
lea r10d, [rax + 1]
add rsi, rsi
add r10, r10
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x40]
movdqu xmm12, xmmword [r15 + rsi*8]
movdqu xmm0, xmmword [r15 + r10*8]
movdqa xmmword [rsp + 0x20], xmm12
movdqa xmmword [rsp + 0x40], xmm0
call fcn.14021ab1c
movdqa xmm13, xmm0
movdqu xmmword [r15 + r10*8], xmm0
movdqa xmm1, xmm14
lea ebx, [rax + 7]
add rbx, rbx
lea edi, [rax + 6]
add rdi, rdi
lea r9d, [rax + 4]
add r9, r9
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x40]
pxor xmm0, xmmword [r15 + rbx*8]
pxor xmm1, xmmword [r15 + rdi*8]
pshufd xmm11, xmm0, 0xb1
movdqu xmm0, xmmword [r15 + r9*8]
pshufd xmm9, xmm1, 0xb1
movdqa xmmword [rsp + 0x40], xmm0
movdqu xmmword [r15 + rdi*8], xmm9
movdqu xmmword [r15 + rbx*8], xmm11
movdqa xmmword [rsp + 0x20], xmm9
call fcn.14021ab1c
add r8d, 5
movdqu xmmword [r15 + r9*8], xmm0
add r8, r8
movdqa xmmword [rsp + 0x20], xmm11
lea rdx, [rsp + 0x20]
movdqa xmm10, xmm0
lea rcx, [rsp + 0x40]
movdqu xmm1, xmmword [r15 + r8*8]
movdqa xmmword [rsp + 0x40], xmm1
call fcn.14021ab1c
movdqa xmm8, xmm10
movdqu xmmword [r15 + r8*8], xmm0
pxor xmm8, xmm7
movdqa xmmword [rsp + 0x40], xmm14
movdqa xmm7, xmm0
lea rdx, [rsp + 0x20]
pshufb xmm8, xmm15
lea rcx, [rsp + 0x40]
pxor xmm7, xmm12
movdqa xmm6, xmm0
pshufb xmm7, xmm15
movdqu xmmword [r15 + r14*8], xmm8
movdqu xmmword [r15 + rsi*8], xmm7
movdqa xmmword [rsp + 0x20], xmm8
call fcn.14021ab1c
lea rdx, [rsp + 0x20]
movdqu xmmword [r15 + r11*8], xmm0
lea rcx, [rsp + 0x40]
movdqa xmmword [rsp + 0x20], xmm7
movdqa xmm14, xmm0
movdqa xmmword [rsp + 0x40], xmm13
call fcn.14021ab1c
movdqa xmm13, xmm0
movdqu xmmword [r15 + r10*8], xmm0
movdqa xmm0, xmm14
movdqa xmmword [rsp + 0x30], xmm10
pxor xmm0, xmm9
lea rdx, [rsp + 0x20]
pshufb xmm0, xmmword [0x14033c6d0]
lea rcx, [rsp + 0x30]
movdqa xmm9, xmm13
pxor xmm9, xmm11
movdqa xmmword [rsp + 0x40], xmm0
pshufb xmm9, xmmword [0x14033c6d0]
movdqu xmmword [r15 + rdi*8], xmm0
movdqu xmmword [r15 + rbx*8], xmm9
movdqa xmmword [rsp + 0x20], xmm0
call fcn.14021ab1c
lea rdx, [rsp + 0x30]
movdqu xmmword [r15 + r9*8], xmm0
lea rcx, [rsp + 0x20]
movdqa xmmword [rsp + 0x30], xmm9
movdqa xmm15, xmm0
movdqa xmmword [rsp + 0x20], xmm6
call fcn.14021ab1c
movdqa xmm2, xmm0
movdqu xmmword [r15 + r8*8], xmm0
pxor xmm2, xmm7
movdqa xmmword [rsp + 0x20], xmm14
movdqa xmm12, xmm2
lea rdx, [rsp + 0x30]
paddq xmm12, xmm2
lea rcx, [rsp + 0x20]
movdqa xmm10, xmm0
psrlq xmm2, 0x3f
movdqa xmm0, xmmword [rsp + 0x40]
pxor xmm12, xmm2
movdqa xmm1, xmm15
movdqa xmm6, xmm9
pxor xmm1, xmm8
palignr xmm6, xmm0, 8
movdqa xmm3, xmm1
palignr xmm0, xmm9, 8
paddq xmm3, xmm1
movdqa xmmword [rsp + 0x40], xmm0
psrlq xmm1, 0x3f
pxor xmm3, xmm1
movdqu xmmword [r15 + rdi*8], xmm0
movdqa xmm11, xmm3
movdqu xmmword [r15 + rbx*8], xmm6
palignr xmm11, xmm12, 8
palignr xmm12, xmm3, 8
movdqu xmmword [r15 + r14*8], xmm12
movdqa xmmword [rsp + 0x30], xmm12
movdqu xmmword [r15 + rsi*8], xmm11
call fcn.14021ab1c
lea rdx, [rsp + 0x30]
movdqu xmmword [r15 + r11*8], xmm0
lea rcx, [rsp + 0x20]
movdqa xmmword [rsp + 0x30], xmm11
movdqa xmm8, xmm0
movdqa xmmword [rsp + 0x20], xmm13
call fcn.14021ab1c
movdqa xmm7, xmm0
movdqu xmmword [r15 + r10*8], xmm0
movdqa xmm1, xmm8
movdqa xmmword [rsp + 0x20], xmm10
pxor xmm1, xmmword [rsp + 0x40]
lea rdx, [rsp + 0x30]
pshufd xmm0, xmm1, 0xb1
lea rcx, [rsp + 0x20]
movdqa xmm1, xmm7
movdqa xmmword [rsp + 0x40], xmm0
pxor xmm1, xmm6
movdqu xmmword [r15 + rdi*8], xmm0
pshufd xmm14, xmm1, 0xb1
movdqu xmmword [r15 + rbx*8], xmm14
movdqa xmmword [rsp + 0x30], xmm0
call fcn.14021ab1c
movdqa xmm10, xmm0
movdqu xmmword [r15 + r8*8], xmm0
movdqa xmmword [rsp + 0x30], xmm14
lea rdx, [rsp + 0x30]
movdqa xmmword [rsp + 0x20], xmm15
lea rcx, [rsp + 0x20]
call fcn.14021ab1c
movdqa xmm15, xmmword [0x14033c6e0]
lea rdx, [rsp + 0x30]
movdqa xmm13, xmm10
movdqu xmmword [r15 + r9*8], xmm0
pxor xmm13, xmm12
movdqa xmmword [rsp + 0x20], xmm8
movdqa xmm12, xmm0
lea rcx, [rsp + 0x20]
pshufb xmm13, xmm15
pxor xmm12, xmm11
movdqa xmm9, xmm0
pshufb xmm12, xmm15
movdqu xmmword [r15 + r14*8], xmm13
movdqu xmmword [r15 + rsi*8], xmm12
movdqa xmmword [rsp + 0x30], xmm13
call fcn.14021ab1c
lea rdx, [rsp + 0x30]
movdqu xmmword [r15 + r11*8], xmm0
lea rcx, [rsp + 0x20]
movdqa xmmword [rsp + 0x30], xmm12
movdqa xmm6, xmm0
movdqa xmmword [rsp + 0x20], xmm7
call fcn.14021ab1c
movdqa xmm7, xmmword [rsp + 0x40]
lea rdx, [rsp + 0x30]
pxor xmm14, xmm0
movdqu xmmword [r15 + r10*8], xmm0
pshufb xmm14, xmmword [0x14033c6d0]
lea rcx, [rsp + 0x20]
pxor xmm7, xmm6
movdqa xmmword [rsp + 0x20], xmm10
pshufb xmm7, xmmword [0x14033c6d0]
movdqu xmmword [r15 + rbx*8], xmm14
movdqu xmmword [r15 + rdi*8], xmm7
movdqa xmmword [rsp + 0x30], xmm7
call fcn.14021ab1c
lea rdx, [rsp + 0x30]
movdqu xmmword [r15 + r8*8], xmm0
lea rcx, [rsp + 0x20]
movdqa xmmword [rsp + 0x30], xmm14
movdqa xmm6, xmm0
movdqa xmmword [rsp + 0x20], xmm9
call fcn.14021ab1c
pxor xmm12, xmm0
movdqu xmmword [r15 + r9*8], xmm0
pxor xmm13, xmm6
movdqa xmm1, xmm12
paddq xmm1, xmm12
movdqa xmm2, xmm13
paddq xmm2, xmm13
psrlq xmm12, 0x3f
pxor xmm1, xmm12
psrlq xmm13, 0x3f
pxor xmm2, xmm13
inc r13d
movdqa xmm0, xmm2
palignr xmm0, xmm1, 8
movdqu xmmword [r15 + r14*8], xmm0
movdqa xmm0, xmm14
palignr xmm0, xmm7, 8
palignr xmm7, xmm14, 8
palignr xmm1, xmm2, 8
movdqu xmmword [r15 + rbx*8], xmm7
movdqu xmmword [r15 + rsi*8], xmm1
movdqu xmmword [r15 + rdi*8], xmm0
cmp r13d, 8
jb 0x14021ac25
mov r13, qword [rsp + 0x50]
lea rax, [r15 + 0x280]
mov r12d, 0x40
mov r8, r15
lea r9d, [r12 - 0x38]
movdqu xmm0, xmmword [r8]
lea rdx, [rsp + 0x30]
movdqu xmm12, xmmword [rax - 0x180]
lea rcx, [rsp + 0x20]
movdqa xmmword [rsp + 0x30], xmm12
movdqa xmmword [rsp + 0x20], xmm0
call fcn.14021ab1c
movdqu xmm1, xmmword [rax - 0x200]
lea rdx, [rsp + 0x30]
movdqu xmm15, xmmword [rax - 0x100]
lea rcx, [rsp + 0x20]
movdqa xmmword [rsp + 0x20], xmm1
movdqa xmm11, xmm0
movdqu xmmword [r8], xmm0
movdqa xmmword [rsp + 0x30], xmm15
call fcn.14021ab1c
movdqa xmm1, xmm11
movdqu xmmword [rax - 0x200], xmm0
pxor xmm1, xmmword [rax + 0x80]
lea rdx, [rsp + 0x30]
pshufd xmm8, xmm1, 0xb1
lea rcx, [rsp + 0x20]
movdqa xmm1, xmm0
movdqu xmmword [rax + 0x80], xmm8
pxor xmm1, xmmword [rax + 0x100]
movdqa xmm10, xmm0
movdqu xmm0, xmmword [rax - 0x80]
pshufd xmm9, xmm1, 0xb1
movdqu xmmword [rax + 0x100], xmm9
movdqa xmmword [rsp + 0x30], xmm8
movdqa xmmword [rsp + 0x20], xmm0
call fcn.14021ab1c
movdqu xmm1, xmmword [rax]
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x20]
movdqa xmmword [rsp + 0x20], xmm1
movdqa xmm7, xmm0
movdqu xmmword [rax - 0x80], xmm0
movdqa xmmword [rsp + 0x30], xmm9
call fcn.14021ab1c
pxor xmm15, xmm0
movdqu xmmword [rax], xmm0
pshufb xmm15, xmmword [0x14033c6e0]
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x20]
pxor xmm12, xmm7
movdqa xmmword [rsp + 0x20], xmm11
pshufb xmm12, xmmword [0x14033c6e0]
movdqu xmmword [rax - 0x100], xmm15
movdqa xmm6, xmm0
movdqa xmmword [rsp + 0x40], xmm12
movdqu xmmword [rax - 0x180], xmm12
movdqa xmmword [rsp + 0x30], xmm12
call fcn.14021ab1c
lea rdx, [rsp + 0x30]
movdqu xmmword [r8], xmm0
lea rcx, [rsp + 0x20]
movdqa xmmword [rsp + 0x30], xmm15
movdqa xmm12, xmm0
movdqa xmmword [rsp + 0x20], xmm10
call fcn.14021ab1c
movdqa xmm14, xmm12
movdqu xmmword [rax - 0x200], xmm0
pxor xmm14, xmm8
movdqa xmmword [rsp + 0x20], xmm7
pshufb xmm14, xmmword [0x14033c6d0]
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x20]
movdqa xmm8, xmm0
movdqa xmm10, xmm0
pxor xmm8, xmm9
movdqu xmmword [rax + 0x80], xmm14
pshufb xmm8, xmmword [0x14033c6d0]
movdqa xmmword [rsp + 0x30], xmm14
movdqu xmmword [rax + 0x100], xmm8
call fcn.14021ab1c
movdqa xmm13, xmm0
movdqu xmmword [rax - 0x80], xmm0
movdqa xmmword [rsp + 0x30], xmm8
lea rdx, [rsp + 0x30]
movdqa xmmword [rsp + 0x20], xmm6
lea rcx, [rsp + 0x20]
call fcn.14021ab1c
movdqa xmm9, xmm0
movdqu xmmword [rax], xmm0
movdqa xmm0, xmmword [rsp + 0x40]
lea rdx, [rsp + 0x30]
pxor xmm0, xmm13
movdqa xmmword [rsp + 0x20], xmm12
movdqa xmm1, xmm0
lea rcx, [rsp + 0x20]
paddq xmm1, xmm0
pxor xmm15, xmm9
psrlq xmm0, 0x3f
movdqa xmm6, xmm8
pxor xmm1, xmm0
palignr xmm6, xmm14, 8
movdqa xmm0, xmm15
palignr xmm14, xmm8, 8
paddq xmm0, xmm15
movdqu xmmword [rax + 0x80], xmm14
movdqa xmm11, xmm1
psrlq xmm15, 0x3f
pxor xmm0, xmm15
movdqu xmmword [rax + 0x100], xmm6
palignr xmm11, xmm0, 8
palignr xmm0, xmm1, 8
movdqa xmmword [rsp + 0x40], xmm0
movdqu xmmword [rax - 0x180], xmm0
movdqa xmmword [rsp + 0x30], xmm0
movdqu xmmword [rax - 0x100], xmm11
call fcn.14021ab1c
lea rdx, [rsp + 0x30]
movdqu xmmword [r8], xmm0
lea rcx, [rsp + 0x20]
movdqa xmmword [rsp + 0x30], xmm11
movdqa xmm8, xmm0
movdqa xmmword [rsp + 0x20], xmm10
call fcn.14021ab1c
movdqa xmm1, xmm0
movdqu xmmword [rax - 0x200], xmm0
pxor xmm14, xmm8
movdqa xmmword [rsp + 0x20], xmm9
pshufd xmm15, xmm14, 0xb1
lea rdx, [rsp + 0x30]
pxor xmm1, xmm6
movdqu xmmword [rax + 0x80], xmm15
pshufd xmm14, xmm1, 0xb1
lea rcx, [rsp + 0x20]
movdqu xmmword [rax + 0x100], xmm14
movdqa xmm7, xmm0
movdqa xmmword [rsp + 0x30], xmm15
call fcn.14021ab1c
lea rdx, [rsp + 0x30]
movdqu xmmword [rax], xmm0
lea rcx, [rsp + 0x20]
movdqa xmmword [rsp + 0x30], xmm14
movdqa xmm10, xmm0
movdqa xmmword [rsp + 0x20], xmm13
call fcn.14021ab1c
movdqa xmm13, xmmword [rsp + 0x40]
lea rdx, [rsp + 0x30]
movdqa xmm12, xmm0
movdqu xmmword [rax - 0x80], xmm0
pxor xmm12, xmm11
movdqa xmmword [rsp + 0x20], xmm8
pshufb xmm12, xmmword [0x14033c6e0]
lea rcx, [rsp + 0x20]
pxor xmm13, xmm10
movdqa xmm9, xmm0
pshufb xmm13, xmmword [0x14033c6e0]
movdqu xmmword [rax - 0x100], xmm12
movdqu xmmword [rax - 0x180], xmm13
movdqa xmmword [rsp + 0x30], xmm13
call fcn.14021ab1c
lea rdx, [rsp + 0x30]
movdqu xmmword [r8], xmm0
lea rcx, [rsp + 0x20]
movdqa xmmword [rsp + 0x30], xmm12
movdqa xmm6, xmm0
movdqa xmmword [rsp + 0x20], xmm7
call fcn.14021ab1c
pxor xmm14, xmm0
movdqu xmmword [rax - 0x200], xmm0
pshufb xmm14, xmmword [0x14033c6d0]
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x20]
pxor xmm15, xmm6
movdqa xmmword [rsp + 0x20], xmm10
pshufb xmm15, xmmword [0x14033c6d0]
movdqu xmmword [rax + 0x100], xmm14
movdqu xmmword [rax + 0x80], xmm15
movdqa xmmword [rsp + 0x30], xmm15
call fcn.14021ab1c
lea rdx, [rsp + 0x30]
movdqu xmmword [rax], xmm0
lea rcx, [rsp + 0x20]
movdqa xmmword [rsp + 0x30], xmm14
movdqa xmm6, xmm0
movdqa xmmword [rsp + 0x20], xmm9
call fcn.14021ab1c
movdqu xmmword [rax - 0x80], xmm0
pxor xmm12, xmm0
lea rax, [rax + 0x10]
pxor xmm13, xmm6
lea r8, [r8 + 0x10]
movdqa xmm2, xmm13
paddq xmm2, xmm13
movdqa xmm1, xmm12
psrlq xmm13, 0x3f
paddq xmm1, xmm12
psrlq xmm12, 0x3f
pxor xmm2, xmm13
pxor xmm1, xmm12
movdqa xmm0, xmm2
palignr xmm0, xmm1, 8
movdqu xmmword [rax - 0x190], xmm0
movdqa xmm0, xmm14
palignr xmm0, xmm15, 8
palignr xmm15, xmm14, 8
palignr xmm1, xmm2, 8
movdqu xmmword [rax + 0xf0], xmm15
movdqu xmmword [rax - 0x110], xmm1
movdqu xmmword [rax + 0x70], xmm0
sub r9, 1
jne 0x14021b124
lea rax, [rsp + 0x60]
sub rax, r15
sub r13, r15
movdqu xmm0, xmmword [r15 + rax]
pxor xmm0, xmmword [r15]
movdqu xmmword [r15], xmm0
movdqu xmmword [r15 + r13], xmm0
lea r15, [r15 + 0x10]
sub r12, 1
jne 0x14021b601
mov rcx, qword [rbp + 0x360]
xor rcx, rsp
call fcn.1400106c0
lea r11, [rsp + 0x510]
mov rbx, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
movaps xmm14, xmmword [r11 - 0x90]
movaps xmm15, xmmword [r11 - 0xa0]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret