Function at 0x14008a6f0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x98
movdqa xmmword [rsp + 0x80], xmm6
mov r14d, ecx
mov r15, qword [rsp + 0x120]
mov r13, qword [rsp + 0x118]
mov rbx, qword [rsp + 0x110]
mov r11, qword [rsp + 0x108]
mov r10, qword [rsp + 0x100]
movzx r8d, r8b
test dl, dl
jne 0x14008adbb
mov r14d, r15d
and r14d, 0x1f
mov rsi, r15
and rsi, 0xffffffffffffffe0
lea rdi, [rsi + r13]
lea r12, [rdi + r14]
test rsi, rsi
mov qword [rsp + 0x60], r8
mov qword [rsp + 0x68], r14
mov qword [rsp + 0x58], r9
je 0x14008a960
mov eax, r15d
and eax, 1
mov r15, r14
mov qword [rsp + 0x78], rax
sub r15, rax
lea rax, [rdi + r15]
mov qword [rsp + 0x70], rax
xor r14d, r14d
pxor xmm6, xmm6
mov rbx, 0xffffffffffffffff
xor ebp, ebp
jmp 0x14008a7da
xor ecx, ecx
inc rbp
add rax, rcx
mov rcx, 0xffffffffffffffff
cmovb rax, rcx
cmp rax, rbx
cmovb rbx, rax
movzx eax, r14b
movzx r14d, byte [rsp + 0x57]
cmova r14d, eax
cmp rbp, 4
mov r10, qword [rsp + 0x100]
je 0x14008a935
lea rax, [0x14014c738]
movzx ecx, byte [rbp + rax]
mov rax, qword [rsp + 0x120]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], r13
mov r8, qword [rsp + 0x110]
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x28], r11
mov qword [rsp + 0x20], r10
mov byte [rsp + 0x57], cl
mov rdx, qword [rsp + 0x60]
mov r9, qword [rsp + 0x58]
call fcn.1400896f0
xor ecx, ecx
xor eax, eax
mov r8, qword [rsp + 0x68]
jmp 0x14008a839
add rcx, 0x20
cmp rsi, rcx
je 0x14008a890
movdqu xmm0, xmmword [r13 + rcx]
movdqu xmm1, xmmword [r13 + rcx + 0x10]
pxor xmm2, xmm2
psubb xmm2, xmm0
pminub xmm2, xmm0
pxor xmm0, xmm0
psubb xmm0, xmm1
pminub xmm0, xmm1
psadbw xmm0, xmm6
psadbw xmm2, xmm6
paddq xmm2, xmm0
pshufd xmm0, xmm2, 0xee
paddq xmm0, xmm2
movq rdx, xmm0
add rdx, rax
mov rax, 0xffffffffffffffff
jb 0x14008a830
mov rax, rdx
jmp 0x14008a830
test r8, r8
mov r11, qword [rsp + 0x108]
je 0x14008a7a0
cmp r8d, 1
jne 0x14008a8b0
xor ecx, ecx
mov rdx, rdi
jmp 0x14008a910
pxor xmm0, xmm0
xor ecx, ecx
nop word cs:[rax + rax]
movzx edx, word [rdi + rcx]
movd xmm1, edx
pxor xmm2, xmm2
psubb xmm2, xmm1
pminub xmm2, xmm1
punpcklbw xmm2, xmm6
punpcklwd xmm2, xmm6
punpckldq xmm2, xmm6
paddq xmm0, xmm2
add rcx, 2
cmp r15, rcx
jne 0x14008a8c0
pshufd xmm1, xmm0, 0xee
paddq xmm1, xmm0
movq rcx, xmm1
mov rdx, qword [rsp + 0x70]
cmp qword [rsp + 0x78], 0
je 0x14008a7a2
nop dword [rax]
movzx r8d, byte [rdx]
inc rdx
mov r9d, r8d
sar r9b, 7
xor r8b, r9b
sub r8b, r9b
movzx r8d, r8b
add rcx, r8
cmp rdx, r12
jne 0x14008a910
jmp 0x14008a7a2
mov al, 4
cmp r14b, 4
mov r9, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x110]
mov r15, qword [rsp + 0x120]
mov r8, qword [rsp + 0x60]
jne 0x14008adbb
jmp 0x14008ade5
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], r11
mov qword [rsp + 0x20], r10
mov cl, 1
mov rdx, r8
mov rsi, r8
mov r8, rbx
mov rbp, r15
mov r15, r11
call fcn.1400896f0
test r14, r14
je 0x14008a9b3
cmp r14d, 1
mov rdx, rsi
mov r11, r15
jne 0x14008aa2c
xor ebp, ebp
mov rax, rdi
mov r9, qword [rsp + 0x58]
jmp 0x14008aaa0
mov qword [rsp + 0x40], rbp
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], r15
mov rdi, qword [rsp + 0x100]
mov qword [rsp + 0x20], rdi
mov cl, 2
mov rdx, rsi
mov r8, rbx
mov r12, r15
mov r15, qword [rsp + 0x58]
mov r9, r15
call fcn.1400896f0
mov qword [rsp + 0x40], rbp
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], rdi
mov cl, 3
mov rdx, rsi
mov r8, rbx
mov r9, r15
call fcn.1400896f0
mov r9, r15
mov r14b, 4
mov r8, rsi
mov r10, rdi
mov r11, r12
mov r15, rbp
jmp 0x14008adbb
mov rcx, qword [rsp + 0x120]
and ecx, 1
mov r10, r14
sub r10, rcx
lea rax, [rdi + r10]
pxor xmm0, xmm0
xor r8d, r8d
pxor xmm1, xmm1
nop dword [rax]
movzx r9d, word [rdi + r8]
movd xmm2, r9d
pxor xmm3, xmm3
psubb xmm3, xmm2
pminub xmm3, xmm2
punpcklbw xmm3, xmm0
punpcklwd xmm3, xmm0
punpckldq xmm3, xmm0
paddq xmm1, xmm3
add r8, 2
cmp r10, r8
jne 0x14008aa50
pshufd xmm0, xmm1, 0xee
paddq xmm0, xmm1
movq rbp, xmm0
test rcx, rcx
mov r9, qword [rsp + 0x58]
je 0x14008aabe
nop word [rax + rax]
movzx ecx, byte [rax]
inc rax
mov r8d, ecx
sar r8b, 7
xor cl, r8b
sub cl, r8b
movzx ecx, cl
add rbp, rcx
cmp rax, r12
jne 0x14008aaa0
mov rsi, qword [rsp + 0x120]
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], r11
mov rax, qword [rsp + 0x100]
mov qword [rsp + 0x20], rax
mov cl, 2
mov r8, rbx
call fcn.1400896f0
mov rdx, qword [rsp + 0x68]
cmp edx, 1
jne 0x14008ab10
xor r14d, r14d
mov rax, rdi
mov rdx, qword [rsp + 0x60]
mov r9, qword [rsp + 0x108]
jmp 0x14008ab80
mov ecx, esi
and ecx, 1
sub rdx, rcx
lea rax, [rdi + rdx]
pxor xmm0, xmm0
xor r8d, r8d
pxor xmm1, xmm1
nop word [rax + rax]
movzx r9d, word [rdi + r8]
movd xmm2, r9d
pxor xmm3, xmm3
psubb xmm3, xmm2
pminub xmm3, xmm2
punpcklbw xmm3, xmm0
punpcklwd xmm3, xmm0
punpckldq xmm3, xmm0
paddq xmm1, xmm3
add r8, 2
cmp rdx, r8
jne 0x14008ab30
pshufd xmm0, xmm1, 0xee
paddq xmm0, xmm1
movq r14, xmm0
test rcx, rcx
mov rdx, qword [rsp + 0x60]
mov r9, qword [rsp + 0x108]
je 0x14008ab9e
nop
movzx ecx, byte [rax]
inc rax
mov r8d, ecx
sar r8b, 7
xor cl, r8b
sub cl, r8b
movzx ecx, cl
add r14, rcx
cmp rax, r12
jne 0x14008ab80
mov rsi, qword [rsp + 0x120]
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], r9
mov rax, qword [rsp + 0x100]
mov qword [rsp + 0x20], rax
mov cl, 3
mov r8, rbx
mov r9, qword [rsp + 0x58]
call fcn.1400896f0
mov rdx, qword [rsp + 0x68]
cmp edx, 1
jne 0x14008abf4
xor esi, esi
mov rax, rdi
mov rdx, qword [rsp + 0x60]
mov r9, qword [rsp + 0x108]
jmp 0x14008ac60
mov ecx, esi
and ecx, 1
sub rdx, rcx
lea rax, [rdi + rdx]
pxor xmm0, xmm0
xor r8d, r8d
pxor xmm1, xmm1
nop dword [rax + rax]
movzx r9d, word [rdi + r8]
movd xmm2, r9d
pxor xmm3, xmm3
psubb xmm3, xmm2
pminub xmm3, xmm2
punpcklbw xmm3, xmm0
punpcklwd xmm3, xmm0
punpckldq xmm3, xmm0
paddq xmm1, xmm3
add r8, 2
cmp rdx, r8
jne 0x14008ac10
pshufd xmm0, xmm1, 0xee
paddq xmm0, xmm1
movq rsi, xmm0
test rcx, rcx
mov rdx, qword [rsp + 0x60]
mov r9, qword [rsp + 0x108]
je 0x14008ac7e
nop
movzx ecx, byte [rax]
inc rax
mov r8d, ecx
sar r8b, 7
xor cl, r8b
sub cl, r8b
movzx ecx, cl
add rsi, rcx
cmp rax, r12
jne 0x14008ac60
cmp rbp, r14
mov bl, 2
sbb bl, 0
mov r15, qword [rsp + 0x120]
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x38], r13
mov r8, qword [rsp + 0x110]
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x28], r9
mov rax, qword [rsp + 0x100]
mov qword [rsp + 0x20], rax
mov cl, 4
mov r9, qword [rsp + 0x58]
call fcn.1400896f0
mov r9, qword [rsp + 0x68]
cmp r9d, 1
jne 0x14008ace7
xor ecx, ecx
mov rax, rdi
mov r9, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x60]
mov r11, qword [rsp + 0x108]
jmp 0x14008ad60
mov edx, r15d
and edx, 1
sub r9, rdx
lea rax, [rdi + r9]
pxor xmm0, xmm0
xor ecx, ecx
pxor xmm1, xmm1
nop
movzx r8d, word [rdi + rcx]
movd xmm2, r8d
pxor xmm3, xmm3
psubb xmm3, xmm2
pminub xmm3, xmm2
punpcklbw xmm3, xmm0
punpcklwd xmm3, xmm0
punpckldq xmm3, xmm0
paddq xmm1, xmm3
add rcx, 2
cmp r9, rcx
jne 0x14008ad00
pshufd xmm0, xmm1, 0xee
paddq xmm0, xmm1
movq rcx, xmm0
test rdx, rdx
mov r9, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x60]
mov r11, qword [rsp + 0x108]
je 0x14008ad7e
nop word cs:[rax + rax]
movzx edx, byte [rax]
inc rax
mov r8d, edx
sar r8b, 7
xor dl, r8b
sub dl, r8b
movzx edx, dl
add rcx, rdx
cmp rax, r12
jne 0x14008ad60
cmp r14, rbp
cmovb rbp, r14
cmp rsi, rbp
movzx eax, bl
mov r14d, 3
cmova r14d, eax
cmovb rbp, rsi
mov al, 4
cmp rcx, rbp
mov rbx, qword [rsp + 0x110]
mov r10, qword [rsp + 0x100]
mov r15, qword [rsp + 0x120]
jbe 0x14008ade5
mov r8, rdi
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], r11
mov qword [rsp + 0x20], r10
mov ecx, r14d
mov rdx, r8
mov r8, rbx
call fcn.1400896f0
mov eax, r14d
movaps xmm6, xmmword [rsp + 0x80]
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret