Function at 0x1400dbef0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x178
mov qword [rsp + 0x38], r8
mov rax, rcx
mov rcx, qword [0x14018e218]
xor rcx, rsp
mov qword [rsp + 0x170], rcx
mov rbp, qword [rax + 8]
mov r12, rdx
sub r12, rbp
movzx ecx, byte [rax + 0x100]
mov r8d, 1
shl r8d, cl
mov ecx, dword [rax + 0x1c]
mov r11d, r12d
sub r11d, ecx
mov esi, r12d
sub esi, r8d
cmp r11d, r8d
cmovbe esi, ecx
mov rbx, qword [rax + 0x70]
mov r10, qword [rax + 0x38]
cmp dword [rax + 0x28], 0
mov edi, 1
cmovne esi, ecx
mov r8d, dword [rax + 0x10c]
cmp r8d, 6
mov ecx, 6
cmovb ecx, r8d
shl edi, cl
mov r11d, dword [rax + 0x34]
mov rcx, qword [rax + 0x60]
cmp dword [rax + 0x12c], 0
mov qword [rsp + 0x40], rbp
mov qword [rsp + 0x68], r9
mov qword [rsp + 0x28], r12
mov dword [rsp + 0x54], esi
mov qword [rsp + 0x60], rdx
je 0x1400dbfc1
movabs r14, 0xcf1bbcdcbf9b0000
imul r14, qword [rdx]
xor r14, rcx
mov cl, 0x38
sub cl, r11b
shr r14, cl
mov dword [rax + 0x2c], r12d
jmp 0x1400dc2d2
mov qword [rsp + 0x58], rcx
movabs r15, 0xcf1bbcdcbf9b0000
mov r13d, dword [rax + 0x2c]
mov ecx, r12d
sub ecx, r13d
cmp ecx, 0x181
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x30], r10
mov dword [rsp + 0x24], r11d
jb 0x1400dc18b
mov r14, r10
cmp r13d, 0xffffff9f
ja 0x1400dc0cc
lea r10, [r13 + 0x60]
mov ecx, 0x38
sub ecx, r11d
mov r12, qword [rsp + 0x48]
mov r9, r15
mov r15, qword [rsp + 0x30]
nop dword [rax + rax]
mov rsi, qword [rbp + r13 + 8]
imul rsi, r9
xor rsi, qword [rax + 0x60]
shr rsi, cl
mov rbx, rsi
shr rbx, 2
and ebx, 0x3fffffc0
prefetcht0 byte [r12 + rbx*4]
prefetcht0 byte [r12 + rbx*4 + 0x40]
prefetcht0 byte [r15 + rbx]
prefetcht0 byte [r15 + rbx + 0x20]
mov ebx, r13d
and ebx, 7
mov r14d, dword [rax + rbx*4 + 0x40]
mov dword [rax + rbx*4 + 0x40], esi
mov rsi, r14
shr rsi, 2
and esi, 0x3fffffc0
lea rbx, [r12 + rsi*4]
movzx r11d, byte [r15 + rsi]
dec r11b
and r11b, 0x3f
mov r8d, 0
mov ebp, 0x3f
cmove r8d, ebp
lea rbp, [r15 + rsi]
movzx r11d, r11b
add r11, r8
mov byte [r15 + rsi], r11b
mov byte [rbp + r11], r14b
mov rbp, qword [rsp + 0x40]
mov dword [rbx + r11*4], r13d
inc r13
cmp r10, r13
jne 0x1400dc020
mov r14, qword [rax + 0x38]
mov rbx, qword [rax + 0x70]
mov r15, r9
mov r11d, dword [rsp + 0x24]
mov r12, qword [rsp + 0x28]
lea r13d, [r12 - 0x20]
mov rcx, qword [rsp + 0x60]
inc rcx
mov r8, rbp
add r8, r13
mov r10d, ecx
sub r10d, r8d
inc r10d
cmp r10d, 8
mov r9d, 8
cmovb r9d, r10d
xor r10d, r10d
cmp r8, rcx
cmovbe r10d, r9d
lea r8d, [r10 + r12]
add r8d, 0xffffffe0
cmp r8d, r13d
jbe 0x1400dc271
mov r10, qword [rax + 0x60]
mov ecx, 0x38
sub ecx, dword [rax + 0x34]
mov r11d, r8d
mov rsi, r13
nop word cs:[rax + rax]
mov r8, qword [rbp + rsi]
imul r8, r15
xor r8, r10
shr r8, cl
mov rbp, r8
shr rbp, 2
and ebp, 0x3fffffc0
prefetcht0 byte [rbx + rbp*4]
prefetcht0 byte [rbx + rbp*4 + 0x40]
prefetcht0 byte [r14 + rbp]
prefetcht0 byte [r14 + rbp + 0x20]
mov ebp, esi
and ebp, 7
mov dword [rax + rbp*4 + 0x40], r8d
mov rbp, qword [rsp + 0x40]
inc rsi
cmp r11, rsi
jne 0x1400dc130
mov r10, qword [rsp + 0x30]
mov r11d, dword [rsp + 0x24]
cmp r13d, r12d
jb 0x1400dc197
jmp 0x1400dc27f
mov r14, r10
cmp r13d, r12d
jae 0x1400dc27f
mov dword [rsp + 0x50], edi
mov ecx, 0x38
sub ecx, dword [rax + 0x34]
mov r11, qword [rax + 8]
mov r13d, r13d
mov r9d, r12d
mov edx, 0x3f
nop word cs:[rax + rax]
mov r8, qword [r11 + r13 + 8]
imul r8, r15
xor r8, qword [rax + 0x60]
shr r8, cl
mov rbp, r8
shr rbp, 2
and ebp, 0x3fffffc0
prefetcht0 byte [rbx + rbp*4]
prefetcht0 byte [rbx + rbp*4 + 0x40]
prefetcht0 byte [r14 + rbp]
prefetcht0 byte [r14 + rbp + 0x20]
mov ebp, r13d
and ebp, 7
mov esi, dword [rax + rbp*4 + 0x40]
mov dword [rax + rbp*4 + 0x40], r8d
mov r8, rsi
shr r8, 2
and r8d, 0x3fffffc0
lea rbp, [rbx + r8*4]
movzx r10d, byte [r14 + r8]
dec r10b
and r10b, 0x3f
mov rdi, r15
mov r15d, 0
cmove r15d, edx
lea r12, [r14 + r8]
movzx r10d, r10b
add r10, r15
mov r15, rdi
mov byte [r14 + r8], r10b
mov byte [r12 + r10], sil
mov dword [rbp + r10*4], r13d
inc r13
cmp r9, r13
jne 0x1400dc1c0
mov rbp, qword [rsp + 0x40]
mov r12, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x48]
mov r10, qword [rsp + 0x30]
mov edi, dword [rsp + 0x50]
mov r11d, dword [rsp + 0x24]
jmp 0x1400dc287
mov r10, qword [rsp + 0x30]
cmp r13d, r12d
jb 0x1400dc197
mov r9d, r12d
mov rbx, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x58]
mov dword [rax + 0x2c], r12d
imul r15, qword [rbp + r9 + 8]
xor r15, rcx
mov cl, 0x38
sub cl, r11b
shr r15, cl
mov rcx, r15
shr rcx, 2
and ecx, 0x3fffffc0
prefetcht0 byte [rbx + rcx*4]
prefetcht0 byte [rbx + rcx*4 + 0x40]
prefetcht0 byte [r10 + rcx]
prefetcht0 byte [r10 + rcx + 0x20]
mov ecx, r12d
and ecx, 7
mov r14d, dword [rax + rcx*4 + 0x40]
mov dword [rax + rcx*4 + 0x40], r15d
add dword [rax + 0x68], r14d
mov r11d, r14d
shr r11d, 2
and r11d, 0xffffffc0
lea r15, [r10 + r11]
movzx ecx, byte [r10 + r11]
movd xmm0, r14d
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
movdqu xmm1, xmmword [r10 + r11]
movdqu xmm2, xmmword [r10 + r11 + 0x10]
movdqu xmm3, xmmword [r10 + r11 + 0x20]
movdqu xmm4, xmmword [r10 + r11 + 0x30]
pcmpeqb xmm1, xmm0
pmovmskb r9d, xmm1
pcmpeqb xmm2, xmm0
pmovmskb r8d, xmm2
pcmpeqb xmm3, xmm0
pmovmskb r10d, xmm3
pcmpeqb xmm4, xmm0
pmovmskb esi, xmm4
lea r12, [rbx + r11*4]
shl rsi, 0x30
shl r10, 0x20
or r10, rsi
shl r8, 0x10
or r8, r10
xor r13d, r13d
or r9, r8
je 0x1400dc3a6
ror r9, cl
xor ebx, ebx
mov r10, qword [rsp + 0x68]
mov esi, dword [rsp + 0x54]
nop word [rax + rax]
tzcnt r11, r9
add r11d, ecx
and r11d, 0x3f
je 0x1400dc397
mov r11d, dword [r12 + r11*4]
cmp r11d, esi
jb 0x1400dc3ad
prefetcht0 byte [rbp + r11]
mov dword [rsp + rbx*4 + 0x70], r11d
inc rbx
dec edi
lea r8, [r9 - 1]
and r9, r8
je 0x1400dc3ad
test edi, edi
jne 0x1400dc370
jmp 0x1400dc3ad
xor ebx, ebx
mov r10, qword [rsp + 0x68]
dec ecx
and ecx, 0x3f
mov r8d, 0x3f
cmove r13d, r8d
add r13, rcx
mov byte [r15], r13b
mov byte [r15 + r13], r14b
mov ecx, dword [rax + 0x2c]
lea r8d, [rcx + 1]
mov dword [rax + 0x2c], r8d
mov dword [r12 + r13*4], ecx
test rbx, rbx
je 0x1400dc539
mov r9, qword [rsp + 0x38]
lea rax, [r9 - 7]
lea rcx, [r9 - 3]
lea rdi, [r9 - 1]
mov r8, qword [rsp + 0x28]
lea r11d, [r8 + 3]
mov rdx, qword [rsp + 0x60]
lea r14, [rdx + 8]
lea r8, [rbp + 8]
mov qword [rsp + 0x28], r8
mov r13d, 3
xor r12d, r12d
jmp 0x1400dc42f
inc r12
mov rsi, r13
cmp r12, rbx
je 0x1400dc53e
mov ebp, dword [rsp + r12*4 + 0x70]
mov r8, qword [rsp + 0x40]
lea r15, [r8 + rbp]
mov r8d, dword [r13 + r15 - 3]
cmp r8d, dword [rdx + r13 - 3]
jne 0x1400dc420
cmp rax, rdx
jbe 0x1400dc470
mov r8, qword [rdx]
xor r8, qword [r15]
je 0x1400dc48a
tzcnt rsi, r8
shr rsi, 3
jmp 0x1400dc515
mov rsi, rdx
cmp rsi, rcx
jae 0x1400dc4e0
mov r8d, dword [r15]
cmp r8d, dword [rsi]
jne 0x1400dc4e0
add rsi, 4
add r15, 4
jmp 0x1400dc4e0
mov r8, qword [rsp + 0x28]
lea r15, [r8 + rbp]
xor r8d, r8d
nop word cs:[rax + rax]
lea rsi, [r14 + r8]
cmp rsi, rax
jae 0x1400dc4cc
mov rsi, qword [rsi]
lea r9, [r8 + 8]
xor rsi, qword [r15 + r8]
mov r8, r9
je 0x1400dc4a0
tzcnt rsi, rsi
shr rsi, 3
add rsi, r9
mov r9, qword [rsp + 0x38]
jmp 0x1400dc515
add r15, r8
mov r9, qword [rsp + 0x38]
cmp rsi, rcx
jb 0x1400dc478
nop dword [rax]
cmp rsi, rdi
jae 0x1400dc4f7
movzx r8d, word [r15]
cmp r8w, word [rsi]
jne 0x1400dc4f7
add rsi, 2
add r15, 2
cmp rsi, r9
jae 0x1400dc512
movzx r8d, byte [r15]
xor r9d, r9d
cmp r8b, byte [rsi]
sete r9b
add rsi, r9
mov r9, qword [rsp + 0x38]
sub rsi, rdx
cmp rsi, r13
jbe 0x1400dc420
mov r8d, r11d
sub r8d, ebp
mov qword [r10], r8
lea r8, [rdx + rsi]
mov r13, rsi
cmp r8, r9
jne 0x1400dc420
jmp 0x1400dc53e
mov esi, 3
mov rcx, qword [rsp + 0x170]
xor rcx, rsp
call fcn.14011fde0
mov rax, rsi
add rsp, 0x178
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret