Function at 0x14021ac70
Capabilities:
Encode data using xor
Encrypt data using chaskey

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x178
xor eax, eax
mov ebx, 1
movsxd r11, edx
mov r9, rcx
movsx rdx, r8b
mov ecx, 0xb
lea rdi, [rsp + 0x98]
mov r10, rdx
lea rsi, [r11 + r11*2]
mov qword [rsp + 0x91], 0
sar r10, 0x3f
shl rsi, 8
mov qword [rsp + 0xe8], 0
lea rbp, [rsp + 0x90]
rep stosq qword [rdi], rax
mov rax, rdx
sub rdx, 1
lea r11, [rsp + 0xf0]
not rax
and rax, rdx
sar rax, 0x3f
and eax, 1
mov byte [rsp + 0x90], al
mov byte [rsp + 0xb0], al
mov eax, r8d
and eax, r10d
add eax, eax
sub r8d, eax
lea rax, [0x1402e9000]
movzx edi, r8b
add rsi, rax
nop
mov rax, rdi
mov rdx, rsi
xor rax, rbx
mov rcx, rax
sub rax, 1
not rcx
and rcx, rax
mov rax, rbp
sar rcx, 0x3f
nop dword [rax]
movzx r8d, byte [rdx]
add rdx, 1
and r8d, ecx
xor byte [rax], r8b
add rax, 1
cmp r11, rax
jne 0x14021ad30
add rbx, 1
movzx eax, byte [rsp + 0x90]
add rsi, 0x60
cmp rbx, 9
jne 0x14021ad10
movzx ecx, byte [rsp + 0x96]
movq xmm1, r10
movzx edx, byte [rsp + 0x95]
movzx r8d, byte [rsp + 0xa2]
punpcklqdq xmm1, xmm1
movzx r11d, byte [rsp + 0xa8]
shl rdx, 0x28
shl rcx, 0x30
add rcx, rdx
movzx edx, byte [rsp + 0x9c]
shl r8, 0x2a
add rcx, rax
movzx eax, byte [rsp + 0x94]
shl rdx, 0x2d
shl rax, 0x20
add rcx, rax
movzx eax, byte [rsp + 0x93]
shl rax, 0x18
add rcx, rax
movzx eax, byte [rsp + 0x92]
shl rax, 0x10
add rcx, rax
movzx eax, byte [rsp + 0x91]
shl rax, 8
add rcx, rax
movzx eax, byte [rsp + 0x9b]
shl rax, 0x25
add rdx, rax
movzx eax, byte [rsp + 0x9a]
shl rax, 0x1d
add rdx, rax
movzx eax, byte [rsp + 0x99]
shl rax, 0x15
add rdx, rax
movzx eax, byte [rsp + 0x98]
shl rax, 0xd
add rdx, rax
movzx eax, byte [rsp + 0x97]
shl rax, 5
add rdx, rax
mov rax, rcx
shr rax, 0x33
add rdx, rax
movzx eax, byte [rsp + 0xa3]
shl rax, 0x32
add rax, r8
movzx r8d, byte [rsp + 0xa1]
shl r8, 0x22
add rax, r8
movzx r8d, byte [rsp + 0xa0]
shl r8, 0x1a
add rax, r8
movzx r8d, byte [rsp + 0x9f]
shl r8, 0x12
shl r11, 0x27
add rax, r8
movzx r8d, byte [rsp + 0x9e]
shl r8, 0xa
add rax, r8
movzx r8d, byte [rsp + 0x9d]
lea r8, [rax + r8*4]
mov rax, rdx
shr rax, 0x33
add r8, rax
movzx eax, byte [rsp + 0xa9]
shl rax, 0x2f
add rax, r11
movzx r11d, byte [rsp + 0xa7]
shl r11, 0x1f
add rax, r11
movzx r11d, byte [rsp + 0xa6]
shl r11, 0x17
add rax, r11
movzx r11d, byte [rsp + 0xa5]
shl r11, 0xf
add rax, r11
movzx r11d, byte [rsp + 0xa4]
shl r11, 7
add rax, r11
mov r11, r8
shr r11, 0x33
lea rbx, [rax + r11]
movzx eax, byte [rsp + 0xaf]
movzx r11d, byte [rsp + 0xae]
shl rax, 0x2c
shl r11, 0x24
add rax, r11
movzx r11d, byte [rsp + 0xad]
shl r11, 0x1c
add rax, r11
movzx r11d, byte [rsp + 0xac]
shl r11, 0x14
add rax, r11
movzx r11d, byte [rsp + 0xab]
shl r11, 0xc
add rax, r11
movzx r11d, byte [rsp + 0xaa]
shl r11, 4
add rax, r11
mov r11, rbx
shr r11, 0x33
add rax, r11
movabs r11, 0x7ffffffffffff
and rcx, r11
and rdx, r11
and rbx, r11
and r8, r11
mov qword [rsp], rcx
mov qword [rsp + 8], rdx
movzx edx, byte [rsp + 0xb5]
mov qword [rsp + 0x18], rbx
movzx ebx, byte [rsp + 0xb6]
shl rdx, 0x28
movzx ecx, byte [rsp + 0xbc]
mov qword [rsp + 0x10], r8
shl rbx, 0x30
movzx edi, byte [rsp + 0xce]
movzx r8d, byte [rsp + 0xc2]
add rbx, rdx
movzx edx, byte [rsp + 0xb0]
shl rcx, 0x2d
shl r8, 0x2a
add rbx, rdx
movzx edx, byte [rsp + 0xb4]
shl rdx, 0x20
add rbx, rdx
movzx edx, byte [rsp + 0xb3]
shl rdx, 0x18
add rbx, rdx
movzx edx, byte [rsp + 0xb2]
shl rdx, 0x10
add rbx, rdx
movzx edx, byte [rsp + 0xb1]
shl rdx, 8
add rbx, rdx
movzx edx, byte [rsp + 0xbb]
shl rdx, 0x25
add rcx, rdx
movzx edx, byte [rsp + 0xba]
shl rdx, 0x1d
add rcx, rdx
movzx edx, byte [rsp + 0xb9]
shl rdx, 0x15
add rcx, rdx
movzx edx, byte [rsp + 0xb8]
shl rdx, 0xd
add rcx, rdx
movzx edx, byte [rsp + 0xb7]
shl rdx, 5
add rcx, rdx
mov rdx, rbx
shr rdx, 0x33
add rcx, rdx
movzx edx, byte [rsp + 0xc3]
shl rdx, 0x32
add rdx, r8
movzx r8d, byte [rsp + 0xc1]
shl r8, 0x22
add rdx, r8
shl rdi, 0x24
movzx r8d, byte [rsp + 0xc0]
shl r8, 0x1a
add rdx, r8
movzx r8d, byte [rsp + 0xbf]
shl r8, 0x12
add rdx, r8
movzx r8d, byte [rsp + 0xbe]
shl r8, 0xa
add rdx, r8
movzx r8d, byte [rsp + 0xbd]
lea rsi, [rdx + r8*4]
mov rdx, rcx
movzx r8d, byte [rsp + 0xc8]
shr rdx, 0x33
add rsi, rdx
movzx edx, byte [rsp + 0xc9]
shl r8, 0x27
shl rdx, 0x2f
add rdx, r8
movzx r8d, byte [rsp + 0xc7]
shl r8, 0x1f
add rdx, r8
movzx r8d, byte [rsp + 0xc6]
shl r8, 0x17
add rdx, r8
movzx r8d, byte [rsp + 0xc5]
shl r8, 0xf
add rdx, r8
movzx r8d, byte [rsp + 0xc4]
shl r8, 7
add rdx, r8
mov r8, rsi
shr r8, 0x33
add rdx, r8
movzx r8d, byte [rsp + 0xcf]
shl r8, 0x2c
add r8, rdi
movzx edi, byte [rsp + 0xcd]
shl rdi, 0x1c
add r8, rdi
movzx edi, byte [rsp + 0xcc]
shl rdi, 0x14
add r8, rdi
movzx edi, byte [rsp + 0xcb]
movzx ebp, byte [rsp + 0xe8]
shl rdi, 0xc
add r8, rdi
movzx edi, byte [rsp + 0xca]
shl rdi, 4
add r8, rdi
and rcx, r11
mov rdi, rdx
and rdx, r11
mov qword [rsp + 0x38], rcx
and rsi, r11
and rbx, r11
shr rdi, 0x33
mov qword [rsp + 0x48], rdx
movzx ecx, byte [rsp + 0xd6]
add r8, rdi
movzx edx, byte [rsp + 0xd5]
mov qword [rsp + 0x40], rsi
shl rcx, 0x30
movzx esi, byte [rsp + 0xdb]
mov qword [rsp + 0x30], rbx
shl rdx, 0x28
movzx edi, byte [rsp + 0xe2]
add rcx, rdx
movzx edx, byte [rsp + 0xd0]
shl rsi, 0x25
add rcx, rdx
movzx edx, byte [rsp + 0xd4]
shl rdx, 0x20
add rcx, rdx
movzx edx, byte [rsp + 0xd3]
shl rdx, 0x18
add rcx, rdx
movzx edx, byte [rsp + 0xd2]
shl rdx, 0x10
add rcx, rdx
movzx edx, byte [rsp + 0xd1]
shl rdx, 8
add rcx, rdx
movzx edx, byte [rsp + 0xdc]
mov rbx, rcx
shr rcx, 0x33
shl rdx, 0x2d
and rbx, r11
add rdx, rsi
movzx esi, byte [rsp + 0xda]
shl rsi, 0x1d
add rdx, rsi
movzx esi, byte [rsp + 0xd9]
shl rsi, 0x15
add rdx, rsi
movzx esi, byte [rsp + 0xd8]
shl rsi, 0xd
add rdx, rsi
movzx esi, byte [rsp + 0xd7]
shl rsi, 5
add rdx, rsi
add rdx, rcx
movzx ecx, byte [rsp + 0xe3]
shl rdi, 0x2a
mov rsi, rdx
shr rdx, 0x33
shl rcx, 0x32
shl rbp, 0x27
and rsi, r11
add rcx, rdi
movzx edi, byte [rsp + 0xe1]
shl rdi, 0x22
add rcx, rdi
movzx edi, byte [rsp + 0xe0]
shl rdi, 0x1a
add rcx, rdi
movzx edi, byte [rsp + 0xdf]
shl rdi, 0x12
add rcx, rdi
movzx edi, byte [rsp + 0xde]
shl rdi, 0xa
add rcx, rdi
movzx edi, byte [rsp + 0xdd]
lea rcx, [rcx + rdi*4]
add rcx, rdx
movzx edx, byte [rsp + 0xe9]
mov rdi, rcx
shr rcx, 0x33
shl rdx, 0x2f
and rdi, r11
add rdx, rbp
movzx ebp, byte [rsp + 0xe7]
shl rbp, 0x1f
add rdx, rbp
movzx ebp, byte [rsp + 0xe6]
shl rbp, 0x17
add rdx, rbp
movzx ebp, byte [rsp + 0xe5]
shl rbp, 0xf
add rdx, rbp
movzx ebp, byte [rsp + 0xe4]
shl rbp, 7
add rdx, rbp
add rdx, rcx
movzx ecx, byte [rsp + 0xef]
movdqu xmm5, xmmword [rsp]
mov qword [rsp + 0x60], rbx
movzx ebp, byte [rsp + 0xee]
and r11, rdx
movdqu xmm3, xmmword [rsp + 0x30]
mov qword [rsp + 0x68], rsi
shl rcx, 0x2c
movdqa xmm0, xmm5
mov qword [rsp + 0x78], r11
movdqu xmm4, xmmword [rsp + 0x10]
shl rbp, 0x24
pxor xmm0, xmm3
movdqu xmm2, xmmword [rsp + 0x40]
mov qword [rsp + 0x70], rdi
add rcx, rbp
movzx ebp, byte [rsp + 0xed]
pand xmm0, xmm1
shr rdx, 0x33
pxor xmm0, xmm5
shl rbp, 0x1c
movups xmmword [r9], xmm0
movdqa xmm0, xmm4
add rcx, rbp
movzx ebp, byte [rsp + 0xec]
pxor xmm0, xmm2
pand xmm0, xmm1
shl rbp, 0x14
pxor xmm0, xmm4
add rcx, rbp
movzx ebp, byte [rsp + 0xeb]
movups xmmword [r9 + 0x10], xmm0
movdqa xmm0, xmm3
pxor xmm0, xmm5
shl rbp, 0xc
pand xmm0, xmm1
add rcx, rbp
movzx ebp, byte [rsp + 0xea]
pxor xmm0, xmm3
movups xmmword [r9 + 0x28], xmm0
movdqa xmm0, xmm2
shl rbp, 4
pxor xmm0, xmm4
add rcx, rbp
pand xmm0, xmm1
add rcx, rdx
pxor xmm0, xmm2
movabs rdx, 0xfffffffffffda
sub rdx, rbx
movups xmmword [r9 + 0x38], xmm0
movdqu xmm0, xmmword [rsp + 0x60]
mov qword [rsp + 0x140], rdx
movabs rdx, 0xffffffffffffe
mov rbx, rdx
sub rbx, rsi
mov qword [rsp + 0x148], rbx
mov rbx, rdx
pxor xmm0, xmmword [rsp + 0x140]
sub rbx, rdi
mov qword [rsp + 0x150], rbx
pand xmm0, xmm1
mov rbx, rdx
pxor xmm0, xmmword [rsp + 0x60]
sub rbx, r11
sub rdx, rcx
mov r11, rax
mov qword [rsp + 0x158], rbx
xor r11, r8
xor rdx, rcx
movups xmmword [r9 + 0x50], xmm0
movdqu xmm0, xmmword [rsp + 0x70]
and r11, r10
and rdx, r10
pxor xmm0, xmmword [rsp + 0x150]
xor rax, r11
xor rdx, rcx
xor r11, r8
mov qword [r9 + 0x20], rax
pand xmm0, xmm1
pxor xmm0, xmmword [rsp + 0x70]
mov qword [r9 + 0x48], r11
movups xmmword [r9 + 0x60], xmm0
mov qword [r9 + 0x70], rdx
add rsp, 0x178
pop rbx
pop rsi
pop rdi
pop rbp
ret