Function at 0x14005e6b4
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x1d8
mov rax, qword [0x1400d6910]
xor rax, rsp
mov qword [rsp + 0x1c0], rax
mov r10, qword [rcx + 8]
mov r11, rcx
mov rax, qword [rcx + 0x70]
mov r15, rdx
mov r12d, dword [rcx + 0x34]
mov r14d, edx
mov qword [rsp + 0x78], rax
sub r14d, r10d
mov rax, qword [rcx + 0x38]
mov r13, r8
mov rbp, qword [r11 + 0x60]
mov qword [rsp + 0x50], rax
mov eax, dword [rcx + 0x18]
mov ecx, dword [rcx + 0x100]
mov dword [rsp + 0x24], eax
add rax, r10
mov qword [rsp + 0xa8], rax
mov eax, r14d
sub eax, dword [r11 + 0x1c]
mov qword [rsp + 0x80], rdx
mov edx, 1
shl edx, cl
mov ecx, r14d
sub ecx, edx
mov qword [rsp + 0x88], r9
mov r9d, dword [r11 + 0x10c]
cmp eax, edx
mov qword [rsp + 0x30], r8
cmovbe ecx, dword [r11 + 0x1c]
xor ebx, ebx
cmp dword [r11 + 0x28], ebx
mov r8, qword [r11 + 0xf8]
cmovne ecx, dword [r11 + 0x1c]
mov dword [rsp + 0x28], ecx
lea eax, [rbx + 1]
lea ecx, [rbx + 4]
mov dword [rsp + 0x48], r12d
cmp r9d, ecx
mov qword [rsp + 0x38], r10
lea esi, [rbx + 3]
mov dword [rsp + 0x44], r14d
cmovb ecx, r9d
mov qword [rsp + 0xb0], rbp
imul edi, dword [r15], 0x9e3779b1
shl eax, cl
lea ecx, [rbx + 0x22]
sub ecx, dword [r8 + 0x108]
mov dword [rsp + 0x40], eax
mov qword [rsp + 0x70], rsi
mov edx, edi
shr rdx, cl
mov qword [rsp + 0x58], r8
lea rax, [rdx*4]
lea rcx, [rax*4]
mov qword [rsp + 0xa0], rax
mov rax, qword [r8 + 0x70]
mov qword [rsp + 0x60], rcx
prefetcht0 byte [rcx + rax]
cmp r9d, 4
jbe 0x14005e7f2
lea ecx, [r9 - 4]
lea eax, [rbx + 1]
shl eax, cl
mov dword [rsp + 0x20], eax
jmp 0x14005e7f6
mov dword [rsp + 0x20], ebx
cmp dword [r11 + 0x12c], ebx
jne 0x14005eab0
mov edi, dword [r11 + 0x2c]
mov eax, r14d
sub eax, edi
mov ebp, 0x18
cmp eax, 0x180
jbe 0x14005e991
lea eax, [rdi + 0x60]
cmp edi, eax
jae 0x14005e8e1
mov r14, qword [rsp + 0x78]
lea rsi, [r10 + 8]
mov r15d, ebp
mov r13d, eax
mov rbp, qword [rsp + 0x50]
sub r15d, r12d
add rsi, rdi
mov r12d, edi
mov eax, dword [r11 + 0x60]
mov rcx, r15
imul edx, dword [rsi], 0x9e3779b1
xor rdx, rax
shr rdx, cl
mov eax, edx
shr rax, 4
and eax, 0xffffff0
prefetcht0 byte [r14 + rax*4]
prefetcht0 byte [rax + rbp]
mov rax, r12
and eax, 7
mov r10d, dword [r11 + rax*4 + 0x40]
mov r9d, r10d
mov dword [r11 + rax*4 + 0x40], edx
shr r9, 4
and r9d, 0xffffff0
lea r8, [r9 + rbp]
movzx edx, byte [r8]
dec edx
and edx, 0xf
mov eax, edx
neg eax
sbb ecx, ecx
inc r12
not ecx
inc rsi
and ecx, 0xf
add edx, ecx
mov byte [r8], dl
mov eax, edx
add rax, r9
mov byte [rdx + r8], r10b
mov dword [r14 + rax*4], edi
inc edi
cmp edi, r13d
jb 0x14005e844
mov rsi, qword [rsp + 0x70]
mov ebp, 0x18
mov r15, qword [rsp + 0x80]
mov r13, qword [rsp + 0x30]
mov r14d, dword [rsp + 0x44]
mov r10, qword [rsp + 0x38]
mov rcx, qword [r11 + 0x70]
lea edi, [r14 - 0x20]
mov qword [rsp + 0x90], rcx
lea r9, [rdi + r10]
mov rcx, qword [r11 + 0x38]
lea rax, [r15 + 1]
mov qword [rsp + 0x98], rcx
mov r8d, edi
cmp r9, rax
jbe 0x14005e911
mov eax, ebx
jmp 0x14005e921
sub eax, r10d
mov ecx, 8
sub eax, edi
inc eax
cmp eax, ecx
ja 0x14005e923
mov ecx, eax
lea eax, [rcx + rdi]
cmp edi, eax
jae 0x14005e991
mov r13, qword [rsp + 0x90]
mov eax, ebp
sub eax, dword [r11 + 0x34]
mov rsi, qword [rsp + 0x98]
mov r12d, ecx
mov ecx, eax
mov qword [rsp + 0x68], rax
mov eax, dword [r11 + 0x60]
imul edx, dword [r9], 0x9e3779b1
xor rdx, rax
shr rdx, cl
mov eax, edx
shr rax, 4
and eax, 0xffffff0
prefetcht0 byte [r13 + rax*4]
prefetcht0 byte [rax + rsi]
mov rax, r8
inc r9
and eax, 7
inc r8
mov dword [r11 + rax*4 + 0x40], edx
sub r12, 1
jne 0x14005e94a
mov rsi, qword [rsp + 0x70]
mov r13, qword [rsp + 0x30]
mov rcx, qword [r11 + 0x38]
mov rax, qword [r11 + 0x70]
mov qword [rsp + 0x90], rcx
mov rcx, qword [r11 + 8]
cmp edi, r14d
jae 0x14005ea5f
mov r15, qword [rsp + 0x90]
lea r13, [rcx + 8]
mov ebx, ebp
mov r12d, edi
sub ebx, dword [r11 + 0x34]
mov rsi, rax
add r13, r12
mov eax, dword [r11 + 0x60]
mov rcx, rbx
imul edx, dword [r13], 0x9e3779b1
xor rdx, rax
shr rdx, cl
mov eax, edx
shr rax, 4
and eax, 0xffffff0
prefetcht0 byte [rsi + rax*4]
prefetcht0 byte [r15 + rax]
mov rax, r12
and eax, 7
mov r10d, dword [r11 + rax*4 + 0x40]
mov r9d, r10d
mov dword [r11 + rax*4 + 0x40], edx
shr r9, 4
and r9d, 0xffffff0
lea r8, [r9 + r15]
movzx edx, byte [r8]
dec edx
and edx, 0xf
mov eax, edx
neg eax
sbb ecx, ecx
inc r12
not ecx
inc r13
and ecx, 0xf
add edx, ecx
mov byte [r8], dl
mov eax, edx
add rax, r9
mov byte [r8 + rdx], r10b
mov dword [rsi + rax*4], edi
inc edi
cmp edi, r14d
jb 0x14005e9c9
mov rsi, qword [rsp + 0x70]
xor ebx, ebx
mov r15, qword [rsp + 0x80]
mov r13, qword [rsp + 0x30]
mov r10, qword [rsp + 0x38]
mov eax, dword [rsp + 0xb0]
mov ecx, ebp
sub ecx, dword [rsp + 0x48]
mov r8d, r14d
mov dword [r11 + 0x2c], r14d
imul edx, dword [r8 + r10 + 8], 0x9e3779b1
xor rdx, rax
shr rdx, cl
mov rcx, qword [rsp + 0x78]
mov eax, edx
shr rax, 4
and eax, 0xffffff0
prefetcht0 byte [rcx + rax*4]
mov r10, qword [rsp + 0x50]
prefetcht0 byte [rax + r10]
and r8d, 7
mov r9d, dword [r11 + r8*4 + 0x40]
mov dword [r11 + r8*4 + 0x40], edx
jmp 0x14005ead1
mov r10, qword [rsp + 0x50]
mov ecx, 0x18
sub ecx, r12d
mov r9d, ebp
mov eax, edi
xor r9, rax
mov dword [r11 + 0x2c], r14d
shr r9, cl
mov rcx, qword [rsp + 0x78]
add dword [r11 + 0x68], r9d
mov eax, r9d
shr rax, 4
mov rdi, rbx
and eax, 0xffffff0
mov rbp, rbx
lea rcx, [rcx + rax*4]
lea r12, [rax + r10]
mov qword [rsp + 0x50], rcx
movdqu xmm0, xmmword [r12]
movzx r8d, byte [r12]
movsx eax, r9b
and r8d, 0xf
mov ecx, r8d
neg ecx
and ecx, 0xf
movd xmm1, eax
punpcklbw xmm1, xmm1
punpcklwd xmm1, xmm1
pshufd xmm1, xmm1, 0
pcmpeqb xmm1, xmm0
pmovmskb edx, xmm1
movzx eax, dx
shl ax, cl
mov cl, r8b
movzx r10d, ax
movzx eax, dx
shr rax, cl
or r10, rax
jbe 0x14005eba3
mov r13d, dword [rsp + 0x40]
mov edx, r8d
mov r8, qword [rsp + 0x50]
mov r15d, dword [rsp + 0x28]
test r13d, r13d
je 0x14005eb8f
bsf rcx, r10
mov dword [rsp + 0x28], ebx
add ecx, edx
and ecx, 0xf
je 0x14005eb86
mov ecx, dword [r8 + rcx*4]
cmp ecx, r15d
jb 0x14005eb8f
mov eax, ecx
add rax, qword [rsp + 0x38]
prefetcht0 byte [rax]
mov dword [rsp + rdi*4 + 0xc0], ecx
inc rdi
dec r13d
lea rax, [r10 - 1]
and r10, rax
ja 0x14005eb52
mov r15, qword [rsp + 0x80]
mov dword [rsp + 0x40], r13d
mov r13, qword [rsp + 0x30]
jmp 0x14005eba8
mov r8, qword [rsp + 0x50]
movzx edx, byte [r12]
dec edx
and edx, 0xf
mov eax, edx
neg eax
sbb ecx, ecx
not ecx
and ecx, 0xf
add edx, ecx
mov byte [r12], dl
mov byte [rdx + r12], r9b
mov ecx, dword [r11 + 0x2c]
lea eax, [rcx + 1]
mov dword [r11 + 0x2c], eax
mov dword [r8 + rdx*4], ecx
test rdi, rdi
je 0x14005ec32
mov rbx, qword [rsp + 0x38]
mov r11, qword [rsp + 0x88]
mov edx, dword [rsp + rbp*4 + 0xc0]
mov eax, dword [rsi + r15 - 3]
add rdx, rbx
cmp dword [rdx + rsi - 3], eax
jne 0x14005ec28
mov r8, r13
mov rcx, r15
call fcn.14009ec70
cmp rax, rsi
jbe 0x14005ec28
mov ecx, r14d
mov rsi, rax
sub ecx, dword [rsp + rbp*4 + 0xc0]
add rax, r15
add ecx, 3
mov qword [r11], rcx
cmp rax, r13
je 0x14005ec30
inc rbp
cmp rbp, rdi
jb 0x14005ebe8
xor ebx, ebx
mov r10, qword [rsp + 0x58]
mov edx, 3
mov r14d, dword [rsp + 0x20]
mov r11d, edx
add r14d, dword [rsp + 0x40]
mov rcx, qword [rsp + 0x60]
mov r8, qword [r10 + 8]
mov r9, qword [r10]
mov r12d, r8d
mov rdi, qword [r10 + 0x70]
sub r12d, r9d
add r12d, dword [rsp + 0x24]
cmp r14d, edx
mov qword [rsp + 0x38], r8
mov qword [rsp + 0x30], r9
cmovb r11d, r14d
add rcx, rdi
mov dword [rsp + 0x28], r11d
mov eax, dword [rcx]
prefetcht0 byte [rax + r8]
lea rcx, [rcx + 4]
sub rdx, 1
jne 0x14005ec7d
mov rax, qword [rsp + 0xa0]
mov ecx, dword [rdi + rax*4 + 0xc]
mov rax, qword [r10 + 0x80]
shr rcx, 8
prefetcht0 byte [rax + rcx*4]
mov dword [rsp + 0x20], ebx
mov ebp, ebx
test r11d, r11d
je 0x14005ed86
mov rax, qword [r10 + 0x70]
mov rcx, qword [rsp + 0x60]
mov eax, dword [rcx + rax]
mov dword [rsp + 0x24], eax
lea r11, [r8 + rax]
test eax, eax
je 0x14005ee80
mov eax, dword [r15]
cmp dword [r11], eax
jne 0x14005ed70
add r11, 4
lea rcx, [r15 + 4]
sub rcx, r11
mov r8, r13
add rcx, r9
mov rdx, r11
cmp rcx, r13
cmovb r8, rcx
lea rcx, [r15 + 4]
call fcn.14009ec70
mov r9, qword [rsp + 0x30]
mov rdi, rax
lea rcx, [rax + r11]
cmp rcx, r9
jne 0x14005ed34
mov rdx, qword [rsp + 0xa8]
lea rcx, [r15 + 4]
add rcx, rax
mov r8, r13
call fcn.14009ec70
mov r9, qword [rsp + 0x30]
add rdi, rax
lea rcx, [rdi + 4]
cmp rcx, rsi
jbe 0x14005ed66
mov eax, dword [rsp + 0x44]
mov rsi, rcx
sub eax, dword [rsp + 0x24]
mov rdx, qword [rsp + 0x88]
sub eax, r12d
add eax, 3
mov qword [rdx], rax
lea rax, [rcx + r15]
cmp rax, r13
je 0x14005ee83
mov r10, qword [rsp + 0x58]
mov r8, qword [rsp + 0x38]
add qword [rsp + 0x60], 4
inc ebp
mov dword [rsp + 0x20], ebp
cmp ebp, dword [rsp + 0x28]
jb 0x14005ecb8
sub r14d, dword [rsp + 0x20]
mov edx, ebx
mov rax, qword [r10 + 0x70]
mov rcx, qword [rsp + 0xa0]
movzx ebp, byte [rax + rcx*4 + 0xc]
mov edi, dword [rax + rcx*4 + 0xc]
shr edi, 8
cmp r14d, ebp
cmovbe ebp, r14d
test ebp, ebp
je 0x14005ee80
mov r11, qword [r10 + 0x80]
lea eax, [rdx + rdi]
mov eax, dword [r11 + rax*4]
prefetcht0 byte [rax + r8]
inc edx
cmp edx, ebp
jb 0x14005edbb
mov rax, qword [r10 + 0x80]
mov eax, dword [rax + rdi*4]
mov dword [rsp + 0x24], eax
lea r11, [r8 + rax]
mov eax, dword [r15]
cmp dword [r11], eax
jne 0x14005ee6f
add r11, 4
lea rcx, [r15 + 4]
sub rcx, r11
mov r8, r13
add rcx, r9
mov rdx, r11
cmp rcx, r13
cmovb r8, rcx
lea rcx, [r15 + 4]
call fcn.14009ec70
mov r14, rax
lea rcx, [rax + r11]
cmp rcx, qword [rsp + 0x30]
jne 0x14005ee37
mov rdx, qword [rsp + 0xa8]
lea rcx, [r15 + 4]
add rcx, rax
mov r8, r13
call fcn.14009ec70
add r14, rax
add r14, 4
cmp r14, rsi
jbe 0x14005ee65
mov eax, dword [rsp + 0x44]
mov rsi, r14
sub eax, dword [rsp + 0x24]
mov rcx, qword [rsp + 0x88]
sub eax, r12d
add eax, 3
mov qword [rcx], rax
lea rax, [r14 + r15]
cmp rax, r13
je 0x14005ee80
mov r10, qword [rsp + 0x58]
mov r8, qword [rsp + 0x38]
mov r9, qword [rsp + 0x30]
inc edi
inc ebx
cmp ebx, ebp
jb 0x14005edcd
mov rcx, rsi
mov rax, rcx
mov rcx, qword [rsp + 0x1c0]
xor rcx, rsp
call fcn.14001bf00
add rsp, 0x1d8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret