Function at 0x1400eed50
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 + 0x68], r9
mov rsi, rdx
mov rax, rcx
mov rcx, qword [0x14018e218]
xor rcx, rsp
mov qword [rsp + 0x1a0], rcx
mov r13, qword [rax + 8]
sub rdx, r13
movzx ecx, byte [rax + 0x100]
mov r10d, 1
shl r10d, cl
mov ecx, dword [rax + 0x1c]
mov r9d, edx
sub r9d, ecx
mov r11d, edx
sub r11d, r10d
cmp r9d, r10d
cmovbe r11d, ecx
mov qword [rsp + 0x50], r8
movabs rdi, 0xcf1bbcdcbb000000
cmp dword [rax + 0x28], 0
cmovne r11d, ecx
mov dword [rsp + 0x58], r11d
mov r8d, dword [rax + 0x10c]
cmp r8d, 6
mov ecx, 6
cmovb ecx, r8d
mov ebp, 1
shl ebp, cl
mov r10d, 1
mov r9, qword [rax + 0xf8]
mov qword [rsp + 0x78], r9
mov r12, qword [rsi]
imul r12, rdi
mov cl, 0x42
sub cl, byte [r9 + 0x108]
mov rbx, r12
shr rbx, cl
mov qword [rsp + 0x70], rbx
shl rbx, 4
lea ecx, [r8 - 6]
shl r10d, cl
mov rcx, qword [rax + 0x70]
mov qword [rsp + 0x30], rcx
mov rdi, qword [rax + 0x38]
mov r14d, dword [rax + 0x34]
mov r11d, dword [rax + 0x18]
mov r15, qword [rax + 0x60]
mov rcx, qword [r9 + 0x70]
prefetcht0 byte [rcx + rbx]
xor ecx, ecx
cmp r8d, 7
cmovae ecx, r10d
cmp dword [rax + 0x12c], 0
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0x80], r11
mov dword [rsp + 0x8c], ecx
je 0x1400eee86
xor r12, r15
mov cl, 0x38
sub cl, r14b
shr r12, cl
mov dword [rax + 0x2c], edx
mov r14, qword [rsp + 0x30]
jmp 0x1400ef190
mov qword [rsp + 0x90], r15
mov r12d, dword [rax + 0x2c]
mov ecx, edx
sub ecx, r12d
cmp ecx, 0x181
mov dword [rsp + 0x48], r14d
mov r11, rdi
jb 0x1400ef050
mov r14, qword [rsp + 0x30]
mov r10, r14
cmp r12d, 0xffffff9f
ja 0x1400eef84
lea r10, [r12 + 0x60]
mov ecx, 0x38
sub ecx, dword [rsp + 0x48]
movabs rdx, 0xcf1bbcdcbb000000
nop word cs:[rax + rax]
mov r9, qword [r13 + r12 + 8]
imul r9, rdx
xor r9, qword [rax + 0x60]
shr r9, cl
mov rsi, r9
shr rsi, 2
and esi, 0x3fffffc0
prefetcht0 byte [r14 + rsi*4]
prefetcht0 byte [r14 + rsi*4 + 0x40]
prefetcht0 byte [rdi + rsi]
prefetcht0 byte [rdi + rsi + 0x20]
mov esi, r12d
and esi, 7
mov r15d, dword [rax + rsi*4 + 0x40]
mov dword [rax + rsi*4 + 0x40], r9d
mov r9, r15
shr r9, 2
and r9d, 0x3fffffc0
lea rsi, [r14 + r9*4]
movzx r13d, byte [rdi + r9]
dec r13b
and r13b, 0x3f
mov r11d, 0
mov r8d, 0x3f
cmove r11d, r8d
lea r8, [rdi + r9]
movzx r13d, r13b
add r13, r11
mov byte [rdi + r9], r13b
mov byte [r8 + r13], r15b
mov dword [rsi + r13*4], r12d
mov r13, qword [rsp + 0x38]
inc r12
cmp r10, r12
jne 0x1400eeee0
mov r11, qword [rax + 0x38]
mov r10, qword [rax + 0x70]
mov rdx, qword [rsp + 0x60]
lea r12d, [rdx - 0x20]
mov rcx, qword [rsp + 0x40]
inc rcx
lea r8, [r12 + 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 + rdx]
add esi, 0xffffffe0
cmp esi, r12d
jbe 0x1400ef031
mov r9, qword [rax + 0x60]
mov ecx, 0x38
sub ecx, dword [rax + 0x34]
mov esi, esi
mov r15, r12
movabs rdx, 0xcf1bbcdcbb000000
nop dword [rax + rax]
mov r8, qword [r13 + r15]
imul r8, rdx
xor r8, r9
shr r8, cl
mov r13, r8
shr r13, 2
and r13d, 0x3fffffc0
prefetcht0 byte [r10 + r13*4]
prefetcht0 byte [r10 + r13*4 + 0x40]
prefetcht0 byte [r11 + r13]
prefetcht0 byte [r11 + r13 + 0x20]
mov r13d, r15d
and r13d, 7
mov dword [rax + r13*4 + 0x40], r8d
mov r13, qword [rsp + 0x38]
inc r15
cmp rsi, r15
jne 0x1400eefe0
mov rdx, qword [rsp + 0x60]
mov r9d, dword [rsp + 0x48]
cmp r12d, edx
jb 0x1400ef05d
mov r12d, edx
mov rcx, qword [rsp + 0x90]
mov r14, qword [rsp + 0x30]
jmp 0x1400ef142
mov r10, qword [rsp + 0x30]
mov r9d, r14d
cmp r12d, edx
jae 0x1400ef03b
mov qword [rsp + 0x98], rdi
mov ecx, 0x38
sub ecx, dword [rax + 0x34]
mov r15, qword [rax + 8]
mov esi, r12d
mov r12d, edx
nop word [rax + rax]
mov r8, qword [r15 + rsi + 8]
movabs rdx, 0xcf1bbcdcbb000000
imul r8, rdx
xor r8, qword [rax + 0x60]
shr r8, cl
mov r13, r8
shr r13, 2
and r13d, 0x3fffffc0
prefetcht0 byte [r10 + r13*4]
prefetcht0 byte [r10 + r13*4 + 0x40]
prefetcht0 byte [r11 + r13]
prefetcht0 byte [r11 + r13 + 0x20]
mov r13d, esi
and r13d, 7
mov r9d, dword [rax + r13*4 + 0x40]
mov dword [rax + r13*4 + 0x40], r8d
mov r8, r9
shr r8, 2
and r8d, 0x3fffffc0
lea r13, [r10 + r8*4]
movzx r14d, byte [r11 + r8]
dec r14b
and r14b, 0x3f
mov edi, 0
mov edx, 0x3f
cmove edi, edx
lea rdx, [r11 + r8]
movzx r14d, r14b
add r14, rdi
mov byte [r11 + r8], r14b
mov byte [rdx + r14], r9b
mov dword [r13 + r14*4], esi
inc rsi
cmp r12, rsi
jne 0x1400ef080
mov r13, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x60]
mov r14, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x98]
mov r9d, dword [rsp + 0x48]
mov rcx, qword [rsp + 0x90]
mov dword [rax + 0x2c], edx
movabs r8, 0xcf1bbcdcbb000000
imul r8, qword [r13 + r12 + 8]
xor r8, rcx
mov cl, 0x38
sub cl, r9b
shr r8, cl
mov rcx, r8
shr rcx, 2
and ecx, 0x3fffffc0
prefetcht0 byte [r14 + rcx*4]
prefetcht0 byte [r14 + rcx*4 + 0x40]
prefetcht0 byte [rdi + rcx]
prefetcht0 byte [rdi + rcx + 0x20]
mov ecx, edx
and ecx, 7
mov r12d, dword [rax + rcx*4 + 0x40]
mov dword [rax + rcx*4 + 0x40], r8d
add dword [rax + 0x68], r12d
mov r9d, r12d
shr r9d, 2
and r9d, 0xffffffc0
lea r11, [rdi + r9]
movzx ecx, byte [rdi + r9]
movd xmm0, r12d
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
movdqu xmm1, xmmword [rdi + r9]
movdqu xmm2, xmmword [rdi + r9 + 0x10]
movdqu xmm3, xmmword [rdi + r9 + 0x20]
movdqu xmm4, xmmword [rdi + r9 + 0x30]
pcmpeqb xmm1, xmm0
pmovmskb esi, xmm1
pcmpeqb xmm2, xmm0
pmovmskb r10d, xmm2
pcmpeqb xmm3, xmm0
pmovmskb r8d, xmm3
pcmpeqb xmm4, xmm0
pmovmskb edi, xmm4
lea r14, [r14 + r9*4]
shl rdi, 0x30
shl r8, 0x20
or r8, rdi
shl r10, 0x10
or r10, r8
xor r8d, r8d
or rsi, r10
je 0x1400ef26b
ror rsi, cl
xor r10d, r10d
mov rdi, qword [rsp + 0x68]
nop word cs:[rax + rax]
tzcnt r9, rsi
add r9d, ecx
and r9d, 0x3f
je 0x1400ef25c
mov r9d, dword [r14 + r9*4]
cmp r9d, dword [rsp + 0x58]
jb 0x1400ef273
prefetcht0 byte [r13 + r9]
mov dword [rsp + r10*4 + 0xa0], r9d
inc r10
dec ebp
lea r9, [rsi - 1]
and rsi, r9
je 0x1400ef273
test ebp, ebp
jne 0x1400ef230
jmp 0x1400ef273
xor r10d, r10d
mov rdi, qword [rsp + 0x68]
shl qword [rsp + 0x70], 2
dec ecx
and ecx, 0x3f
mov r9d, 0x3f
cmove r8d, r9d
add r8, rcx
mov byte [r11], r8b
mov byte [r11 + r8], r12b
mov ecx, dword [rax + 0x2c]
lea r9d, [rcx + 1]
mov dword [rax + 0x2c], r9d
mov dword [r14 + r8*4], ecx
test r10, r10
je 0x1400ef41e
mov rcx, qword [rsp + 0x50]
lea rax, [rcx - 7]
lea r8, [rcx - 3]
mov qword [rsp + 0x58], r8
lea r9, [rcx - 1]
lea ecx, [rdx + 3]
mov dword [rsp + 0x30], ecx
mov rdx, qword [rsp + 0x40]
lea rsi, [rdx + 8]
lea rcx, [r13 + 8]
mov qword [rsp + 0x48], rcx
mov r8d, 3
xor ecx, ecx
jmp 0x1400ef2ff
inc rcx
mov r14, r8
cmp rcx, r10
je 0x1400ef429
mov r12d, dword [rsp + rcx*4 + 0xa0]
lea r15, [r12 + r13]
mov r11d, dword [r8 + r15 - 3]
cmp r11d, dword [rdx + r8 - 3]
jne 0x1400ef2f0
cmp rax, rdx
jbe 0x1400ef340
mov r11, qword [rdx]
xor r11, qword [r15]
je 0x1400ef35c
tzcnt r14, r11
shr r14, 3
jmp 0x1400ef3f6
mov r14, rdx
cmp r14, qword [rsp + 0x58]
jae 0x1400ef3c0
mov r11d, dword [r15]
cmp r11d, dword [r14]
jne 0x1400ef3c0
add r14, 4
add r15, 4
jmp 0x1400ef3c0
mov rdx, qword [rsp + 0x48]
lea r15, [rdx + r12]
xor r13d, r13d
nop dword [rax + rax]
lea r14, [rsi + r13]
cmp r14, rax
jae 0x1400ef3a1
mov r14, qword [r14]
lea r11, [r13 + 8]
xor r14, qword [r15 + r13]
mov r13, r11
je 0x1400ef370
tzcnt r14, r14
shr r14, 3
add r14, r11
mov rdx, qword [rsp + 0x40]
mov r13, qword [rsp + 0x38]
jmp 0x1400ef3f6
add r15, r13
mov rdx, qword [rsp + 0x40]
mov r13, qword [rsp + 0x38]
cmp r14, qword [rsp + 0x58]
jb 0x1400ef34a
nop word cs:[rax + rax]
cmp r14, r9
jae 0x1400ef3d7
movzx r11d, word [r15]
cmp r11w, word [r14]
jne 0x1400ef3d7
add r14, 2
add r15, 2
cmp r14, qword [rsp + 0x50]
jae 0x1400ef3f3
movzx r11d, byte [r15]
xor edi, edi
cmp r11b, byte [r14]
sete dil
add r14, rdi
mov rdi, qword [rsp + 0x68]
sub r14, rdx
cmp r14, r8
jbe 0x1400ef2f0
mov r8d, dword [rsp + 0x30]
sub r8d, r12d
mov qword [rdi], r8
lea r11, [rdx + r14]
mov r8, r14
cmp r11, qword [rsp + 0x50]
jne 0x1400ef2f0
jmp 0x1400ef429
mov r14d, 3
mov rdx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x80]
add r13, rax
add ebp, dword [rsp + 0x8c]
mov r9, qword [rsp + 0x78]
mov rcx, qword [r9]
mov rsi, qword [r9 + 8]
mov qword [rsp + 0x58], rcx
mov r12d, ecx
sub r12d, esi
sub r12d, eax
mov rax, qword [r9 + 0x70]
mov r10, qword [rsp + 0x70]
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 0x1400ef59c
mov qword [rsp + 0x70], r10
mov rdi, r13
lea rax, [rdx + 4]
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x48], r12
lea eax, [rax + r12 + 3]
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x80], r8d
mov r15d, r8d
mov r13, r14
jmp 0x1400ef4f9
add rbx, 4
dec r15
je 0x1400ef571
mov rax, qword [r9 + 0x70]
mov r12d, dword [rax + rbx]
test r12, r12
je 0x1400ef569
lea rdx, [rsi + r12]
mov eax, dword [rdx]
mov rcx, qword [rsp + 0x40]
cmp eax, dword [rcx]
jne 0x1400ef4f0
add rdx, 4
mov qword [rsp + 0x20], rdi
mov rcx, qword [rsp + 0x38]
mov r8, qword [rsp + 0x50]
mov r9, qword [rsp + 0x58]
call fcn.1400b81d0
mov r9, qword [rsp + 0x78]
mov r14, rax
add r14, 4
cmp r14, r13
jbe 0x1400ef4f0
mov eax, dword [rsp + 0x30]
sub eax, r12d
mov rcx, qword [rsp + 0x68]
mov qword [rcx], rax
mov rax, qword [rsp + 0x40]
add rax, r14
mov r13, r14
cmp rax, qword [rsp + 0x50]
jne 0x1400ef4f0
jmp 0x1400ef6de
mov r14, r13
jmp 0x1400ef6de
mov rax, qword [r9 + 0x70]
mov rcx, qword [rsp + 0x70]
mov r15d, dword [rax + rcx*4]
mov eax, r15d
shr eax, 8
mov r14, r13
mov rdx, qword [rsp + 0x40]
mov r13, rdi
mov r12, qword [rsp + 0x48]
mov r8d, dword [rsp + 0x80]
movzx ecx, r15b
sub ebp, r8d
cmp ebp, ecx
cmovae ebp, ecx
test ebp, ebp
je 0x1400ef6de
mov rcx, qword [r9 + 0x80]
mov ebx, eax
mov r8d, ebp
mov eax, r8d
and eax, 3
cmp ebp, 4
jae 0x1400ef5cc
xor r9d, r9d
jmp 0x1400ef610
and r8d, 0xfc
lea r10, [rcx + rbx*4]
add r10, 0xc
xor r9d, r9d
nop
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 0x1400ef5e0
mov r10, r12
mov rdi, r13
test rax, rax
je 0x1400ef642
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 0x1400ef630
lea r12, [rdx + 4]
mov rax, qword [rsp + 0x60]
add eax, r10d
add eax, 3
mov dword [rsp + 0x38], eax
shr r15d, 8
mov r13d, dword [rdx]
mov r8, qword [rsp + 0x78]
jmp 0x1400ef677
inc r15
dec ebp
je 0x1400ef6de
mov rax, qword [r8 + 0x80]
mov ebx, dword [rax + r15*4]
cmp dword [rsi + rbx], r13d
jne 0x1400ef670
lea rdx, [rsi + rbx]
add rdx, 4
mov qword [rsp + 0x20], rdi
mov rcx, r12
mov r8, qword [rsp + 0x50]
mov r9, qword [rsp + 0x58]
call fcn.1400b81d0
mov r8, qword [rsp + 0x78]
add rax, 4
cmp rax, r14
jbe 0x1400ef670
mov ecx, dword [rsp + 0x38]
sub ecx, ebx
mov rdx, qword [rsp + 0x68]
mov qword [rdx], rcx
mov rdx, qword [rsp + 0x40]
lea rcx, [rdx + rax]
cmp rcx, qword [rsp + 0x50]
je 0x1400ef6db
mov r13d, dword [rdx]
mov r14, rax
jmp 0x1400ef670
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