Function at 0x1400d8a60
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 r11, r9
mov r10, r8
mov rax, rcx
mov rcx, qword [0x14018e218]
xor rcx, rsp
mov qword [rsp + 0x170], rcx
mov rsi, qword [rax + 8]
mov rbp, rdx
sub rbp, rsi
movzx ecx, byte [rax + 0x100]
mov r8d, 1
shl r8d, cl
mov ecx, dword [rax + 0x1c]
mov r9d, ebp
sub r9d, ecx
mov ebx, ebp
sub ebx, r8d
cmp r9d, r8d
cmovbe ebx, ecx
mov r15, qword [rax + 0x70]
mov r9, qword [rax + 0x38]
cmp dword [rax + 0x28], 0
mov edi, 1
cmovne ebx, ecx
mov dword [rsp + 0x50], ebx
mov r8d, dword [rax + 0x10c]
cmp r8d, 4
mov ecx, 4
cmovb ecx, r8d
shl edi, cl
mov r14d, dword [rax + 0x34]
mov r8, qword [rax + 0x60]
cmp dword [rax + 0x12c], 0
mov qword [rsp + 0x38], r11
mov qword [rsp + 0x68], rsi
je 0x1400d8b1f
imul r12d, dword [rdx], 0x9e3779b1
xor r12d, r8d
mov cl, 0x18
sub cl, r14b
shr r12d, cl
mov dword [rax + 0x2c], ebp
jmp 0x1400d8e85
mov r11d, dword [rax + 0x2c]
mov ecx, ebp
sub ecx, r11d
cmp ecx, 0x181
mov qword [rsp + 0x60], r9
mov qword [rsp + 0x30], rbp
mov dword [rsp + 0x2c], r14d
mov qword [rsp + 0x58], r8
mov r13, r9
mov rbx, r15
jb 0x1400d8d5b
cmp r11d, 0xffffff9f
ja 0x1400d8c0e
mov qword [rsp + 0x48], r10
lea r9, [r11 + 0x60]
mov ecx, 0x18
sub ecx, dword [rsp + 0x2c]
mov r10, qword [rsp + 0x60]
nop
imul r8d, dword [rsi + r11 + 8], 0x9e3779b1
xor r8d, dword [rax + 0x60]
shr r8d, cl
mov r12d, r8d
shr r12d, 4
and r12d, 0xfffffff0
prefetcht0 byte [r15 + r12*4]
prefetcht0 byte [r10 + r12]
mov r12d, r11d
and r12d, 7
mov r13d, dword [rax + r12*4 + 0x40]
mov dword [rax + r12*4 + 0x40], r8d
mov r8, r13
shr r8, 4
and r8d, 0xffffff0
lea r12, [r15 + r8*4]
movzx ebp, byte [r10 + r8]
dec bpl
and bpl, 0xf
mov ebx, 0
mov r14d, 0xf
cmove ebx, r14d
mov r14, r15
lea r15, [r10 + r8]
movzx ebp, bpl
add rbp, rbx
mov byte [r10 + r8], bpl
mov byte [r15 + rbp], r13b
mov r15, r14
mov dword [r12 + rbp*4], r11d
inc r11
cmp r9, r11
jne 0x1400d8b70
mov r13, qword [rax + 0x38]
mov rbx, qword [rax + 0x70]
mov rbp, qword [rsp + 0x30]
mov r10, qword [rsp + 0x48]
lea r11d, [rbp - 0x20]
lea rcx, [rdx + 1]
lea r8, [rsi + r11]
mov r9d, ecx
sub r9d, r8d
inc r9d
cmp r9d, 8
mov ebp, 8
cmovb ebp, r9d
xor r9d, r9d
cmp r8, rcx
cmovbe r9d, ebp
mov rbp, qword [rsp + 0x30]
lea r12d, [r9 + rbp]
add r12d, 0xffffffe0
cmp r12d, r11d
jbe 0x1400d8d56
mov ebp, dword [rax + 0x60]
mov ecx, 0x18
sub ecx, dword [rax + 0x34]
mov r14d, r12d
sub r12d, r11d
mov r8, r11
not r8
test r12b, 1
jne 0x1400d8d08
mov r12, r11
add r8, r14
je 0x1400d8d51
mov qword [rsp + 0x40], r15
nop word cs:[rax + rax]
imul r8d, dword [rsi + r12], 0x9e3779b1
xor r8d, ebp
shr r8d, cl
mov r15d, r8d
shr r15d, 4
and r15d, 0xfffffff0
prefetcht0 byte [rbx + r15*4]
prefetcht0 byte [r13 + r15]
mov r15d, r12d
and r15d, 7
mov dword [rax + r15*4 + 0x40], r8d
lea r8d, [r12 + 1]
imul r15d, dword [rsi + r12 + 1], 0x9e3779b1
xor r15d, ebp
shr r15d, cl
mov r9d, r15d
shr r9d, 4
and r9d, 0xfffffff0
prefetcht0 byte [rbx + r9*4]
prefetcht0 byte [r13 + r9]
and r8d, 7
mov dword [rax + r8*4 + 0x40], r15d
add r12, 2
cmp r14, r12
jne 0x1400d8c90
mov rbp, qword [rsp + 0x30]
mov r15, qword [rsp + 0x40]
jmp 0x1400d8d56
mov r12, r8
imul r8d, dword [rsi + r11], 0x9e3779b1
xor r8d, ebp
shr r8d, cl
mov r9, r15
mov r15d, r8d
shr r15d, 4
and r15d, 0xfffffff0
prefetcht0 byte [rbx + r15*4]
prefetcht0 byte [r13 + r15]
mov r15d, r11d
and r15d, 7
mov dword [rax + r15*4 + 0x40], r8d
mov r8, r12
mov r15, r9
lea r12, [r11 + 1]
add r8, r14
jne 0x1400d8c7d
mov rbp, qword [rsp + 0x30]
mov r14d, dword [rsp + 0x2c]
cmp r11d, ebp
jae 0x1400d8e3a
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x48], r10
mov ecx, 0x18
sub ecx, dword [rax + 0x34]
mov r8, rbp
mov rbp, qword [rax + 8]
mov r12d, r11d
mov r9d, r8d
nop word cs:[rax + rax]
imul r8d, dword [rbp + r12 + 8], 0x9e3779b1
xor r8d, dword [rax + 0x60]
shr r8d, cl
mov r15d, r8d
shr r15d, 4
and r15d, 0xfffffff0
prefetcht0 byte [rbx + r15*4]
prefetcht0 byte [r13 + r15]
mov r15d, r12d
and r15d, 7
mov esi, dword [rax + r15*4 + 0x40]
mov dword [rax + r15*4 + 0x40], r8d
mov r8, rsi
shr r8, 4
and r8d, 0xffffff0
lea r15, [rbx + r8*4]
movzx r11d, byte [r13 + r8]
dec r11b
and r11b, 0xf
mov r14d, 0
mov r10d, 0xf
cmove r14d, r10d
lea r10, [r8 + r13]
movzx r11d, r11b
add r11, r14
mov byte [r13 + r8], r11b
mov byte [r10 + r11], sil
mov dword [r15 + r11*4], r12d
inc r12
cmp r9, r12
jne 0x1400d8d90
mov r11, qword [rsp + 0x38]
mov r10, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x30]
mov r15, qword [rsp + 0x40]
mov r14d, dword [rsp + 0x2c]
jmp 0x1400d8e42
mov r9d, ebp
mov r11, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x58]
mov dword [rax + 0x2c], ebp
imul r8d, dword [rsi + r9 + 8], 0x9e3779b1
xor r8d, ecx
mov cl, 0x18
sub cl, r14b
shr r8d, cl
mov ecx, r8d
shr ecx, 4
and ecx, 0xfffffff0
prefetcht0 byte [r15 + rcx*4]
mov r9, qword [rsp + 0x60]
prefetcht0 byte [r9 + rcx]
mov ecx, ebp
and ecx, 7
mov r12d, dword [rax + rcx*4 + 0x40]
mov dword [rax + rcx*4 + 0x40], r8d
add dword [rax + 0x68], r12d
mov r8d, r12d
shr r8d, 4
and r8d, 0xfffffff0
lea r13, [r9 + r8]
movzx ecx, byte [r9 + r8]
movd xmm0, r12d
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
movdqu xmm1, xmmword [r9 + r8]
pcmpeqb xmm1, xmm0
pmovmskb r9d, xmm1
lea r14, [r15 + r8*4]
xor r15d, r15d
test r9d, r9d
je 0x1400d8f17
ror r9w, cl
movzx r9d, r9w
xor ebx, ebx
nop word cs:[rax + rax]
tzcnt r8, r9
add r8d, ecx
and r8d, 0xf
je 0x1400d8f08
mov r8d, dword [r14 + r8*4]
cmp r8d, dword [rsp + 0x50]
jb 0x1400d8f19
prefetcht0 byte [rsi + r8]
mov dword [rsp + rbx*4 + 0x70], r8d
inc rbx
dec edi
lea r8, [r9 - 1]
and r9, r8
je 0x1400d8f19
test edi, edi
jne 0x1400d8ee0
jmp 0x1400d8f19
xor ebx, ebx
dec ecx
and ecx, 0xf
mov r8d, 0xf
cmove r15d, r8d
add r15, rcx
mov byte [r13], r15b
mov byte [r13 + r15], r12b
mov ecx, dword [rax + 0x2c]
lea r8d, [rcx + 1]
mov dword [rax + 0x2c], r8d
mov dword [r14 + r15*4], ecx
test rbx, rbx
je 0x1400d909a
lea rax, [r10 - 7]
lea rcx, [r10 - 3]
lea rdi, [r10 - 1]
lea r8d, [rbp + 3]
lea r14, [rdx + 8]
lea r9, [rsi + 8]
mov qword [rsp + 0x50], r9
mov r13d, 3
xor r12d, r12d
jmp 0x1400d8f8f
inc r12
mov rsi, r13
cmp r12, rbx
je 0x1400d909f
mov ebp, dword [rsp + r12*4 + 0x70]
mov r9, qword [rsp + 0x68]
lea r15, [r9 + rbp]
mov r9d, dword [r13 + r15 - 3]
cmp r9d, dword [rdx + r13 - 3]
jne 0x1400d8f80
cmp rax, rdx
jbe 0x1400d8fd0
mov r9, qword [rdx]
xor r9, qword [r15]
je 0x1400d8fea
tzcnt rsi, r9
shr rsi, 3
jmp 0x1400d9076
mov rsi, rdx
cmp rsi, rcx
jae 0x1400d9040
mov r9d, dword [r15]
cmp r9d, dword [rsi]
jne 0x1400d9040
add rsi, 4
add r15, 4
jmp 0x1400d9040
mov r9, qword [rsp + 0x50]
lea r15, [r9 + rbp]
xor r9d, r9d
nop word cs:[rax + rax]
lea rsi, [r14 + r9]
cmp rsi, rax
jae 0x1400d902c
mov rsi, qword [rsi]
lea r11, [r9 + 8]
xor rsi, qword [r15 + r9]
mov r9, r11
je 0x1400d9000
tzcnt rsi, rsi
shr rsi, 3
add rsi, r11
mov r11, qword [rsp + 0x38]
jmp 0x1400d9076
add r15, r9
mov r11, qword [rsp + 0x38]
cmp rsi, rcx
jb 0x1400d8fd8
nop dword [rax]
cmp rsi, rdi
jae 0x1400d9057
movzx r9d, word [r15]
cmp r9w, word [rsi]
jne 0x1400d9057
add rsi, 2
add r15, 2
cmp rsi, r10
jae 0x1400d9073
movzx r9d, byte [r15]
mov r15, r10
xor r10d, r10d
cmp r9b, byte [rsi]
sete r10b
add rsi, r10
mov r10, r15
sub rsi, rdx
cmp rsi, r13
jbe 0x1400d8f80
mov r9d, r8d
sub r9d, ebp
mov qword [r11], r9
lea r9, [rdx + rsi]
mov r13, rsi
cmp r9, r10
jne 0x1400d8f80
jmp 0x1400d909f
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