Function at 0x1400dc5c9
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 0x1400dc8dc
mov rsi, rdx
lea rax, [rdx - 8]
cmp rax, 0x3ff8
ja 0x1400dc8dc
mov r14, rcx
mov rax, qword [rcx + 8]
mov qword [rsp + 0x28], rax
test rax, rax
je 0x1400dc8dc
mov r12, qword [r14 + 0x10]
mov rbx, rsi
shl rbx, 5
mov rcx, rbx
call qword [case.0x1400878dc.1]
mov qword [r14 + 8], rax
test rax, rax
je 0x1400dc8d3
xor edi, edi
mov rcx, rax
xor edx, edx
mov r8, rbx
call fcn.140166bf0
mov qword [r14 + 0x10], rsi
test r12, r12
je 0x1400dc8c6
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 0x1400dc79e
cmp r12, 0x80
jne 0x1400dc6a5
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 0x1400dc745
call fcn.1400dc434
mov r13d, eax
mov r8d, 0x80
jmp 0x1400dc6b3
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 0x1400dc719
mov ecx, 0x20
call qword [case.0x1400878dc.1]
test rax, rax
je 0x1400dc794
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 0x1400dc79e
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 0x1400dc79e
xor r13d, r13d
test edx, edx
jle 0x1400dc6b3
test rcx, rcx
je 0x1400dc6b3
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 0x1400dc75f
lea eax, [rdi + rdi*8]
mov ecx, eax
shr ecx, 0xb
xor ecx, eax
mov r13d, ecx
shl r13d, 0xf
add r13d, ecx
jmp 0x1400dc6b3
mov eax, 0xffffffff
mov qword [rsp + 0x30], rax
inc r15
cmp r15, r12
jne 0x1400dc656
test r12, r12
je 0x1400dc8c1
xor r13d, r13d
mov rax, r13
shl rax, 5
mov rcx, qword [rsp + 0x28]
mov rsi, qword [rcx + rax]
test rsi, rsi
je 0x1400dc8b5
mov r15, qword [rsi]
cmp r12, 0x80
jne 0x1400dc7fe
mov r8, qword [r14 + 0x10]
mov edx, dword [rsi + 0x10]
mov rcx, qword [rsi + 8]
cmp r8, 0x80
jne 0x1400dc807
call fcn.1400dc434
mov ebx, eax
mov r8d, 0x80
jmp 0x1400dc845
mov ebx, dword [rsi + 0x18]
mov r8, qword [r14 + 0x10]
jmp 0x1400dc845
xor ebx, ebx
test edx, edx
jle 0x1400dc845
test rcx, rcx
je 0x1400dc845
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 0x1400dc818
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 0x1400dc872
mov rax, qword [rax]
mov qword [rsi], rax
mov dword [rsi + 0x18], ebx
mov rax, qword [r14 + 8]
mov qword [rax + rdx], rsi
jmp 0x1400dc8a9
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.0x1400878dc.0]
mov rsi, r15
test r15, r15
jne 0x1400dc7cf
inc r13
cmp r13, r12
jne 0x1400dc7b6
mov rdi, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x28]
call qword [case.0x1400878dc.0]
jmp 0x1400dc8dc
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