Function at 0x140201a30
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xa8
mov rdi, r9
mov rbp, rcx
mov rcx, r9
mov r12, rdx
mov rsi, r8
call fcn.14016c9a0
mov rcx, rdi
call fcn.14016cb60
mov rbx, rax
test rax, rax
jne 0x140201a7c
jmp 0x140201a9c
mov rcx, rbx
call fcn.140072eb0
test eax, eax
je 0x140201ac0
mov rcx, rsi
call fcn.140071750
xor r9d, r9d
mov r8d, 0xffffffff
mov rcx, rbx
lea edx, [rax - 1]
call fcn.140175570
test eax, eax
jne 0x140201a70
xor ebx, ebx
mov rcx, rdi
call fcn.14016cad0
mov eax, ebx
add rsp, 0xa8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov qword [rsp + 0x20], rdi
mov r9, rsi
mov r8, rbx
mov rdx, r12
mov rcx, rbp
call fcn.140201950
test eax, eax
je 0x140201a9c
mov rcx, rdi
call fcn.14016c9a0
mov rcx, rdi
call fcn.14016cb60
mov rcx, rdi
mov qword [rsp + 0x38], rax
call fcn.14016cb60
mov rcx, rdi
mov qword [rsp + 0x40], rax
call fcn.14016cb60
mov rcx, rdi
mov qword [rsp + 0x30], rax
call fcn.14016cb60
mov qword [rsp + 0x48], rax
test rax, rax
je 0x140201b40
mov r14, qword [rsp + 0x30]
mov r8, rsi
mov rdx, rbp
mov rcx, r14
call fcn.140200b50
test eax, eax
je 0x140201b40
mov rcx, r14
call fcn.140072eb0
test eax, eax
je 0x140201b4d
nop
mov rcx, rdi
call fcn.14016cad0
jmp 0x140201a9c
mov r13, qword [rsp + 0x48]
mov rdx, rsi
mov rcx, r13
call fcn.140071de0
test rax, rax
je 0x140201b40
mov rcx, r14
call fcn.140071750
mov rcx, r13
mov r15d, eax
call fcn.140071750
mov r13d, dword [rsi + 8]
mov rcx, r14
mov dword [rsp + 0x80], eax
mov edx, r13d
mov dword [rsp + 0x54], r13d
call fcn.1400730b0
test rax, rax
je 0x140201b40
movsxd rax, dword [r14 + 8]
mov r12, qword [r14]
cmp r13d, eax
jle 0x140201bbf
mov edx, dword [rsp + 0x54]
lea ecx, [rdx - 1]
mov edx, ecx
lea rcx, [r12 + rax*8]
sub edx, eax
lea r8, [rdx*8 + 8]
xor edx, edx
call sub.msvcrt.dll_memset
mov rdx, qword [rsp + 0x30]
mov eax, dword [rsp + 0x54]
mov rcx, qword [rsp + 0x38]
mov dword [rdx + 8], eax
mov edx, eax
call fcn.1400730b0
test rax, rax
je 0x140201b40
mov rax, qword [rsp + 0x38]
cmp dword [rsp + 0x54], 1
mov r13, qword [rax]
mov qword [r13], 1
jle 0x140202047
mov r14d, dword [rsp + 0x54]
xor edx, edx
lea rcx, [r13 + 8]
lea eax, [r14 - 1]
lea r8, [rax*8]
mov dword [rsp + 0x70], eax
call sub.msvcrt.dll_memset
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x40]
mov edx, r14d
mov dword [rax + 8], r14d
call fcn.1400730b0
test rax, rax
je 0x140201b40
mov rax, qword [rsp + 0x40]
mov rax, qword [rax]
mov qword [rsp + 0x58], rax
mov rcx, rax
mov r8d, dword [rsp + 0x54]
xor edx, edx
shl r8, 3
call sub.msvcrt.dll_memset
mov edx, dword [rsp + 0x54]
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], edx
mov rax, qword [rsp + 0x48]
mov rax, qword [rax]
mov qword [rsp + 0x60], rax
mov eax, edx
shr eax, 1
shl rax, 4
mov qword [rsp + 0x78], rax
mov eax, edx
and edx, 0xfffffffe
cdqe
movsxd r14, edx
mov dword [rsp + 0x74], edx
lea r11, [rax*8]
mov rdx, rax
movsxd rax, dword [rsp + 0x70]
shl r14, 3
mov qword [rsp + 0x68], r11
mov r11, rbx
mov ebx, dword [rsp + 0x80]
shl rax, 3
mov qword [rsp + 0x90], rax
mov eax, edx
mov qword [rsp + 0x98], rax
nop word [rax + rax]
mov rdx, qword [r12]
test r15d, r15d
je 0x140201ebf
test dl, 1
je 0x140201ee8
cmp r15d, 0x40
jg 0x140201cf6
cmp rdx, 1
je 0x140201fee
cmp r15d, ebx
jge 0x140201ecd
mov rax, qword [rsp + 0x30]
mov r8d, dword [rsp + 0x54]
mov rdx, qword [rax]
mov rax, qword [rsp + 0x38]
mov rax, qword [rax]
test r8d, r8d
jle 0x140201fa5
mov r10, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x30]
mov r13, qword [rsp + 0x58]
mov r12, qword [rsp + 0x60]
mov qword [rsp + 0x30], r10
mov r10, qword [rsp + 0x40]
mov qword [rsp + 0x48], rcx
mov rcx, qword [rsp + 0x38]
mov qword [rsp + 0x38], r10
mov qword [rsp + 0x40], rcx
mov ecx, r15d
mov r15d, ebx
mov ebx, ecx
cmp dword [rsp + 0x70], 1
jbe 0x140201e98
lea rcx, [r12 + 0xf]
lea r9, [rdx + 8]
mov r8, rcx
sub r8, r13
cmp r8, 0x1e
seta r10b
cmp r9, r12
setne r8b
sub rcx, rax
and r8d, r10d
cmp rcx, 0x1e
seta cl
and ecx, r8d
cmp r9, r13
setne r8b
test cl, r8b
je 0x140201e98
lea rcx, [rax + 8]
cmp r13, rcx
je 0x140201e98
mov r8, qword [rsp + 0x78]
xor ecx, ecx
nop dword [rax]
movdqu xmm0, xmmword [r12 + rcx]
movdqu xmm1, xmmword [rdx + rcx]
pxor xmm0, xmm1
movups xmmword [r12 + rcx], xmm0
movdqu xmm0, xmmword [r13 + rcx]
movdqu xmm2, xmmword [rax + rcx]
pxor xmm0, xmm2
movups xmmword [r13 + rcx], xmm0
add rcx, 0x10
cmp r8, rcx
jne 0x140201db8
mov r10d, dword [rsp + 0x74]
cmp dword [rsp + 0x54], r10d
je 0x140201e08
mov rcx, qword [rdx + r14]
xor qword [r12 + r14], rcx
mov rcx, qword [rax + r14]
xor qword [r13 + r14], rcx
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rdx
cmp r15d, ebx
jne 0x140201cd0
mov edx, ebx
lea eax, [rbx + 0x3e]
sub edx, 1
cmovns eax, edx
sar eax, 6
movsxd rdx, eax
mov r15d, eax
mov rcx, qword [r12 + rdx*8]
test rcx, rcx
jne 0x140202088
test eax, eax
je 0x140201e75
lea ecx, [rax - 1]
sub rdx, 2
movsxd rax, ecx
mov ecx, ecx
sub rdx, rcx
jmp 0x140201e65
sub rax, 1
cmp rdx, rax
je 0x140201f9d
mov rcx, qword [r12 + rax*8]
test rcx, rcx
je 0x140201e58
mov r15d, eax
shl r15d, 6
mov qword [rsp + 0x80], r11
call fcn.140071690
mov r11, qword [rsp + 0x80]
add r15d, eax
jmp 0x140201cd0
mov r9, qword [rsp + 0x68]
xor ecx, ecx
nop
mov r8, qword [rdx + rcx]
xor qword [r12 + rcx], r8
mov r8, qword [rax + rcx]
xor qword [r13 + rcx], r8
add rcx, 8
cmp r9, rcx
jne 0x140201ea0
jmp 0x140201e08
test rdx, rdx
jne 0x140201cec
jmp 0x140201b40
mov ecx, dword [rsp + 0x54]
mov rax, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
test ecx, ecx
jg 0x140201d57
jmp 0x140201e12
mov rax, qword [r13]
mov r10, qword [rsi]
mov r9, rax
mov rcx, qword [r10]
and r9d, 1
neg r9
and rcx, r9
xor rcx, rax
cmp dword [rsp + 0x54], 1
jle 0x14020203c
mov qword [rsp + 0x88], r14
mov eax, 1
mov qword [rsp + 0x80], r11
mov r11, qword [rsp + 0x98]
nop word [rax + rax]
mov r14, rdx
mov rdx, qword [r12 + rax*8]
mov r8, rdx
shld r8, r14, 0x3f
mov r14, rcx
mov qword [r12 + rax*8 - 8], r8
mov rcx, qword [r10 + rax*8]
and rcx, r9
xor rcx, qword [r13 + rax*8]
mov r8, rcx
shld r8, r14, 0x3f
mov qword [r13 + rax*8 - 8], r8
add rax, 1
cmp r11, rax
jne 0x140201f30
mov rax, qword [rsp + 0x90]
mov r11, qword [rsp + 0x80]
mov r14, qword [rsp + 0x88]
lea r8, [r12 + rax]
add rax, r13
shr rdx, 1
shr rcx, 1
sub r15d, 1
mov qword [r8], rdx
mov qword [rax], rcx
jmp 0x140201cd0
xor r15d, r15d
jmp 0x140201e75
mov r13, qword [rsp + 0x58]
mov r12, qword [rsp + 0x60]
mov qword [rsp + 0x58], rax
mov eax, r15d
mov qword [rsp + 0x60], rdx
mov r15d, ebx
mov rdx, qword [rsp + 0x48]
mov ebx, eax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x30], rdx
mov rdx, qword [rsp + 0x40]
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x38], rdx
mov qword [rsp + 0x40], rax
jmp 0x140201cd0
mov r15, qword [rsp + 0x38]
mov rbx, r11
mov rcx, r15
call fcn.140073220
mov rdx, r15
mov rcx, rbp
call fcn.140071de0
test rax, rax
je 0x140201b40
mov rcx, rdi
call fcn.14016cad0
mov qword [rsp + 0x20], rdi
mov r8, rbx
mov r9, rsi
mov rdx, rbp
mov rcx, rbp
xor ebx, ebx
call fcn.140201950
test eax, eax
setne bl
jmp 0x140201a9e
mov rax, r13
mov r8, r12
jmp 0x140201f88
mov rdx, rax
mov eax, dword [rsp + 0x54]
mov rcx, qword [rsp + 0x40]
mov dword [rdx + 8], eax
mov edx, eax
call fcn.1400730b0
test rax, rax
je 0x140201b40
mov rax, qword [rsp + 0x40]
mov rax, qword [rax]
mov qword [rsp + 0x58], rax
mov eax, dword [rsp + 0x54]
cmp eax, 1
je 0x140202091
sub eax, 1
mov dword [rsp + 0x70], eax
jmp 0x140201c5a
shl r15d, 6
jmp 0x140201e75
xor r9d, r9d
mov rcx, qword [rsp + 0x58]
mov dword [rsp + 0x70], r9d
jmp 0x140201c4a