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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x1b8
movups xmmword [rsp + 0x170], xmm6
movups xmmword [rsp + 0x180], xmm7
movups xmmword [rsp + 0x190], xmm8
movups xmmword [rsp + 0x1a0], xmm9
xor eax, eax
lea r13, [0x009916a0]
mov r12d, 2
lea rbx, [rsp + 0x90]
mov r11d, edx
mov r9, rcx
movsx rdx, r8b
mov ecx, 0xc
mov rdi, rbx
mov r10, rdx
rep stosq qword [rdi], rax
mov rax, rdx
sub rdx, 1
sar r10, 0x3f
not rax
and rax, rdx
sar rax, 0x3f
and eax, 1
mov byte [rsp + 0x90], al
mov byte [rsp + 0xb0], al
movsxd rax, r11d
lea rdi, [rax + rax*2]
mov eax, r8d
and eax, r10d
shl rdi, 8
add eax, eax
sub r8d, eax
movzx ebp, r8b
lea r8, [r13 + rdi]
lea rax, [r12 - 1]
mov rdx, rbx
movsxd r14, r12d
xor rax, rbp
mov rsi, rax
sub rax, 1
not rsi
and rax, rsi
sar rax, 0x3f
mov rsi, rax
mov rax, rbp
xor rax, r12
lea r11, [rax - 1]
not rax
and r11, rax
xor eax, eax
sar r11, 0x3f
nop dword [rax]
movzx ecx, byte [r8 + rax]
add rax, 1
add rdx, 1
and ecx, esi
xor cl, byte [rdx - 1]
mov r15d, ecx
movzx ecx, byte [rax + r8 + 0x5f]
and ecx, r11d
xor ecx, r15d
mov byte [rdx - 1], cl
cmp rax, 0x60
jne 0x841238
add r8, 0xc0
lea rax, [r12 + 2]
cmp r12, 6
je 0x841279
mov r12, rax
jmp 0x8411f9
lea rax, [r14 + r14*2]
lea rsi, [r14 + 1]
shl rax, 5
lea r11, [rbx + 0x60]
add rdi, rax
mov eax, 7
sub eax, r12d
add rdi, r13
lea r12, [r14 + rax + 2]
nop dword [rax]
mov rax, rbp
mov rdx, rdi
xor rax, rsi
lea rcx, [rax - 1]
not rax
and rcx, rax
mov rax, rbx
sar rcx, 0x3f
nop word [rax + rax]
movzx r8d, byte [rdx]
add rdx, 1
and r8d, ecx
xor byte [rax], r8b
add rax, 1
cmp r11, rax
jne 0x8412c0
add rsi, 1
add rdi, 0x60
cmp r12, rsi
jne 0x8412a0
movzx eax, byte [rsp + 0x90]
movzx r8d, byte [rsp + 0x96]
movabs rbx, 0x7ffffffffffff
movzx ecx, byte [rsp + 0x94]
movzx r11d, byte [rsp + 0x9b]
mov rdx, r8
movzx r8d, byte [rsp + 0x95]
shl rdx, 0x30
shl rcx, 0x20
shl r8, 0x28
shl r11, 0x25
add r8, rdx
movzx edx, byte [rsp + 0x93]
add rax, r8
lea r8, [rax + rcx]
movzx eax, byte [rsp + 0x92]
shl rdx, 0x18
lea rcx, [r8 + rdx]
movzx r8d, byte [rsp + 0x9a]
shl rax, 0x10
lea rdx, [rcx + rax]
movzx eax, byte [rsp + 0x91]
shl r8, 0x1d
movzx ecx, byte [rsp + 0x99]
shl rax, 8
shl rcx, 0x15
add rax, rdx
movzx edx, byte [rsp + 0x9c]
mov rdi, rax
shr rax, 0x33
shl rdx, 0x2d
and rdi, rbx
lea rdx, [rdx + r11]
movq xmm7, rdi
lea r11, [rdx + r8]
movzx edx, byte [rsp + 0x98]
lea r8, [r11 + rcx]
movzx r11d, byte [rsp + 0xa2]
shl rdx, 0xd
lea rcx, [r8 + rdx]
movzx edx, byte [rsp + 0x97]
shl r11, 0x2a
movzx r8d, byte [rsp + 0xa1]
shl rdx, 5
shl r8, 0x22
add rdx, rcx
movzx ecx, byte [rsp + 0xa0]
add rax, rdx
movzx edx, byte [rsp + 0xa3]
shl rcx, 0x1a
mov rdi, rax
shr rax, 0x33
shl rdx, 0x32
and rdi, rbx
lea rdx, [rdx + r11]
movq xmm8, rdi
lea r11, [rdx + r8]
movzx edx, byte [rsp + 0x9f]
lea r8, [r11 + rcx]
movzx r11d, byte [rsp + 0xa8]
shl rdx, 0x12
lea rcx, [r8 + rdx]
movzx edx, byte [rsp + 0x9e]
shl r11, 0x27
movzx r8d, byte [rsp + 0xa7]
shl rdx, 0xa
add rdx, rcx
movzx ecx, byte [rsp + 0x9d]
lea rdx, [rdx + rcx*4]
movzx ecx, byte [rsp + 0xa6]
add rax, rdx
movzx edx, byte [rsp + 0xa9]
mov rdi, rax
shl rdx, 0x2f
and rdi, rbx
shl r8, 0x1f
lea rdx, [rdx + r11]
shl rcx, 0x17
shr rax, 0x33
movq xmm6, rdi
lea r11, [rdx + r8]
movzx edx, byte [rsp + 0xa5]
lea r8, [r11 + rcx]
movzx r11d, byte [rsp + 0xaf]
shl rdx, 0xf
lea rcx, [r8 + rdx]
movzx edx, byte [rsp + 0xa4]
movzx r8d, byte [rsp + 0xae]
shl rdx, 7
shl r8, 0x24
add rdx, rcx
movzx ecx, byte [rsp + 0xad]
add rax, rdx
mov rdx, r11
shl rdx, 0x2c
mov rdi, rax
shl rcx, 0x1c
and rdi, rbx
lea r11, [rdx + r8]
movzx edx, byte [rsp + 0xac]
shr rax, 0x33
movq xmm2, rdi
movzx edi, byte [rsp + 0xab]
lea r8, [r11 + rcx]
shl rdx, 0x14
lea rcx, [r8 + rdx]
shl rdi, 0xc
lea rdx, [rcx + rdi]
movzx edi, byte [rsp + 0xaa]
movzx r8d, byte [rsp + 0xb6]
movzx ecx, byte [rsp + 0xb4]
movzx esi, byte [rsp + 0xc2]
shl rdi, 4
movzx ebp, byte [rsp + 0xce]
movzx r11d, byte [rsp + 0xbb]
add rdi, rdx
mov rdx, r8
shl rcx, 0x20
movzx r8d, byte [rsp + 0xb5]
shl rdx, 0x30
add rdi, rax
movzx eax, byte [rsp + 0xb0]
shl r11, 0x25
shl r8, 0x28
movq xmm9, rdi
add r8, rdx
movzx edx, byte [rsp + 0xb3]
add rax, r8
lea r8, [rax + rcx]
movzx eax, byte [rsp + 0xb2]
shl rdx, 0x18
lea rcx, [r8 + rdx]
movzx r8d, byte [rsp + 0xba]
shl rax, 0x10
lea rdx, [rcx + rax]
movzx eax, byte [rsp + 0xb1]
shl r8, 0x1d
movzx ecx, byte [rsp + 0xb9]
shl rax, 8
shl rcx, 0x15
add rax, rdx
movzx edx, byte [rsp + 0xbc]
shl rdx, 0x2d
lea rdx, [rdx + r11]
lea r11, [rdx + r8]
movzx edx, byte [rsp + 0xb8]
lea r8, [r11 + rcx]
movzx r11d, byte [rsp + 0xc1]
shl rdx, 0xd
lea rcx, [r8 + rdx]
movzx edx, byte [rsp + 0xb7]
movzx r8d, byte [rsp + 0xc0]
shl rdx, 5
add rdx, rcx
mov rcx, rax
shl rsi, 0x2a
shr rcx, 0x33
shl r11, 0x22
shl r8, 0x1a
add rdx, rcx
movzx ecx, byte [rsp + 0xc3]
shl rbp, 0x24
shl rcx, 0x32
lea rcx, [rcx + rsi]
lea rsi, [rcx + r11]
movzx ecx, byte [rsp + 0xbf]
lea r11, [rsi + r8]
movzx esi, byte [rsp + 0xc8]
shl rcx, 0x12
lea r8, [r11 + rcx]
movzx ecx, byte [rsp + 0xbe]
shl rsi, 0x27
movzx r11d, byte [rsp + 0xc7]
shl rcx, 0xa
shl r11, 0x1f
add rcx, r8
movzx r8d, byte [rsp + 0xbd]
lea r12, [rcx + r8*4]
mov rcx, rdx
movzx r8d, byte [rsp + 0xc6]
shr rcx, 0x33
add r12, rcx
movzx ecx, byte [rsp + 0xc9]
shl r8, 0x17
shl rcx, 0x2f
lea rcx, [rcx + rsi]
lea rsi, [rcx + r11]
movzx ecx, byte [rsp + 0xc5]
lea r11, [rsi + r8]
movzx esi, byte [rsp + 0xcf]
shl rcx, 0xf
lea r8, [r11 + rcx]
movzx ecx, byte [rsp + 0xc4]
shl rsi, 0x2c
movzx r11d, byte [rsp + 0xcd]
lea rsi, [rsi + rbp]
shl rcx, 7
shl r11, 0x1c
add rcx, r8
mov r8, r12
lea rbp, [rsi + r11]
and r12, rbx
shr r8, 0x33
movzx esi, byte [rsp + 0xcb]
movq xmm5, r12
add rcx, r8
movzx r8d, byte [rsp + 0xcc]
shl rsi, 0xc
shl r8, 0x14
lea r11, [rbp + r8]
lea r8, [r11 + rsi]
movzx esi, byte [rsp + 0xca]
shl rsi, 4
add rsi, r8
mov r8, rcx
and rcx, rbx
shr r8, 0x33
movq xmm0, rcx
add rsi, r8
and rax, rbx
punpcklqdq xmm5, xmm0
and rdx, rbx
movzx r8d, byte [rsp + 0xd6]
movq xmm0, rdx
movzx ecx, byte [rsp + 0xd4]
movq xmm3, rax
movzx eax, byte [rsp + 0xd0]
movzx ebp, byte [rsp + 0xe2]
punpcklqdq xmm3, xmm0
movzx r11d, byte [rsp + 0xdb]
mov rdx, r8
shl rcx, 0x20
movzx r8d, byte [rsp + 0xd5]
shl rdx, 0x30
shl rbp, 0x2a
shl r8, 0x28
shl r11, 0x25
add r8, rdx
movzx edx, byte [rsp + 0xd3]
add rax, r8
lea r8, [rax + rcx]
movzx eax, byte [rsp + 0xd2]
shl rdx, 0x18
lea rcx, [r8 + rdx]
movzx r8d, byte [rsp + 0xda]
shl rax, 0x10
lea rdx, [rcx + rax]
movzx eax, byte [rsp + 0xd1]
shl r8, 0x1d
movzx ecx, byte [rsp + 0xd9]
shl rax, 8
shl rcx, 0x15
add rax, rdx
movzx edx, byte [rsp + 0xdc]
shl rdx, 0x2d
lea rdx, [rdx + r11]
lea r11, [rdx + r8]
movzx edx, byte [rsp + 0xd8]
lea r8, [r11 + rcx]
movzx r11d, byte [rsp + 0xe1]
shl rdx, 0xd
lea rcx, [r8 + rdx]
movzx edx, byte [rsp + 0xd7]
shl r11, 0x22
movzx r8d, byte [rsp + 0xe0]
shl rdx, 5
shl r8, 0x1a
add rdx, rcx
mov rcx, rax
shr rcx, 0x33
add rdx, rcx
movzx ecx, byte [rsp + 0xe3]
shl rcx, 0x32
lea rcx, [rcx + rbp]
lea rbp, [rcx + r11]
movzx ecx, byte [rsp + 0xdf]
lea r11, [rbp + r8]
shl rcx, 0x12
lea r8, [r11 + rcx]
movzx ecx, byte [rsp + 0xde]
shl rcx, 0xa
add rcx, r8
movzx r8d, byte [rsp + 0xdd]
lea rbp, [rcx + r8*4]
mov rcx, rdx
movzx r8d, byte [rsp + 0xe9]
shr rcx, 0x33
add rbp, rcx
movzx ecx, byte [rsp + 0xe8]
mov r11, r8
shl r11, 0x2f
shl rcx, 0x27
lea r8, [r11 + rcx]
movzx r11d, byte [rsp + 0xe7]
shl r11, 0x1f
lea rcx, [r8 + r11]
movzx r8d, byte [rsp + 0xe6]
shl r8, 0x17
and rax, rbx
and rdx, rbx
lea r11, [rcx + r8]
movzx ecx, byte [rsp + 0xe5]
movq xmm4, rdx
mov rdx, r10
shl rcx, 0xf
lea r8, [r11 + rcx]
movzx ecx, byte [rsp + 0xe4]
shl rcx, 7
add rcx, r8
mov r8, rbp
and rbp, rbx
shr r8, 0x33
movq xmm0, rbp
add rcx, r8
movzx r8d, byte [rsp + 0xef]
mov r11, r8
movzx r8d, byte [rsp + 0xee]
shl r11, 0x2c
shl r8, 0x24
add r8, r11
movzx r11d, byte [rsp + 0xed]
shl r11, 0x1c
add r8, r11
movzx r11d, byte [rsp + 0xec]
shl r11, 0x14
add r11, r8
movzx r8d, byte [rsp + 0xeb]
shl r8, 0xc
add r11, r8
movzx r8d, byte [rsp + 0xea]
shl r8, 4
add r8, r11
mov r11, rcx
and rcx, rbx
movq xmm1, rcx
shr r11, 0x33
punpcklqdq xmm0, xmm1
movq xmm1, rax
add r8, r11
punpcklqdq xmm1, xmm4
movq xmm4, rsi
punpcklqdq xmm4, xmm7
movups xmmword [rsp + 0x110], xmm4
movq rax, xmm4
movdqu xmm4, xmm8
punpcklqdq xmm4, xmm6
xor rax, rdi
movups xmmword [rsp + 0x120], xmm4
movdqu xmm4, xmm2
and rax, r10
punpcklqdq xmm4, xmm9
movdqu xmm9, xmm7
xor rdi, rax
punpcklqdq xmm9, xmm8
movups xmmword [rsp + 0x130], xmm4
movq xmm4, r10
mov rax, qword [rsp + 0x138]
movdqu xmm7, xmm9
punpcklqdq xmm4, xmm4
mov qword [r9 + 0x20], rdi
movups xmm8, xmmword [rsp + 0x190]
pxor xmm7, xmm3
xor rax, rsi
pand xmm7, xmm4
and rax, r10
movabs r10, 0xffffffffffffe
pxor xmm7, xmm9
sub r10, r8
xor rsi, rax
movups xmm9, xmmword [rsp + 0x1a0]
movups xmmword [r9], xmm7
movdqu xmm7, xmm6
xor r10, r8
punpcklqdq xmm7, xmm2
movdqu xmm2, xmm3
and r10, rdx
mov qword [r9 + 0x48], rsi
movdqu xmm3, xmmword [rsp + 0x118]
movdqu xmm6, xmm7
xor r8, r10
pxor xmm6, xmm5
mov qword [r9 + 0x70], r8
pxor xmm3, xmm2
pand xmm6, xmm4
pand xmm3, xmm4
pxor xmm6, xmm7
movups xmm7, xmmword [rsp + 0x180]
pxor xmm3, xmm2
movups xmmword [r9 + 0x10], xmm6
movdqu xmm2, xmmword [rsp + 0x128]
movups xmm6, xmmword [rsp + 0x170]
movups xmmword [r9 + 0x28], xmm3
pxor xmm2, xmm5
pand xmm2, xmm4
pxor xmm2, xmm5
movups xmmword [r9 + 0x38], xmm2
movdqu xmm2, xmm1
movdqu xmm1, xmmword [0x00963070]
psubq xmm1, xmm2
pxor xmm1, xmm2
pand xmm1, xmm4
pxor xmm1, xmm2
movups xmmword [r9 + 0x50], xmm1
movdqu xmm1, xmm0
movdqu xmm0, xmmword [0x00963060]
psubq xmm0, xmm1
pxor xmm0, xmm1
pand xmm0, xmm4
pxor xmm0, xmm1
movups xmmword [r9 + 0x60], xmm0
add rsp, 0x1b8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret