Function at 0x1400ee300
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x1a8
mov qword [rsp + 0x98], r9
mov rax, rcx
mov rcx, qword [0x14018e218]
xor rcx, rsp
mov qword [rsp + 0x1a0], rcx
mov r13, qword [rax + 8]
mov r12, rdx
sub r12, r13
movzx ecx, byte [rax + 0x100]
mov r9d, 1
shl r9d, cl
mov ecx, dword [rax + 0x1c]
mov r10d, r12d
sub r10d, ecx
mov r11d, r12d
sub r11d, r9d
cmp r10d, r9d
cmovbe r11d, ecx
mov qword [rsp + 0x50], r8
movabs rsi, 0xcf1bbcdcbb000000
cmp dword [rax + 0x28], 0
cmovne r11d, ecx
mov dword [rsp + 0x60], r11d
mov r8d, dword [rax + 0x10c]
cmp r8d, 5
mov ecx, 5
cmovb ecx, r8d
mov ebp, 1
shl ebp, cl
mov r10d, 1
mov r9, qword [rax + 0xf8]
mov r11, qword [rdx]
imul r11, rsi
mov cl, 0x42
sub cl, byte [r9 + 0x108]
mov rbx, r11
shr rbx, cl
mov qword [rsp + 0x78], rbx
shl rbx, 4
lea ecx, [r8 - 5]
shl r10d, cl
mov rdi, qword [rax + 0x70]
mov rcx, qword [rax + 0x38]
mov qword [rsp + 0x40], rcx
mov r14d, dword [rax + 0x34]
mov r15d, dword [rax + 0x18]
mov rsi, qword [rax + 0x60]
mov qword [rsp + 0x80], r9
mov rcx, qword [r9 + 0x70]
prefetcht0 byte [rcx + rbx]
xor ecx, ecx
cmp r8d, 6
cmovae ecx, r10d
cmp dword [rax + 0x12c], 0
mov qword [rsp + 0x38], rdx
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x68], r12
mov qword [rsp + 0x90], r15
mov dword [rsp + 0x5c], ecx
je 0x1400ee43a
xor r11, rsi
mov cl, 0x38
sub cl, r14b
shr r11, cl
mov dword [rax + 0x2c], r12d
mov r9, qword [rsp + 0x40]
jmp 0x1400ee807
mov r15d, dword [rax + 0x2c]
mov ecx, r12d
sub ecx, r15d
cmp ecx, 0x181
mov dword [rsp + 0x4c], r14d
mov qword [rsp + 0x70], rsi
jb 0x1400ee652
mov r11, qword [rsp + 0x40]
mov r10, rdi
cmp r15d, 0xffffff9f
ja 0x1400ee537
lea r8, [r15 + 0x60]
mov ecx, 0x38
sub ecx, r14d
mov rdx, qword [rsp + 0x40]
movabs r14, 0xcf1bbcdcbb000000
nop word [rax + rax]
mov r11, qword [r13 + r15 + 8]
imul r11, r14
xor r11, qword [rax + 0x60]
shr r11, cl
mov rsi, r11
shr rsi, 3
and esi, 0x1fffffe0
prefetcht0 byte [rdi + rsi*4]
prefetcht0 byte [rdi + rsi*4 + 0x40]
prefetcht0 byte [rdx + rsi]
mov esi, r15d
and esi, 7
mov r13d, dword [rax + rsi*4 + 0x40]
mov dword [rax + rsi*4 + 0x40], r11d
mov r11, r13
shr r11, 3
and r11d, 0x1fffffe0
lea rsi, [rdi + r11*4]
movzx r10d, byte [rdx + r11]
dec r10b
and r10b, 0x1f
mov r9d, 0
mov r12d, 0x1f
cmove r9d, r12d
lea r12, [rdx + r11]
movzx r10d, r10b
add r10, r9
mov byte [rdx + r11], r10b
mov byte [r12 + r10], r13b
mov r13, qword [rsp + 0x30]
mov dword [rsi + r10*4], r15d
inc r15
cmp r8, r15
jne 0x1400ee490
mov r11, qword [rax + 0x38]
mov r10, qword [rax + 0x70]
mov rdx, qword [rsp + 0x38]
mov r12, qword [rsp + 0x68]
mov r14d, dword [rsp + 0x4c]
lea r15d, [r12 - 0x20]
lea rcx, [rdx + 1]
lea r8, [r15 + r13]
mov r9d, ecx
sub r9d, r8d
inc r9d
cmp r9d, 8
mov esi, 8
cmovb esi, r9d
xor r9d, r9d
cmp r8, rcx
cmovbe r9d, esi
lea esi, [r9 + r12]
add esi, 0xffffffe0
cmp esi, r15d
jbe 0x1400ee661
mov r8, qword [rax + 0x60]
mov ecx, 0x38
sub ecx, dword [rax + 0x34]
mov r14d, esi
sub esi, r15d
mov r13, r15
not r13
test sil, 1
jne 0x1400ee673
mov rsi, r15
movabs rdx, 0xcf1bbcdcbb000000
add r13, r14
je 0x1400ee6c5
mov qword [rsp + 0x88], rdi
mov rdi, qword [rsp + 0x30]
nop dword [rax]
mov r9, qword [rdi + rsi]
imul r9, rdx
xor r9, r8
shr r9, cl
mov r12, r9
shr r12, 3
and r12d, 0x1fffffe0
prefetcht0 byte [r10 + r12*4]
prefetcht0 byte [r10 + r12*4 + 0x40]
prefetcht0 byte [r11 + r12]
mov r12d, esi
and r12d, 7
mov dword [rax + r12*4 + 0x40], r9d
mov r9, qword [rdi + rsi + 1]
imul r9, rdx
xor r9, r8
shr r9, cl
lea r12d, [rsi + 1]
mov r13, r9
shr r13, 3
and r13d, 0x1fffffe0
prefetcht0 byte [r10 + r13*4]
prefetcht0 byte [r10 + r13*4 + 0x40]
prefetcht0 byte [r11 + r13]
and r12d, 7
mov dword [rax + r12*4 + 0x40], r9d
add rsi, 2
cmp r14, rsi
jne 0x1400ee5c0
mov rdx, qword [rsp + 0x38]
mov r13, rdi
mov r12, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x88]
jmp 0x1400ee6cf
mov r11, qword [rsp + 0x40]
mov r10, rdi
cmp r15d, r12d
jae 0x1400ee66b
jmp 0x1400ee6de
mov rsi, qword [rsp + 0x70]
cmp r15d, r12d
jb 0x1400ee6de
mov r8d, r12d
jmp 0x1400ee7b8
mov rdx, qword [rsp + 0x30]
mov r9, qword [rdx + r15]
movabs rdx, 0xcf1bbcdcbb000000
imul r9, rdx
xor r9, r8
shr r9, cl
mov rsi, r9
shr rsi, 3
and esi, 0x1fffffe0
prefetcht0 byte [r10 + rsi*4]
prefetcht0 byte [r10 + rsi*4 + 0x40]
prefetcht0 byte [r11 + rsi]
mov esi, r15d
and esi, 7
mov dword [rax + rsi*4 + 0x40], r9d
lea rsi, [r15 + 1]
add r13, r14
jne 0x1400ee5ac
mov rdx, qword [rsp + 0x38]
mov r13, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x70]
mov r14d, dword [rsp + 0x4c]
cmp r15d, r12d
jae 0x1400ee66b
mov qword [rsp + 0x88], rdi
mov ecx, 0x38
sub ecx, dword [rax + 0x34]
mov rsi, qword [rax + 8]
mov r15d, r15d
mov r8d, r12d
nop dword [rax + rax]
mov r9, qword [rsi + r15 + 8]
movabs rdx, 0xcf1bbcdcbb000000
imul r9, rdx
xor r9, qword [rax + 0x60]
shr r9, cl
mov r12, r9
shr r12, 3
and r12d, 0x1fffffe0
prefetcht0 byte [r10 + r12*4]
prefetcht0 byte [r10 + r12*4 + 0x40]
prefetcht0 byte [r11 + r12]
mov r12d, r15d
and r12d, 7
mov r13d, dword [rax + r12*4 + 0x40]
mov dword [rax + r12*4 + 0x40], r9d
mov r9, r13
shr r9, 3
and r9d, 0x1fffffe0
lea r12, [r10 + r9*4]
movzx r14d, byte [r11 + r9]
dec r14b
and r14b, 0x1f
mov edx, 0
mov edi, 0x1f
cmove edx, edi
lea rdi, [r11 + r9]
movzx r14d, r14b
add r14, rdx
mov byte [r11 + r9], r14b
mov byte [rdi + r14], r13b
mov dword [r12 + r14*4], r15d
inc r15
cmp r8, r15
jne 0x1400ee700
mov rdx, qword [rsp + 0x38]
mov r13, qword [rsp + 0x30]
mov r12, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x88]
mov r14d, dword [rsp + 0x4c]
mov rsi, qword [rsp + 0x70]
mov dword [rax + 0x2c], r12d
movabs r10, 0xcf1bbcdcbb000000
imul r10, qword [r13 + r8 + 8]
xor r10, rsi
mov cl, 0x38
sub cl, r14b
shr r10, cl
mov rcx, r10
shr rcx, 3
and ecx, 0x1fffffe0
prefetcht0 byte [rdi + rcx*4]
prefetcht0 byte [rdi + rcx*4 + 0x40]
mov r9, qword [rsp + 0x40]
prefetcht0 byte [r9 + rcx]
mov ecx, r12d
and ecx, 7
mov r11d, dword [rax + rcx*4 + 0x40]
mov dword [rax + rcx*4 + 0x40], r10d
add dword [rax + 0x68], r11d
mov r10d, r11d
shr r10d, 3
and r10d, 0xffffffe0
lea r8, [r9 + r10]
movzx ecx, byte [r9 + r10]
movd xmm0, r11d
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
movdqu xmm1, xmmword [r9 + r10]
movdqu xmm2, xmmword [r9 + r10 + 0x10]
pcmpeqb xmm1, xmm0
pmovmskb r9d, xmm1
pcmpeqb xmm2, xmm0
pmovmskb r14d, xmm2
lea rdi, [rdi + r10*4]
shl r14d, 0x10
xor esi, esi
or r14d, r9d
je 0x1400ee8ab
ror r14d, cl
xor r10d, r10d
nop word cs:[rax + rax]
tzcnt r15, r14
add r15d, ecx
and r15d, 0x1f
je 0x1400ee89c
mov r15d, dword [rdi + r15*4]
cmp r15d, dword [rsp + 0x60]
jb 0x1400ee8ae
prefetcht0 byte [r13 + r15]
mov dword [rsp + r10*4 + 0xa0], r15d
inc r10
dec ebp
lea r9, [r14 - 1]
and r14, r9
je 0x1400ee8ae
test ebp, ebp
jne 0x1400ee870
jmp 0x1400ee8ae
xor r10d, r10d
shl qword [rsp + 0x78], 2
dec ecx
and ecx, 0x1f
mov r9d, 0x1f
cmove esi, r9d
add rsi, rcx
mov byte [r8], sil
mov byte [r8 + rsi], r11b
mov ecx, dword [rax + 0x2c]
lea r8d, [rcx + 1]
mov dword [rax + 0x2c], r8d
mov dword [rdi + rsi*4], ecx
test r10, r10
je 0x1400eea51
mov r8, qword [rsp + 0x50]
lea rax, [r8 - 7]
lea rcx, [r8 - 3]
lea rdi, [r8 - 1]
lea r8d, [r12 + 3]
mov dword [rsp + 0x60], r8d
lea r11, [rdx + 8]
lea r8, [r13 + 8]
mov qword [rsp + 0x40], r8
mov r12d, 3
xor r15d, r15d
jmp 0x1400ee92f
inc r15
mov r14, r12
cmp r15, r10
je 0x1400eea57
mov r8d, dword [rsp + r15*4 + 0xa0]
lea rsi, [r8 + r13]
mov r9d, dword [r12 + rsi - 3]
cmp r9d, dword [rdx + r12 - 3]
jne 0x1400ee920
cmp rax, rdx
jbe 0x1400ee970
mov r9, qword [rdx]
xor r9, qword [rsi]
je 0x1400ee98a
tzcnt r14, r9
shr r14, 3
jmp 0x1400eea21
mov r14, rdx
cmp r14, rcx
jae 0x1400ee9f0
mov r9d, dword [rsi]
cmp r9d, dword [r14]
jne 0x1400ee9f0
add r14, 4
add rsi, 4
jmp 0x1400ee9f0
mov rdx, qword [rsp + 0x40]
lea rsi, [rdx + r8]
xor r13d, r13d
nop word cs:[rax + rax]
lea r14, [r11 + r13]
cmp r14, rax
jae 0x1400ee9d1
mov r14, qword [r14]
lea r9, [r13 + 8]
xor r14, qword [rsi + r13]
mov r13, r9
je 0x1400ee9a0
tzcnt r14, r14
shr r14, 3
add r14, r9
mov rdx, qword [rsp + 0x38]
mov r13, qword [rsp + 0x30]
jmp 0x1400eea21
add rsi, r13
mov rdx, qword [rsp + 0x38]
mov r13, qword [rsp + 0x30]
cmp r14, rcx
jb 0x1400ee978
nop word cs:[rax + rax]
cmp r14, rdi
jae 0x1400eea07
movzx r9d, word [rsi]
cmp r9w, word [r14]
jne 0x1400eea07
add r14, 2
add rsi, 2
cmp r14, qword [rsp + 0x50]
jae 0x1400eea1e
movzx r9d, byte [rsi]
xor esi, esi
cmp r9b, byte [r14]
sete sil
add r14, rsi
sub r14, rdx
cmp r14, r12
jbe 0x1400ee920
mov r9d, dword [rsp + 0x60]
sub r9d, r8d
mov r8, qword [rsp + 0x98]
mov qword [r8], r9
lea r8, [rdx + r14]
mov r12, r14
cmp r8, qword [rsp + 0x50]
jne 0x1400ee920
jmp 0x1400eea57
mov r14d, 3
mov rax, qword [rsp + 0x90]
add r13, rax
add ebp, dword [rsp + 0x5c]
mov r9, qword [rsp + 0x80]
mov rcx, qword [r9]
mov rsi, qword [r9 + 8]
mov qword [rsp + 0x60], rcx
mov r12d, ecx
sub r12d, esi
sub r12d, eax
mov rax, qword [r9 + 0x70]
mov r10, qword [rsp + 0x78]
lea rcx, [r10*4]
mov r8d, dword [rax + r10*4]
prefetcht0 byte [rsi + r8]
mov r8, rcx
or r8, 4
mov r8d, dword [rax + r8]
prefetcht0 byte [rsi + r8]
or rcx, 8
mov ecx, dword [rax + rcx]
cmp ebp, 3
mov r8d, 3
cmovb r8d, ebp
prefetcht0 byte [rsi + rcx]
or r10, 3
mov r15d, dword [rax + r10*4]
mov rax, r15
shr rax, 8
mov rcx, qword [r9 + 0x80]
prefetcht0 byte [rcx + rax*4]
test r8d, r8d
je 0x1400eebd2
mov qword [rsp + 0x78], r10
mov rdi, r13
lea rax, [rdx + 4]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x90], r12
lea eax, [rax + r12 + 3]
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x5c], r8d
mov r15d, r8d
mov r13, r14
jmp 0x1400eeb29
add rbx, 4
dec r15
je 0x1400eeba7
mov rax, qword [r9 + 0x70]
mov r12d, dword [rax + rbx]
test r12, r12
je 0x1400eeb9f
lea rdx, [rsi + r12]
mov eax, dword [rdx]
mov rcx, qword [rsp + 0x38]
cmp eax, dword [rcx]
jne 0x1400eeb20
add rdx, 4
mov qword [rsp + 0x20], rdi
mov rcx, qword [rsp + 0x30]
mov r8, qword [rsp + 0x50]
mov r9, qword [rsp + 0x60]
call fcn.1400b81d0
mov r9, qword [rsp + 0x80]
mov r14, rax
add r14, 4
cmp r14, r13
jbe 0x1400eeb20
mov eax, dword [rsp + 0x40]
sub eax, r12d
mov rcx, qword [rsp + 0x98]
mov qword [rcx], rax
mov rax, qword [rsp + 0x38]
add rax, r14
mov r13, r14
cmp rax, qword [rsp + 0x50]
jne 0x1400eeb20
jmp 0x1400eed22
mov r14, r13
jmp 0x1400eed22
mov rax, qword [r9 + 0x70]
mov rcx, qword [rsp + 0x78]
mov r15d, dword [rax + rcx*4]
mov eax, r15d
shr eax, 8
mov r14, r13
mov rdx, qword [rsp + 0x38]
mov r13, rdi
mov r12, qword [rsp + 0x90]
mov r8d, dword [rsp + 0x5c]
movzx ecx, r15b
sub ebp, r8d
cmp ebp, ecx
cmovae ebp, ecx
test ebp, ebp
je 0x1400eed22
mov rcx, qword [r9 + 0x80]
mov ebx, eax
mov r8d, ebp
mov eax, r8d
and eax, 3
cmp ebp, 4
jae 0x1400eec02
xor r9d, r9d
jmp 0x1400eec50
and r8d, 0xfc
lea r10, [rcx + rbx*4]
add r10, 0xc
xor r9d, r9d
nop word cs:[rax + rax]
mov r11d, dword [r10 + r9*4 - 0xc]
prefetcht0 byte [rsi + r11]
mov r11d, dword [r10 + r9*4 - 8]
prefetcht0 byte [rsi + r11]
mov r11d, dword [r10 + r9*4 - 4]
prefetcht0 byte [rsi + r11]
mov r11d, dword [r10 + r9*4]
prefetcht0 byte [rsi + r11]
add r9, 4
cmp r8, r9
jne 0x1400eec20
mov r10, r12
mov rdi, r13
test rax, rax
je 0x1400eec82
add r9, rbx
lea rcx, [rcx + r9*4]
shl rax, 2
xor r9d, r9d
nop dword [rax]
mov r8d, dword [rcx + r9]
prefetcht0 byte [rsi + r8]
add r9, 4
cmp rax, r9
jne 0x1400eec70
lea r12, [rdx + 4]
mov rax, qword [rsp + 0x68]
add eax, r10d
add eax, 3
mov dword [rsp + 0x30], eax
shr r15d, 8
mov r13d, dword [rdx]
mov r8, qword [rsp + 0x80]
jmp 0x1400eecbd
mov r13d, dword [rdx]
mov r14, rax
inc r15
dec ebp
je 0x1400eed22
mov rax, qword [r8 + 0x80]
mov ebx, dword [rax + r15*4]
cmp dword [rsi + rbx], r13d
jne 0x1400eecb6
lea rdx, [rsi + rbx]
add rdx, 4
mov qword [rsp + 0x20], rdi
mov rcx, r12
mov r8, qword [rsp + 0x50]
mov r9, qword [rsp + 0x60]
call fcn.1400b81d0
mov r8, qword [rsp + 0x80]
add rax, 4
cmp rax, r14
jbe 0x1400eecb6
mov ecx, dword [rsp + 0x30]
sub ecx, ebx
mov rdx, qword [rsp + 0x98]
mov qword [rdx], rcx
mov rdx, qword [rsp + 0x38]
lea rcx, [rdx + rax]
cmp rcx, qword [rsp + 0x50]
jne 0x1400eecb0
mov r14, rax
mov rcx, qword [rsp + 0x1a0]
xor rcx, rsp
call fcn.14011fde0
mov rax, r14
add rsp, 0x1a8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret