Function at 0x1401a2d28
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov dword [rax + 0x20], r9d
mov qword [rax + 0x18], r8
mov dword [rax + 0x10], edx
mov qword [rax + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0x98
mov r12d, edx
mov r13d, r9d
mov r14, r8
mov rsi, rcx
test edx, edx
je 0x1401a2dc4
mov edi, dword [rcx + 8]
mov r15d, r12d
lea ebx, [rdi + 2]
mov rcx, qword [rsi]
lea r8, [rbp - 0x59]
mov edx, edi
call fcn.14018d9f4
mov cl, byte [rbp - 0x59]
lea edx, [rbx - 1]
lea r8, [rbp - 0x58]
mov byte [rax], cl
mov rcx, qword [rsi]
call fcn.14018d9f4
mov cl, byte [rbp - 0x58]
lea r8, [rbp - 0x57]
mov edx, ebx
mov byte [rax], cl
mov rcx, qword [rsi]
call fcn.14018d9f4
mov cl, byte [rbp - 0x57]
lea edx, [rbx + 1]
lea r8, [rbp - 0x56]
mov byte [rax], cl
mov rcx, qword [rsi]
call fcn.14018d9f4
mov cl, byte [rbp - 0x56]
add edi, 4
add ebx, 4
mov byte [rax], cl
sub r15, 1
jne 0x1401a2d6a
movaps xmm0, xmmword [r14]
movdqa xmmword [rbp - 0x39], xmm0
test r13d, r13d
je 0x1401a2e73
mov r14d, dword [rbp - 0x31]
mov r15, qword [rbp - 0x39]
add r14d, 0xfffffffe
lea r14d, [r14 + r13*4]
lea edx, [r14 - 2]
mov rcx, r15
lea r8, [rbp - 0x56]
call fcn.14018d9f4
lea edx, [r14 - 1]
mov rcx, r15
lea r8, [rbp - 0x57]
movzx ebx, byte [rax]
movzx eax, byte [rbp - 0x56]
xor ebx, eax
ror ebx, 8
call fcn.14018d9f4
lea r8, [rbp - 0x58]
mov edx, r14d
mov rcx, r15
movzx edi, byte [rax]
movzx eax, byte [rbp - 0x57]
xor edi, eax
add edi, ebx
ror edi, 8
call fcn.14018d9f4
lea edx, [r14 + 1]
mov rcx, r15
lea r8, [rbp - 0x59]
movzx ebx, byte [rax]
movzx eax, byte [rbp - 0x58]
xor ebx, eax
add ebx, edi
ror ebx, 8
call fcn.14018d9f4
movzx ecx, byte [rbp - 0x59]
movzx eax, byte [rax]
xor ecx, eax
add ecx, ebx
ror ecx, 8
test ecx, ecx
jne 0x1401a2e7d
dec r13d
add r14d, 0xfffffffc
mov dword [rbp + 0x7f], r13d
test r13d, r13d
jne 0x1401a2de6
mov r13d, 1
mov dword [rbp + 0x7f], r13d
mov ecx, dword [rsi + 8]
lea r14d, [r13 - 1]
mov rbx, qword [rbp + 0x77]
add ecx, 4
mov rax, qword [rsi]
mov dword [rbp - 0x31], ecx
mov qword [rbp - 0x39], rax
movaps xmm0, xmmword [rbp - 0x39]
movaps xmm1, xmmword [rbx]
movdqa xmmword [rbp - 0x39], xmm0
mov dword [rbp - 0x19], r14d
movdqu xmmword [rbp - 0x29], xmm1
test r14d, r14d
je 0x1401a31bc
mov r15d, dword [rbp - 0x31]
lea eax, [r14*4]
mov edx, dword [rbp - 0x21]
mov dword [rbp - 0x15], eax
mov dword [rbp - 0x11], r15d
cmp r14d, r12d
jae 0x1401a31b0
mov rcx, qword [rbp - 0x29]
lea eax, [rdx + 4]
lea r8, [rbp - 0x56]
mov dword [rbp - 9], eax
lea esi, [rdx + 1]
call fcn.14018d9f4
mov rcx, qword [rbp - 0x29]
lea r8, [rbp - 0x57]
mov edx, esi
movzx ebx, byte [rax]
movzx eax, byte [rbp - 0x56]
xor ebx, eax
ror ebx, 8
call fcn.14018d9f4
mov rcx, qword [rbp - 0x29]
lea r8, [rbp - 0x58]
lea edx, [rsi + 1]
movzx edi, byte [rax]
movzx eax, byte [rbp - 0x57]
xor edi, eax
add edi, ebx
ror edi, 8
call fcn.14018d9f4
mov rcx, qword [rbp - 0x29]
lea edx, [rsi + 2]
lea r8, [rbp - 0x59]
movzx ebx, byte [rax]
movzx eax, byte [rbp - 0x58]
xor ebx, eax
add ebx, edi
ror ebx, 8
call fcn.14018d9f4
movzx ecx, byte [rbp - 0x59]
xor r13d, r13d
mov rsi, qword [rbp - 0x39]
movzx eax, byte [rax]
xor ecx, eax
add ecx, ebx
ror ecx, 8
test r14d, r14d
je 0x1401a3122
mov eax, ecx
lea edi, [r15 + 3]
mov qword [rbp + 7], rax
mov eax, dword [rbp - 9]
sub eax, r15d
mov dword [rbp - 0x55], edi
mov dword [rbp - 0x41], eax
mov eax, r14d
mov qword [rbp - 1], rax
lea r12d, [rdi - 3]
mov rcx, rsi
mov edx, r12d
lea r8, [rbp - 0x51]
call fcn.14018d9f4
movzx ebx, byte [rbp - 0x51]
lea r15d, [rdi - 2]
lea r8, [rbp - 0x50]
mov edx, r15d
mov rcx, rsi
movzx eax, byte [rax]
xor ebx, eax
ror ebx, 8
call fcn.14018d9f4
mov r14d, dword [rbp - 0x55]
lea r8, [rbp - 0x4f]
mov rcx, rsi
movzx edi, byte [rax]
movzx eax, byte [rbp - 0x50]
lea edx, [r14 - 1]
xor edi, eax
add edi, ebx
ror edi, 8
call fcn.14018d9f4
lea r8, [rbp - 0x4e]
mov edx, r14d
mov rcx, rsi
movzx ebx, byte [rax]
movzx eax, byte [rbp - 0x4f]
xor ebx, eax
add ebx, edi
ror ebx, 8
call fcn.14018d9f4
mov edi, dword [rbp - 0x41]
lea r8, [rbp - 0x4d]
mov rcx, qword [rbp - 0x29]
mov edx, r14d
add edx, 0xfffffffd
movzx esi, byte [rax]
add edx, edi
movzx eax, byte [rbp - 0x4e]
xor esi, eax
add esi, ebx
ror esi, 8
call fcn.14018d9f4
mov rcx, qword [rbp - 0x29]
lea edx, [rdi - 2]
add edx, r14d
lea r8, [rbp - 0x4c]
movzx ebx, byte [rax]
movzx eax, byte [rbp - 0x4d]
xor ebx, eax
ror ebx, 8
call fcn.14018d9f4
mov edx, dword [rbp - 0x41]
lea r8, [rbp - 0x4b]
movzx edi, byte [rbp - 0x4c]
mov ecx, r14d
dec ecx
movzx eax, byte [rax]
add edx, ecx
mov rcx, qword [rbp - 0x29]
xor edi, eax
add edi, ebx
ror edi, 8
call fcn.14018d9f4
movzx ebx, byte [rbp - 0x4b]
lea r8, [rbp - 0x4a]
mov rcx, qword [rbp - 0x29]
mov edx, r14d
add edx, dword [rbp - 0x41]
movzx eax, byte [rax]
xor ebx, eax
add ebx, edi
ror ebx, 8
call fcn.14018d9f4
movzx edi, byte [rax]
movzx eax, byte [rbp - 0x4a]
xor edi, eax
add edi, ebx
ror edi, 8
imul rdi, qword [rbp + 7]
mov eax, esi
lea r8, [rbp - 0x49]
mov rsi, qword [rbp - 0x39]
add rdi, rax
mov eax, r13d
mov edx, r12d
add rdi, rax
mov rcx, rsi
mov ebx, edi
call fcn.14018d9f4
mov cl, dil
shr ebx, 8
xor cl, byte [rbp - 0x49]
lea r8, [rbp - 0x48]
mov edx, r15d
mov byte [rax], cl
mov rcx, rsi
call fcn.14018d9f4
mov cl, bl
lea r8, [rbp - 0x47]
xor cl, byte [rbp - 0x48]
lea edx, [r14 - 1]
shr ebx, 8
mov byte [rax], cl
mov rcx, rsi
call fcn.14018d9f4
mov cl, bl
lea r8, [rbp - 0x46]
xor cl, byte [rbp - 0x47]
mov edx, r14d
mov byte [rax], cl
mov rcx, rsi
call fcn.14018d9f4
mov r13, rdi
shr ebx, 8
xor bl, byte [rbp - 0x46]
mov edi, r14d
add edi, 4
shr r13, 0x20
sub qword [rbp - 1], 1
mov byte [rax], bl
mov dword [rbp - 0x55], edi
jne 0x1401a2f7a
mov r14d, dword [rbp - 0x19]
mov r15d, dword [rbp - 0x11]
mov r12d, dword [rbp + 0x6f]
mov edi, dword [rbp - 0x15]
lea r8, [rbp - 0x45]
mov rcx, rsi
lea edx, [rdi + r15]
lea ebx, [rdx + 1]
call fcn.14018d9f4
mov cl, r13b
lea r8, [rbp - 0x44]
xor cl, byte [rbp - 0x45]
mov edx, ebx
shr r13d, 8
mov byte [rax], cl
mov rcx, rsi
call fcn.14018d9f4
mov cl, r13b
lea r8, [rbp - 0x43]
xor cl, byte [rbp - 0x44]
lea edx, [rbx + 1]
shr r13d, 8
mov byte [rax], cl
mov rcx, rsi
call fcn.14018d9f4
mov cl, r13b
lea edx, [rbx + 2]
xor cl, byte [rbp - 0x43]
lea r8, [rbp - 0x42]
mov byte [rax], cl
mov rcx, rsi
call fcn.14018d9f4
mov edx, dword [rbp - 9]
dec r14d
shr r13d, 8
add edi, 0xfffffffc
xor r13b, byte [rbp - 0x42]
add r15d, 8
mov byte [rax], r13b
mov dword [rbp - 0x19], r14d
mov dword [rbp - 0x15], edi
mov dword [rbp - 0x11], r15d
test r14d, r14d
jne 0x1401a2ec9
mov r13d, dword [rbp + 0x7f]
mov rsi, qword [rbp + 0x67]
mov rbx, qword [rbp + 0x77]
movaps xmm0, xmmword [rsi]
lea r9d, [r13*2]
movaps xmm1, xmm0
movdqa xmmword [rbp - 0x39], xmm0
lea r8, [rbp - 0x39]
movdqa xmmword [rbp - 0x29], xmm0
lea rdx, [rbp - 0x29]
movdqa xmmword [rbp + 7], xmm0
lea rcx, [rbp + 7]
call fcn.1401a2758
movaps xmm0, xmmword [rbx]
lea r8, [rbp - 0x39]
mov r9d, r13d
movdqa xmmword [rbp - 0x39], xmm0
mov edx, r12d
movdqa xmmword [rbp - 0x29], xmm1
lea rcx, [rbp - 0x29]
call fcn.1401a297c
add rsp, 0x98
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret