Function at 0x1400d31e0
Capabilities:
Encode data using xor

Disassembly:
test rcx, rcx
je 0x1400d3214
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 8], rcx
push rsi
push r13
push r15
sub rsp, 0x40
mov r15, r9
mov r13, rdx
mov rsi, rcx
test rdx, rdx
jne 0x1400d3216
add rsp, 0x40
pop r15
pop r13
pop rsi
ret
lea rax, [r8 + rdx]
cmp rax, r15
ja 0x1400d320b
mov qword [rsp + 0x20], r14
lea ecx, [r8 + rdx]
mov r14, qword [rsp + 0x90]
test r8, r8
jne 0x1400d368a
mov rax, qword [rsp + 0x88]
lea r9, [0x140000000]
mov qword [rsp + 0x68], rbx
xor edx, edx
mov qword [rsp + 0x38], rbp
mov ebx, 0xffffffff
mov dword [r14], ebx
lea ebp, [r8 + 4]
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], r12
mov r12, qword [rsp + 0x80]
mov dword [rax], ebx
mov dword [r12], ebx
cmp r13, 0x1000
jae 0x1400d34f9
mov r14d, 0x1000
mov r15d, ecx
sub r14d, ecx
mov r11, rsi
mov r10d, ebx
cmp r15, rbp
jae 0x1400d3546
mov r8, rdx
mov rdi, r15
mov rsi, r15
sub rdi, r8
and rdi, 0xfffffffffffffff8
cmp r15, rbp
cmovb rdi, rdx
sub rsi, rdi
sub rsi, r8
test r8, r8
jne 0x1400d355d
shr rdi, 3
test rdi, rdi
je 0x1400d3385
lea r12, [0x140000000]
nop word [rax + rax]
xor r10d, dword [r11]
mov r9d, dword [r11 + 4]
add r11, 8
mov r8d, r10d
mov eax, r10d
shr rax, 0x10
movzx edx, al
mov eax, r10d
shr rax, 8
movzx ecx, al
mov eax, r9d
mov r10d, dword [r12 + rdx*4 + 0x3e20a0]
shr rax, 0x10
xor r10d, dword [r12 + rcx*4 + 0x3e34a0]
movzx ecx, al
mov eax, r9d
shr rax, 8
xor r10d, dword [r12 + rcx*4 + 0x3e24a0]
movzx ecx, al
mov eax, r8d
shr rax, 0x18
xor r10d, dword [r12 + rcx*4 + 0x3e1ca0]
xor r10d, dword [r12 + rax*4 + 0x3e28a0]
mov eax, r9d
shr rax, 0x18
xor r10d, dword [r12 + rax*4 + 0x39e400]
movzx eax, r8b
xor r10d, dword [r12 + rax*4 + 0x3e2ca0]
movzx eax, r9b
xor r10d, dword [r12 + rax*4 + 0x3e30a0]
sub rdi, 1
jne 0x1400d32e0
mov r12, qword [rsp + 0x80]
lea r9, [0x140000000]
test rsi, rsi
jne 0x1400d3589
mov dword [r12], r10d
mov rsi, r14
cmp r14, 0x400
ja 0x1400d35b6
mov r8, rsi
lea rdx, [0x1403a00c0]
mov ecx, r10d
call fcn.1400d36f0
mov dword [r12], eax
cmp qword [rsp + 0x78], r13
je 0x1400d35f1
mov rsi, qword [rsp + 0x60]
mov r14, qword [rsp + 0x90]
mov r15, qword [rsp + 0x78]
mov edi, 0x10000
cmp r13, rdi
ja 0x1400d3620
mov rdi, r13
cmp r13, rbp
jae 0x1400d3620
xor eax, eax
mov ebp, eax
mov r11, rdi
lea r12, [0x140000000]
sub r11, rbp
mov r10, rsi
and r11, 0xfffffffffffffff8
cmp rdi, 4
cmovb r11, rax
sub rdi, r11
sub rdi, rbp
test rbp, rbp
jne 0x1400d3636
mov rbp, qword [rsp + 0x38]
shr r11, 3
test r11, r11
je 0x1400d34c4
xor ebx, dword [r10]
mov r9d, dword [r10 + 4]
add r10, 8
mov r8d, ebx
mov eax, ebx
shr rax, 0x10
movzx edx, al
mov eax, ebx
shr rax, 8
movzx ecx, al
mov eax, r9d
mov ebx, dword [r12 + rdx*4 + 0x3e20a0]
shr rax, 0x10
xor ebx, dword [r12 + rcx*4 + 0x3e34a0]
movzx ecx, al
mov eax, r9d
shr rax, 8
xor ebx, dword [r12 + rcx*4 + 0x3e24a0]
movzx ecx, al
mov eax, r8d
shr rax, 0x18
xor ebx, dword [r12 + rcx*4 + 0x3e1ca0]
xor ebx, dword [r12 + rax*4 + 0x3e28a0]
mov eax, r9d
shr rax, 0x18
xor ebx, dword [r12 + rax*4 + 0x39e400]
movzx eax, r8b
xor ebx, dword [r12 + rax*4 + 0x3e2ca0]
movzx eax, r9b
xor ebx, dword [r12 + rax*4 + 0x3e30a0]
sub r11, 1
jne 0x1400d3430
test rdi, rdi
jne 0x1400d365d
mov rax, qword [rsp + 0x88]
mov r12, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x30]
mov dword [rax], ebx
mov rbx, qword [rsp + 0x68]
cmp r15, r13
jne 0x1400d3685
mov r14, qword [rsp + 0x20]
jmp 0x1400d320b
mov r8d, 0x1000
mov rdx, rsi
mov ecx, ebx
call fcn.1400d36f0
mov dword [r12], eax
cmp r15, r13
jne 0x1400d33d5
cmp r13, 0x1000
jne 0x1400d3527
mov dword [r14], eax
jmp 0x1400d33e3
lea rdx, [r13 - 0x1000]
mov r8d, 0x1000
add rdx, rsi
mov ecx, ebx
call fcn.1400d36f0
mov dword [r14], eax
jmp 0x1400d33d5
mov rax, rsi
and eax, 3
je 0x1400d32a0
mov r8, rbp
sub r8, rax
jmp 0x1400d32a3
movzx eax, byte [r11]
mov ecx, r10d
xor rcx, rax
inc r11
mov eax, r10d
movzx edx, cl
shr eax, 8
mov r10d, dword [r9 + rdx*4 + 0x39e400]
xor r10d, eax
sub r8, 1
jne 0x1400d355d
jmp 0x1400d32c6
movzx eax, byte [r11]
lea r11, [r11 + 1]
mov ecx, r10d
xor rcx, rax
mov eax, r10d
shr eax, 8
movzx edx, cl
mov r10d, dword [r9 + rdx*4 + 0x39e400]
xor r10d, eax
sub rsi, 1
jne 0x1400d3589
jmp 0x1400d338e
lea rdi, [r14 - 0x401]
shr rdi, 0xa
inc rdi
imul rsi, rdi, 0xfffffffffffffc00
add rsi, r14
mov r8d, 0x400
lea rdx, [0x1403a00c0]
mov ecx, r10d
call fcn.1400d36f0
mov r10d, eax
sub rdi, 1
jne 0x1400d35ce
jmp 0x1400d33a2
mov rdx, r14
mov ecx, ebx
call fcn.14010b4f8
mov r14, qword [rsp + 0x90]
mov r8, r15
mov rsi, qword [rsp + 0x60]
mov ecx, eax
mov rdx, rsi
mov dword [r14], eax
call fcn.1400d36f0
mov dword [r14], eax
jmp 0x1400d33d0
mov rax, rsi
and eax, 3
je 0x1400d33ef
sub rbp, rax
xor eax, eax
jmp 0x1400d33f3
movzx ecx, byte [r10]
mov eax, ebx
xor rcx, rax
inc r10
shr eax, 8
movzx edx, cl
mov ebx, dword [r12 + rdx*4 + 0x39e400]
xor ebx, eax
sub rbp, 1
jne 0x1400d3636
jmp 0x1400d341e
movzx ecx, byte [r10]
lea r10, [r10 + 1]
mov eax, ebx
xor rcx, rax
shr eax, 8
movzx edx, cl
mov ebx, dword [r12 + rdx*4 + 0x39e400]
xor ebx, eax
sub rdi, 1
jne 0x1400d365d
jmp 0x1400d34cd
mov r8, qword [rsp + 0x70]
mov rax, r15
sub rax, r13
sub rax, r8
cmp rax, 0x1000
jae 0x1400d34ef
mov ecx, dword [r14]
lea edx, [r8 + 0x1000]
mov eax, r13d
sub eax, r15d
add edx, eax
cmp r13, 0x1000
jb 0x1400d36c6
mov r8d, edx
sub rsi, r8
lea rdx, [rsi + r13]
jmp 0x1400d36d3
cmp r13d, edx
cmovae r13d, edx
mov rdx, rsi
mov r8d, r13d
call fcn.1400d36f0
mov dword [r14], eax
jmp 0x1400d34ef