Function at 0x14020ba80
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x78
mov rax, qword [rsp + 0xe0]
movq xmm0, qword [rax]
mov eax, dword [rsp + 0xe8]
pshufd xmm3, xmm0, 0xe5
mov rdi, rcx
mov rsi, rdx
movd ebp, xmm3
mov qword [rsp + 0xd8], r9
mov r11d, r8d
movd ebx, xmm0
lea r10d, [r8 - 8]
test eax, eax
je 0x14020bc78
test r10d, r10d
js 0x14020bfc0
mov r12d, r10d
mov dword [rsp + 0x5c], r10d
mov r13, rdx
shr r12d, 3
mov qword [rsp + 0xc8], rdx
lea eax, [r12 + 1]
mov dword [rsp + 0x58], r12d
lea r8, [rax*8]
mov dword [rsp + 0xd0], r11d
lea rax, [rcx + r8]
mov qword [rsp + 0x50], r8
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x68]
mov qword [rsp + 0x40], rax
nop
movq xmm1, qword [rdi]
mov rdx, qword [rsp + 0xd8]
add r13, 8
add rdi, 8
mov rcx, qword [rsp + 0x40]
pxor xmm0, xmm1
movq qword [rsp + 0x68], xmm0
call fcn.14020b800
movq xmm0, qword [rsp + 0x68]
mov ebx, dword [rsp + 0x68]
mov ebp, dword [rsp + 0x6c]
pshufd xmm2, xmm0, 0xe5
movd ecx, xmm2
mov r10d, ebx
mov r9d, ebx
mov eax, ecx
mov esi, ecx
mov r11d, ecx
mov r12d, ecx
shr eax, 0x18
shr esi, 0x10
movzx ecx, cl
mov r8d, ebx
mov edx, eax
movzx eax, al
mov r14d, esi
movzx esi, sil
shl rax, 8
shr r11d, 8
mov byte [rsp + 0x28], bl
shr r10d, 0x18
or rax, rsi
mov r15d, r11d
movzx r11d, r11b
shl rax, 8
mov byte [rsp + 0x3c], r10b
movzx r10d, r10b
shr r9d, 0x10
or rax, r11
mov byte [rsp + 0x38], r9b
movzx r9d, r9b
shr r8d, 8
shl rax, 8
mov byte [rsp + 0x34], r8b
movzx r8d, r8b
or rax, rcx
movzx ecx, bl
shl rax, 8
or rax, r10
shl rax, 8
or rax, r9
shl rax, 8
or rax, r8
shl rax, 8
or rax, rcx
mov qword [r13 - 8], rax
mov rax, qword [rsp + 0x48]
cmp rdi, rax
jne 0x14020bb20
mov edi, r12d
mov r12d, dword [rsp + 0x58]
mov r8, qword [rsp + 0x50]
mov r11d, dword [rsp + 0xd0]
mov r10d, dword [rsp + 0x5c]
mov eax, r12d
mov rsi, qword [rsp + 0xc8]
neg eax
shl eax, 3
lea ecx, [r11 + rax - 0x10]
cmp ecx, 0xfffffff8
je 0x14020bdf1
add rsi, r8
lea r11d, [rax + r10]
mov rdi, qword [rsp + 0x48]
movsxd rax, r11d
add rdi, rax
movzx r8d, byte [rdi - 1]
mov rax, rdi
cmp r11d, 7
ja case.0x14020bc70.0
lea rcx, [0x140438508]
mov edx, r11d
movsxd rdx, dword [rcx + rdx*4]
add rdx, rcx
jmp rdx
cmp r8d, 7
jle 0x14020bf50
mov r14d, r10d
mov dword [rsp + 0x38], r10d
mov r13, rcx
shr r14d, 3
mov qword [rsp + 0xc0], rcx
lea eax, [r14 + 1]
mov dword [rsp + 0xd0], r8d
lea r15, [rax*8]
lea rax, [rsp + 0x68]
mov dword [rsp + 0x34], r14d
mov qword [rsp + 0x40], rax
lea r12, [rdx + r15]
mov r14, rax
mov qword [rsp + 0x28], r15
nop dword [rax + rax]
mov r15d, ebp
mov rdx, qword [rsp + 0xd8]
mov edi, ebx
mov rcx, r14
mov ebx, dword [r13]
mov ebp, dword [r13 + 4]
add rsi, 8
add r13, 8
mov dword [rsp + 0x68], ebx
mov dword [rsp + 0x6c], ebp
call fcn.14020b920
mov ecx, dword [rsp + 0x6c]
xor edi, dword [rsp + 0x68]
mov r10d, edi
mov r9d, edi
mov r8d, edi
movzx edx, dil
shr r10d, 0x18
xor ecx, r15d
shr r9d, 0x10
mov eax, ecx
mov r15d, ecx
mov r11d, ecx
movzx ecx, cl
shr eax, 0x18
shr r15d, 0x10
movzx r10d, r10b
movzx r9d, r9b
shr r11d, 8
movzx eax, al
movzx r15d, r15b
shr r8d, 8
shl rax, 8
movzx r11d, r11b
movzx r8d, r8b
or rax, r15
shl rax, 8
or rax, r11
shl rax, 8
or rax, rcx
shl rax, 8
or rax, r10
shl rax, 8
or rax, r9
shl rax, 8
or rax, r8
shl rax, 8
or rax, rdx
mov qword [rsi - 8], rax
cmp rsi, r12
jne 0x14020bcd0
mov r14d, dword [rsp + 0x34]
mov r11d, dword [rsp + 0xd0]
mov r15, qword [rsp + 0x28]
mov r10d, dword [rsp + 0x38]
neg r14d
mov rdi, qword [rsp + 0xc0]
shl r14d, 3
lea eax, [r11 + r14 - 0x10]
cmp eax, 0xfffffff8
jne 0x14020c020
movzx eax, bh
mov byte [rsp + 0x28], bl
mov r14d, ebp
mov edi, ebp
mov dword [rsp + 0x34], eax
mov eax, ebx
shr ebx, 0x18
shr eax, 0x10
mov dword [rsp + 0x3c], ebx
shr r14d, 0x10
mov byte [rsp + 0x38], al
mov eax, ebp
shr ebp, 0x18
movzx eax, ah
mov edx, ebp
mov r15d, eax
movzx eax, dl
movzx r14d, r14b
movzx r15d, r15b
movzx edx, dil
shl rax, 8
mov rbx, qword [rsp + 0xe0]
or rax, r14
shl rax, 8
or rax, r15
shl rax, 8
or rax, rdx
movzx edx, byte [rsp + 0x3c]
shl rax, 8
or rax, rdx
movzx edx, byte [rsp + 0x38]
shl rax, 8
or rax, rdx
movzx edx, byte [rsp + 0x34]
shl rax, 8
or rax, rdx
movzx edx, byte [rsp + 0x28]
shl rax, 8
or rax, rdx
mov qword [rbx], rax
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor r8d, r8d
movzx edx, byte [rax - 1]
sub rax, 1
shl edx, 8
or edx, r8d
lea rcx, [rax - 1]
movzx eax, byte [rax - 1]
or eax, edx
xor ebp, eax
movzx r8d, byte [rcx - 1]
lea rax, [rcx - 1]
shl r8d, 0x18
movzx ecx, byte [rax - 1]
lea rdx, [rax - 1]
shl ecx, 0x10
or ecx, r8d
lea rax, [rdx - 1]
movzx edx, byte [rdx - 1]
shl edx, 8
or edx, ecx
movzx eax, byte [rax - 1]
mov rcx, qword [rsp + 0x40]
mov dword [rsp + 0x6c], ebp
or eax, edx
mov rdx, qword [rsp + 0xd8]
xor eax, ebx
mov dword [rsp + 0x68], eax
call fcn.14020b800
mov eax, dword [rsp + 0x68]
mov edx, eax
movzx edi, ah
mov byte [rsp + 0x28], al
shr eax, 0x18
shr edx, 0x10
mov dword [rsp + 0x3c], eax
mov byte [rsp + 0x38], dl
mov edx, dword [rsp + 0x6c]
mov dword [rsp + 0x34], edi
movzx eax, dh
mov r14d, edx
mov edi, edx
shr edx, 0x18
mov r15d, eax
mov rax, qword [rsp + 0x68]
shr r14d, 0x10
mov qword [rsi], rax
jmp 0x14020bdf1
xor edx, edx
jmp 0x14020be79
mov rcx, rdi
jmp 0x14020be85
xor r8d, r8d
jmp 0x14020be92
mov rdx, rdi
xor ecx, ecx
jmp 0x14020bea0
lea rax, [rsp + 0x68]
mov r13d, ebx
mov r12, rdx
mov esi, ebp
mov qword [rsp + 0x40], rax
mov ebx, dword [rdi]
mov ebp, dword [rdi + 4]
mov dword [rsp + 0xd0], r11d
mov rdx, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x40]
mov dword [rsp + 0x68], ebx
mov dword [rsp + 0x6c], ebp
call fcn.14020b920
xor r13d, dword [rsp + 0x68]
xor esi, dword [rsp + 0x6c]
movsxd rax, dword [rsp + 0xd0]
mov r11, rax
add rax, r12
cmp r11d, 7
ja case.0x14020bfb7.0
lea rcx, [0x140438528]
mov r11d, r11d
movsxd rdx, dword [rcx + r11*4]
add rdx, rcx
jmp rdx
lea rax, [rsp + 0x68]
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x40], rax
jmp 0x14020bc42
mov edx, esi
sub rax, 1
shr edx, 0x10
mov byte [rax], dl
mov edx, esi
sub rax, 1
mov byte [rax], dh
mov byte [rax - 1], sil
lea rdx, [rax - 1]
mov ecx, r13d
lea rax, [rdx - 1]
shr ecx, 0x18
mov byte [rdx - 1], cl
mov ecx, r13d
lea rdx, [rax - 1]
shr ecx, 0x10
mov byte [rax - 1], cl
mov ecx, r13d
lea rax, [rdx - 1]
mov byte [rdx - 1], ch
mov byte [rax - 1], r13b
jmp 0x14020bdc0
add rdi, r15
lea r11d, [r14 + r10]
mov r13d, ebx
mov esi, ebp
jmp 0x14020bf62
sub rax, 1
shl r8d, 0x10
jmp 0x14020be6b
mov rdx, rax
jmp 0x14020bfef
mov rdx, rax
jmp 0x14020c009
xor edx, edx
jmp 0x14020bead