Function at 0x180021250
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
sub rsp, 0x4b0
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 [0x180081168]
xor rax, rsp
mov qword [rsp + 0x400], rax
xor r14d, r14d
lea r15, [rsp]
mov r10d, r14d
sub r15, rcx
mov r12, r8
mov r9, rcx
mov eax, r10d
lea r9, [r9 + 0x10]
shl eax, 4
inc r10d
movdqu xmm1, xmmword [rax + rdx]
pxor xmm1, xmmword [r9 - 0x10]
movdqu xmmword [r9 - 0x10], xmm1
movdqu xmm0, xmmword [rax + r8]
pxor xmm0, xmm1
movdqu xmmword [r15 + r9 - 0x10], xmm0
cmp r10d, 0x40
jb 0x1800212d0
movdqa xmm14, xmmword [0x18005ddf0]
mov r13d, r14d
movdqa xmm15, xmmword [0x18005dde0]
nop word [rax + rax]
lea r8d, [r13*8]
lea ebp, [r8 + 2]
mov r10d, r8d
add r10, r10
lea esi, [r8 + 3]
add rbp, rbp
lea r9d, [r8 + 1]
add r9, r9
lea ebx, [r8 + 6]
add rsi, rsi
lea r11d, [r8 + 4]
add r11, r11
lea edi, [r8 + 7]
movdqu xmm4, xmmword [rcx + rbp*8]
lea edx, [r8 + 5]
movdqa xmm6, xmm4
movdqa xmm0, xmm4
paddq xmm0, xmmword [rcx + r10*8]
add rbx, rbx
pmuludq xmm6, xmmword [rcx + r10*8]
add rdi, rdi
movdqu xmm8, xmmword [rcx + rsi*8]
add rdx, rdx
movdqa xmm5, xmm8
pmuludq xmm5, xmmword [rcx + r9*8]
paddq xmm6, xmm6
paddq xmm6, xmm0
movdqa xmm0, xmm8
paddq xmm0, xmmword [rcx + r9*8]
movdqa xmm12, xmm6
paddq xmm5, xmm5
paddq xmm5, xmm0
movdqu xmm0, xmmword [rcx + rbx*8]
pxor xmm0, xmm6
pshufd xmm11, xmm0, 0xb1
movdqu xmm0, xmmword [rcx + rdi*8]
movdqa xmm1, xmm11
pmuludq xmm1, xmmword [rcx + r11*8]
pxor xmm0, xmm5
pshufd xmm9, xmm0, 0xb1
movdqa xmm3, xmm11
paddq xmm3, xmmword [rcx + r11*8]
movdqa xmm2, xmm9
pmuludq xmm2, xmmword [rcx + rdx*8]
movdqa xmm0, xmm9
paddq xmm0, xmmword [rcx + rdx*8]
paddq xmm1, xmm1
paddq xmm3, xmm1
movdqa xmm1, xmm3
movdqa xmm7, xmm3
pxor xmm1, xmm4
paddq xmm2, xmm2
paddq xmm2, xmm0
pshufb xmm1, xmm14
pxor xmm8, xmm2
movdqa xmm4, xmm2
paddq xmm6, xmm1
pmuludq xmm12, xmm1
pshufb xmm8, xmm14
paddq xmm12, xmm12
paddq xmm12, xmm6
movdqa xmm6, xmm5
pmuludq xmm6, xmm8
paddq xmm5, xmm8
pxor xmm11, xmm12
pshufb xmm11, xmm15
paddq xmm6, xmm6
pmuludq xmm7, xmm11
paddq xmm6, xmm5
pxor xmm9, xmm6
paddq xmm3, xmm11
pshufb xmm9, xmm15
paddq xmm7, xmm7
pmuludq xmm4, xmm9
paddq xmm7, xmm3
paddq xmm2, xmm9
movdqa xmm0, xmm7
pxor xmm0, xmm1
paddq xmm4, xmm4
paddq xmm4, xmm2
pxor xmm8, xmm4
movdqa xmm1, xmm0
movdqa xmm2, xmm6
paddq xmm1, xmm0
movdqa xmm10, xmm8
psrlq xmm0, 0x3f
paddq xmm10, xmm8
pxor xmm1, xmm0
psrlq xmm8, 0x3f
pxor xmm10, xmm8
movdqa xmm3, xmm1
palignr xmm3, xmm10, 8
movdqa xmm0, xmm12
palignr xmm10, xmm1, 8
paddq xmm6, xmm3
pmuludq xmm0, xmm10
paddq xmm12, xmm10
pmuludq xmm2, xmm3
movdqa xmm1, xmm9
palignr xmm1, xmm11, 8
palignr xmm11, xmm9, 8
paddq xmm0, xmm0
paddq xmm12, xmm0
paddq xmm2, xmm2
paddq xmm2, xmm6
pxor xmm11, xmm12
movdqa xmm0, xmm2
pshufd xmm9, xmm11, 0xb1
pxor xmm0, xmm1
movdqa xmm5, xmm9
pshufd xmm8, xmm0, 0xb1
movdqa xmm0, xmm9
paddq xmm0, xmm4
pmuludq xmm5, xmm4
movdqa xmm6, xmm8
pmuludq xmm6, xmm7
paddq xmm5, xmm5
paddq xmm5, xmm0
movdqa xmm0, xmm8
paddq xmm0, xmm7
pxor xmm10, xmm5
pshufb xmm10, xmm14
paddq xmm6, xmm6
paddq xmm6, xmm0
movdqa xmm0, xmm12
pmuludq xmm0, xmm10
paddq xmm12, xmm10
movdqa xmm7, xmm6
pxor xmm7, xmm3
pshufb xmm7, xmm14
paddq xmm0, xmm0
paddq xmm12, xmm0
movdqa xmm1, xmm7
paddq xmm1, xmm2
movdqu xmmword [rcx + r10*8], xmm12
movdqa xmm0, xmm7
pxor xmm9, xmm12
pmuludq xmm0, xmm2
pshufb xmm9, xmm15
paddq xmm0, xmm0
movdqa xmm4, xmm9
paddq xmm1, xmm0
paddq xmm4, xmm5
pxor xmm8, xmm1
movdqu xmmword [rcx + r9*8], xmm1
pshufb xmm8, xmm15
movdqa xmm0, xmm9
pmuludq xmm0, xmm5
movdqa xmm3, xmm8
pmuludq xmm3, xmm6
paddq xmm0, xmm0
paddq xmm4, xmm0
paddq xmm3, xmm3
pxor xmm10, xmm4
movdqa xmm0, xmm8
movdqa xmm2, xmm10
paddq xmm0, xmm6
paddq xmm2, xmm10
paddq xmm3, xmm0
psrlq xmm10, 0x3f
pxor xmm7, xmm3
pxor xmm2, xmm10
movdqa xmm1, xmm7
movdqu xmmword [rcx + r11*8], xmm3
paddq xmm1, xmm7
movdqu xmmword [rcx + rdx*8], xmm4
psrlq xmm7, 0x3f
movdqa xmm0, xmm2
pxor xmm1, xmm7
inc r13d
palignr xmm0, xmm1, 8
movdqu xmmword [rcx + rbp*8], xmm0
movdqa xmm0, xmm8
palignr xmm0, xmm9, 8
palignr xmm9, xmm8, 8
palignr xmm1, xmm2, 8
movdqu xmmword [rcx + rdi*8], xmm9
movdqu xmmword [rcx + rsi*8], xmm1
movdqu xmmword [rcx + rbx*8], xmm0
cmp r13d, 8
jb 0x180021320
mov rdx, rcx
lea rax, [rcx + 0x100]
mov r8d, 8
movdqu xmm3, xmmword [rax]
movdqu xmm2, xmmword [rax + 0x80]
movdqa xmm9, xmm3
pmuludq xmm9, xmmword [rdx]
movdqa xmm0, xmm3
paddq xmm0, xmmword [rdx]
movdqa xmm8, xmm2
pmuludq xmm8, xmmword [rax - 0x80]
movdqu xmm1, xmmword [rax + 0x280]
paddq xmm9, xmm9
paddq xmm9, xmm0
movdqa xmm0, xmm2
paddq xmm0, xmmword [rax - 0x80]
paddq xmm8, xmm8
paddq xmm8, xmm0
movdqa xmm11, xmm9
pxor xmm1, xmm8
movdqa xmm0, xmm9
pxor xmm0, xmmword [rax + 0x200]
movdqa xmm10, xmm8
pshufd xmm4, xmm0, 0xb1
pshufd xmm5, xmm1, 0xb1
movdqa xmm7, xmm4
movdqu xmm1, xmmword [rax + 0x100]
movdqa xmm0, xmm4
paddq xmm0, xmm1
pmuludq xmm7, xmm1
movdqu xmm1, xmmword [rax + 0x180]
movdqa xmm6, xmm5
pmuludq xmm6, xmm1
paddq xmm7, xmm7
paddq xmm7, xmm0
movdqa xmm0, xmm5
paddq xmm0, xmm1
paddq xmm6, xmm6
paddq xmm6, xmm0
movdqa xmm1, xmm7
pxor xmm1, xmm3
movdqa xmm3, xmm6
pxor xmm3, xmm2
pshufb xmm1, xmm14
pshufb xmm3, xmm14
paddq xmm9, xmm1
pmuludq xmm11, xmm1
paddq xmm8, xmm3
pmuludq xmm10, xmm3
paddq xmm11, xmm11
paddq xmm11, xmm9
paddq xmm10, xmm10
paddq xmm10, xmm8
movdqa xmm9, xmm11
pxor xmm9, xmm4
movdqa xmm8, xmm10
pshufb xmm9, xmm15
pxor xmm8, xmm5
pshufb xmm8, xmm15
movdqa xmm0, xmm9
movdqa xmm12, xmm9
pmuludq xmm0, xmm7
paddq xmm12, xmm7
movdqa xmm7, xmm8
paddq xmm7, xmm6
paddq xmm0, xmm0
paddq xmm12, xmm0
movdqa xmm0, xmm8
pmuludq xmm0, xmm6
pxor xmm1, xmm12
paddq xmm0, xmm0
paddq xmm7, xmm0
movdqa xmm0, xmm1
pxor xmm3, xmm7
paddq xmm0, xmm1
movdqa xmm13, xmm3
psrlq xmm1, 0x3f
paddq xmm13, xmm3
pxor xmm0, xmm1
psrlq xmm3, 0x3f
movdqa xmm2, xmm0
pxor xmm13, xmm3
palignr xmm2, xmm13, 8
palignr xmm13, xmm0, 8
movdqa xmm1, xmm8
movdqa xmm4, xmm11
palignr xmm1, xmm9, 8
paddq xmm11, xmm13
pmuludq xmm4, xmm13
movdqa xmm3, xmm10
pmuludq xmm3, xmm2
paddq xmm10, xmm2
palignr xmm9, xmm8, 8
paddq xmm4, xmm4
paddq xmm4, xmm11
paddq xmm3, xmm3
pxor xmm9, xmm4
paddq xmm3, xmm10
movdqa xmm0, xmm3
pshufd xmm9, xmm9, 0xb1
pxor xmm0, xmm1
movdqa xmm5, xmm9
pshufd xmm8, xmm0, 0xb1
movdqa xmm0, xmm9
paddq xmm0, xmm7
pmuludq xmm5, xmm7
movdqa xmm6, xmm8
pmuludq xmm6, xmm12
paddq xmm5, xmm5
paddq xmm5, xmm0
movdqa xmm0, xmm8
paddq xmm0, xmm12
pxor xmm13, xmm5
pshufb xmm13, xmm14
paddq xmm6, xmm6
paddq xmm6, xmm0
movdqa xmm0, xmm13
paddq xmm0, xmm4
movdqa xmm7, xmm6
pxor xmm7, xmm2
movdqa xmm2, xmm13
pmuludq xmm2, xmm4
pshufb xmm7, xmm14
paddq xmm2, xmm2
movdqa xmm1, xmm7
paddq xmm2, xmm0
paddq xmm1, xmm3
pxor xmm9, xmm2
movdqu xmmword [rdx], xmm2
movdqa xmm0, xmm7
pmuludq xmm0, xmm3
pshufb xmm9, xmm15
paddq xmm0, xmm0
movdqa xmm4, xmm9
paddq xmm1, xmm0
pmuludq xmm4, xmm5
pxor xmm8, xmm1
movdqu xmmword [rax - 0x80], xmm1
pshufb xmm8, xmm15
movdqa xmm0, xmm9
paddq xmm4, xmm4
paddq xmm0, xmm5
movdqa xmm3, xmm8
paddq xmm4, xmm0
pmuludq xmm3, xmm6
pxor xmm13, xmm4
movdqa xmm0, xmm8
paddq xmm0, xmm6
movdqa xmm2, xmm13
paddq xmm2, xmm13
psrlq xmm13, 0x3f
pxor xmm2, xmm13
paddq xmm3, xmm3
paddq xmm3, xmm0
movdqa xmm0, xmm2
pxor xmm7, xmm3
movdqu xmmword [rax + 0x100], xmm3
movdqa xmm1, xmm7
paddq xmm1, xmm7
psrlq xmm7, 0x3f
pxor xmm1, xmm7
palignr xmm0, xmm1, 8
palignr xmm1, xmm2, 8
movdqu xmmword [rax + 0x80], xmm1
movdqu xmmword [rax], xmm0
movdqu xmmword [rax + 0x180], xmm4
movdqa xmm0, xmm8
palignr xmm0, xmm9, 8
lea rdx, [rdx + 0x10]
palignr xmm9, xmm8, 8
movdqu xmmword [rax + 0x280], xmm9
movdqu xmmword [rax + 0x200], xmm0
lea rax, [rax + 0x10]
sub r8, 1
jne 0x180021684
nop dword [rax]
nop word [rax + rax]
movdqu xmm0, xmmword [r15 + rcx]
mov eax, r14d
pxor xmm0, xmmword [rcx]
inc r14d
shl eax, 4
movdqu xmmword [rcx], xmm0
lea rcx, [rcx + 0x10]
movdqu xmmword [rax + r12], xmm0
cmp r14d, 0x40
jb 0x1800219e0
mov rcx, qword [rsp + 0x400]
xor rcx, rsp
call fcn.180039e30
lea r11, [rsp + 0x4b0]
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