Function at 0x140148be9
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov edi, 0xffffffff
test rcx, rcx
je 0x140148efc
mov rsi, rdx
lea rax, [rdx - 8]
cmp rax, 0x3ff8
ja 0x140148efc
mov r14, rcx
mov rax, qword [rcx + 8]
mov qword [rsp + 0x28], rax
test rax, rax
je 0x140148efc
mov r12, qword [r14 + 0x10]
mov rbx, rsi
shl rbx, 5
mov rcx, rbx
call qword [case.0x1400f5a1c.1]
mov qword [r14 + 8], rax
test rax, rax
je 0x140148ef3
xor edi, edi
mov rcx, rax
xor edx, edx
mov r8, rbx
call fcn.1401cd0e0
mov qword [r14 + 0x10], rsi
test r12, r12
je 0x140148ee6
xor eax, eax
mov qword [rsp + 0x30], rax
xor r15d, r15d
mov rsi, r15
shl rsi, 5
mov rax, qword [rsp + 0x28]
cmp dword [rax + rsi + 0x14], 0
je 0x140148dbe
cmp r12, 0x80
jne 0x140148cc5
mov r8, qword [r14 + 0x10]
mov rax, qword [rsp + 0x28]
mov edx, dword [rax + rsi + 0x10]
mov rcx, qword [rax + rsi + 8]
cmp r8, 0x80
jne 0x140148d65
call fcn.140148a54
mov r13d, eax
mov r8d, 0x80
jmp 0x140148cd3
mov rax, qword [rsp + 0x28]
mov r13d, dword [rax + rsi + 0x18]
mov r8, qword [r14 + 0x10]
mov eax, r13d
xor edx, edx
div r8
mov rbx, rdx
mov rax, qword [r14 + 8]
shl rbx, 5
cmp dword [rax + rbx + 0x14], 0
je 0x140148d39
mov ecx, 0x20
call qword [case.0x1400f5a1c.1]
test rax, rax
je 0x140148db4
mov rdx, qword [rsp + 0x28]
mov rcx, qword [rdx + rsi + 8]
mov qword [rax + 8], rcx
mov ecx, dword [rdx + rsi + 0x10]
mov dword [rax + 0x10], ecx
mov dword [rax + 0x18], r13d
mov rcx, qword [r14 + 8]
mov rcx, qword [rcx + rbx]
mov qword [rax], rcx
mov dword [rax + 0x14], 1
mov rcx, qword [r14 + 8]
mov qword [rcx + rbx], rax
jmp 0x140148dbe
add rsi, qword [rsp + 0x28]
movups xmm0, xmmword [rsi]
movups xmm1, xmmword [rsi + 0x10]
movups xmmword [rax + rbx + 0x10], xmm1
movups xmmword [rax + rbx], xmm0
mov rax, qword [r14 + 8]
mov qword [rax + rbx], 0
mov rax, qword [r14 + 8]
mov dword [rax + rbx + 0x18], r13d
jmp 0x140148dbe
xor r13d, r13d
test edx, edx
jle 0x140148cd3
test rcx, rcx
je 0x140148cd3
mov edi, dword [r14 + 0x30]
xor eax, eax
movzx ebp, byte [rcx + rax]
add ebp, edi
mov ebx, ebp
shl ebx, 0xa
add ebx, ebp
mov edi, ebx
shr edi, 6
xor edi, ebx
inc rax
cmp rdx, rax
jne 0x140148d7f
lea eax, [rdi + rdi*8]
mov ecx, eax
shr ecx, 0xb
xor ecx, eax
mov r13d, ecx
shl r13d, 0xf
add r13d, ecx
jmp 0x140148cd3
mov eax, 0xffffffff
mov qword [rsp + 0x30], rax
inc r15
cmp r15, r12
jne 0x140148c76
test r12, r12
je 0x140148ee1
xor r13d, r13d
mov rax, r13
shl rax, 5
mov rcx, qword [rsp + 0x28]
mov rsi, qword [rcx + rax]
test rsi, rsi
je 0x140148ed5
mov r15, qword [rsi]
cmp r12, 0x80
jne 0x140148e1e
mov r8, qword [r14 + 0x10]
mov edx, dword [rsi + 0x10]
mov rcx, qword [rsi + 8]
cmp r8, 0x80
jne 0x140148e27
call fcn.140148a54
mov ebx, eax
mov r8d, 0x80
jmp 0x140148e65
mov ebx, dword [rsi + 0x18]
mov r8, qword [r14 + 0x10]
jmp 0x140148e65
xor ebx, ebx
test edx, edx
jle 0x140148e65
test rcx, rcx
je 0x140148e65
mov ebx, dword [r14 + 0x30]
xor eax, eax
movzx edi, byte [rcx + rax]
add edi, ebx
mov ebp, edi
shl ebp, 0xa
add ebp, edi
mov ebx, ebp
shr ebx, 6
xor ebx, ebp
inc rax
cmp rdx, rax
jne 0x140148e38
lea eax, [rbx + rbx*8]
mov ecx, eax
shr ecx, 0xb
xor ecx, eax
mov ebx, ecx
shl ebx, 0xf
add ebx, ecx
mov eax, ebx
xor edx, edx
div r8
mov rax, qword [r14 + 8]
shl rdx, 5
cmp dword [rax + rdx + 0x14], 0
lea rax, [rax + rdx]
je 0x140148e92
mov rax, qword [rax]
mov qword [rsi], rax
mov dword [rsi + 0x18], ebx
mov rax, qword [r14 + 8]
mov qword [rax + rdx], rsi
jmp 0x140148ec9
movups xmm0, xmmword [rsi]
movups xmm1, xmmword [rsi + 0x10]
movups xmmword [rax + 0x10], xmm1
movups xmmword [rax], xmm0
mov rax, qword [r14 + 8]
mov qword [rax + rdx], 0
mov rax, qword [r14 + 8]
mov dword [rax + rdx + 0x14], 1
mov rax, qword [r14 + 8]
mov dword [rax + rdx + 0x18], ebx
mov rcx, rsi
call qword [case.0x1400f5a1c.0]
mov rsi, r15
test r15, r15
jne 0x140148def
inc r13
cmp r13, r12
jne 0x140148dd6
mov rdi, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x28]
call qword [case.0x1400f5a1c.0]
jmp 0x140148efc
mov rax, qword [rsp + 0x28]
mov qword [r14 + 8], rax
mov eax, edi
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret