Function at 0x140046a74
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 r10, r9
movaps xmmword [rax - 0x28], xmm6
mov rbx, rcx
movaps xmmword [rax - 0x38], xmm7
movaps xmmword [rax - 0x48], xmm8
mov al, r9b
or al, r11b
test al, 0xf
jne 0x140046ce1
cmp dword [0x1400a5074], 3
jl 0x140046ce1
imul r8d, dword [rcx + 0x14]
mov rax, qword [rcx + 0x28]
mov r14, qword [rcx + 8]
mov r9, qword [rcx]
add r8d, edx
xor edi, edi
mov esi, edi
mov r13d, dword [rax + r8*4]
mov r8d, edi
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, esi
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, esi
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, esi
shl eax, 0xc
inc esi
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 esi, r12d
jb 0x140046aeb
mov r9, qword [rbp + 0x7f]
sub r10, r11
movdqa xmm8, xmmword [0x1400763c0]
psllw xmm8, 4
cmp r9, 0x20
jb 0x140046ca3
lea rcx, [r11 + 0x10]
sub r12, r11
movdqu xmm6, xmmword [r10 + rcx - 0x10]
add rdi, 0x20
movdqu xmm1, xmmword [r10 + rcx]
movdqa xmm7, xmm6
pand xmm6, xmmword [0x1400763b0]
movdqa xmm0, xmm1
pand xmm1, xmmword [0x1400763b0]
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 [0x1400763c0]
pand xmm6, xmm8
psrlw xmm7, 8
packuswb xmm7, xmm0
movdqa xmm0, xmmword [rbp - 0x69]
movdqa xmm3, xmm7
pand xmm3, xmmword [0x1400763c0]
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 [rcx - 0x10]
punpckhbw xmm5, xmm2
pxor xmm5, xmmword [rcx]
movdqu xmmword [rcx - 0x10], xmm0
movdqu xmmword [rcx], xmm5
lea rcx, [rcx + 0x20]
lea rax, [r12 + rcx]
cmp rax, r9
jbe 0x140046ba5
cmp rdi, r9
jae 0x140046cdd
sub r9, rdi
add r11, rdi
dec r9
shr r9, 1
inc r9
movzx ecx, word [r10 + r11]
mov r8, qword [rbx + 8]
mov edx, dword [r8 + rcx*4]
add edx, dword [r8 + r13*4]
mov rcx, qword [rbx]
movzx edx, word [rcx + rdx*4]
xor word [r11], dx
lea r11, [r11 + 2]
sub r9, 1
jne 0x140046cb7
mov al, 1
jmp 0x140046ce3
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