Function at 0x140089e48
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r12
push rbp
push r13
push r14
lea rbp, [rax - 0x4f]
sub rsp, 0xb0
mov r11, qword [rbp + 0x77]
mov rsi, r9
movaps xmmword [rax - 0x28], xmm6
mov r10, rcx
movaps xmmword [rax - 0x38], xmm7
movaps xmmword [rax - 0x48], xmm8
mov al, r9b
or al, r11b
test al, 0xf
jne 0x14008a0b9
cmp dword [0x1401868d4], 3
jl 0x14008a0b9
mov ecx, dword [rcx + 0x14]
mov rax, qword [r10 + 0x28]
mov r14, qword [r10 + 8]
mov r9, qword [r10]
imul ecx, r8d
add ecx, edx
xor edi, edi
mov ebx, edi
mov r8d, edi
mov r13d, dword [rax + rcx*4]
lea r12d, [rdi + 0x10]
mov eax, dword [r14 + r8*4]
add eax, dword [r14 + r13*4]
mov ecx, eax
mov al, byte [r9 + rax*4]
mov byte [rbp + r8 - 0x69], al
mov eax, dword [r9 + rcx*4]
shr eax, 8
mov byte [rbp + r8 - 0x29], al
mov eax, ebx
shl eax, 4
mov ecx, dword [r14 + rax*4]
add ecx, dword [r14 + r13*4]
mov al, byte [r9 + rcx*4]
mov byte [rbp + r8 - 0x79], al
mov eax, dword [r9 + rcx*4]
shr eax, 8
mov byte [rbp + r8 - 0x39], al
mov eax, ebx
shl eax, 8
mov ecx, dword [r14 + rax*4]
add ecx, dword [r14 + r13*4]
mov al, byte [r9 + rcx*4]
mov byte [rbp + r8 - 0x59], al
mov eax, dword [r9 + rcx*4]
shr eax, 8
mov byte [rbp + r8 - 0x19], al
mov eax, ebx
shl eax, 0xc
inc ebx
mov ecx, dword [r14 + rax*4]
add ecx, dword [r14 + r13*4]
mov al, byte [r9 + rcx*4]
mov byte [rbp + r8 - 0x49], al
mov eax, dword [r9 + rcx*4]
shr eax, 8
mov byte [rbp + r8 - 9], al
inc r8
cmp ebx, r12d
jb 0x140089ec0
mov r9, qword [rbp + 0x7f]
movdqa xmm8, xmmword [0x140116640]
psllw xmm8, 4
cmp r9, 0x20
jb 0x14008a079
mov rcx, rsi
lea rdx, [r11 + 0x10]
sub rcx, r11
sub r12, r11
movdqa xmm6, xmmword [rcx + rdx - 0x10]
add rdi, 0x20
movdqa xmm1, xmmword [rcx + rdx]
movdqa xmm7, xmm6
pand xmm6, xmmword [0x140116630]
movdqa xmm0, xmm1
pand xmm1, xmmword [0x140116630]
movdqa xmm5, xmmword [rbp - 0x79]
movdqa xmm2, xmmword [rbp - 0x39]
psrlw xmm0, 8
packuswb xmm6, xmm1
movdqa xmm1, xmmword [rbp - 0x59]
movdqa xmm4, xmm6
pand xmm4, xmmword [0x140116640]
pand xmm6, xmm8
psrlw xmm7, 8
packuswb xmm7, xmm0
movdqa xmm0, xmmword [rbp - 0x69]
movdqa xmm3, xmm7
pand xmm3, xmmword [0x140116640]
pand xmm7, xmm8
pshufb xmm0, xmm4
pshufb xmm1, xmm3
psrlw xmm6, 4
pshufb xmm5, xmm6
pshufb xmm2, xmm6
pxor xmm5, xmm0
psrlw xmm7, 4
movdqa xmm0, xmmword [rbp - 0x49]
pxor xmm5, xmm1
movdqa xmm1, xmmword [rbp - 0x19]
pshufb xmm0, xmm7
pshufb xmm1, xmm3
pxor xmm5, xmm0
movdqa xmm0, xmmword [rbp - 0x29]
pshufb xmm0, xmm4
pxor xmm2, xmm0
movdqa xmm0, xmmword [rbp - 9]
pshufb xmm0, xmm7
pxor xmm2, xmm1
pxor xmm2, xmm0
movdqa xmm0, xmm5
punpcklbw xmm0, xmm2
pxor xmm0, xmmword [rdx - 0x10]
punpckhbw xmm5, xmm2
pxor xmm5, xmmword [rdx]
movdqa xmmword [rdx - 0x10], xmm0
movdqa xmmword [rdx], xmm5
lea rdx, [rdx + 0x20]
lea rax, [r12 + rdx]
cmp rax, r9
jbe 0x140089f7d
cmp rdi, r9
jae 0x14008a0b5
sub r9, rdi
lea rbx, [rdi + r11]
dec r9
sub rsi, r11
shr r9, 1
inc r9
movzx ecx, word [rbx + rsi]
mov r8, qword [r10 + 8]
mov edx, dword [r8 + rcx*4]
add edx, dword [r8 + r13*4]
mov rcx, qword [r10]
movzx edx, word [rcx + rdx*4]
xor word [rbx], dx
lea rbx, [rbx + 2]
sub r9, 1
jne 0x14008a091
mov al, 1
jmp 0x14008a0bb
xor al, al
lea r11, [rsp + 0xb0]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov r12, qword [r11 + 0x38]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
mov rsp, r11
pop r14
pop r13
pop rbp
ret