Function at 0x1400e8040
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x1b8
mov rax, rcx
mov rcx, qword [0x14018e218]
xor rcx, rsp
mov qword [rsp + 0x1b0], rcx
mov r13, qword [rax + 8]
mov rsi, rdx
sub rsi, r13
movzx ecx, byte [rax + 0x100]
mov edi, 1
shl edi, cl
mov ecx, dword [rax + 0x1c]
mov r10d, esi
sub r10d, ecx
mov r11d, esi
sub r11d, edi
cmp r10d, edi
cmovbe r11d, ecx
mov qword [rsp + 0x88], r9
mov qword [rsp + 0x58], r8
cmp dword [rax + 0x28], 0
mov r8d, 1
cmovne r11d, ecx
mov dword [rsp + 0x50], r11d
mov r9d, dword [rax + 0x10c]
cmp r9d, 5
mov ecx, 5
cmovb ecx, r9d
shl r8d, cl
movabs r10, 0xcf1bbcdcbb000000
mov r12, qword [rax + 0xf8]
mov qword [rsp + 0x68], rdx
mov r9, qword [rdx]
imul r9, r10
mov cl, 0x38
sub cl, byte [r12 + 0x34]
mov rdx, r9
shr rdx, cl
mov rcx, qword [rax + 0x70]
mov qword [rsp + 0x40], rcx
mov r15, qword [rax + 0x38]
mov rbp, rdx
shr rbp, 3
and ebp, 0x1fffffe0
mov ebx, dword [rax + 0x34]
mov ecx, dword [rax + 0x18]
mov qword [rsp + 0x80], rcx
mov r11, qword [rax + 0x60]
mov rcx, qword [r12 + 0x38]
mov rdi, qword [r12 + 0x70]
prefetcht0 byte [rdi + rbp*4]
prefetcht0 byte [rdi + rbp*4 + 0x40]
mov r14, rcx
prefetcht0 byte [rcx + rbp]
cmp dword [rax + 0x12c], 0
mov cl, 0x38
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x78], rsi
mov qword [rsp + 0xa0], r12
mov qword [rsp + 0x60], rbp
mov qword [rsp + 0x98], rdi
mov qword [rsp + 0xa8], rdx
je 0x1400e8187
xor r9, r11
sub cl, bl
shr r9, cl
mov dword [rax + 0x2c], esi
mov rdi, r15
mov r15, qword [rsp + 0x40]
jmp 0x1400e8503
mov qword [rsp + 0x70], r11
mov r11d, dword [rax + 0x2c]
mov ecx, esi
sub ecx, r11d
cmp ecx, 0x181
mov qword [rsp + 0x48], r14
mov dword [rsp + 0x34], ebx
mov rdi, r15
jb 0x1400e82e1
mov rbp, qword [rsp + 0x40]
cmp r11d, 0xffffff9f
ja 0x1400e827e
lea rdx, [r11 + 0x60]
mov ecx, 0x38
sub ecx, dword [rsp + 0x34]
mov r12, r10
mov r10, qword [rsp + 0x40]
nop word cs:[rax + rax]
mov rbx, qword [r13 + r11 + 8]
imul rbx, r12
xor rbx, qword [rax + 0x60]
shr rbx, cl
mov r15, rbx
shr r15, 3
and r15d, 0x1fffffe0
prefetcht0 byte [r10 + r15*4]
prefetcht0 byte [r10 + r15*4 + 0x40]
prefetcht0 byte [rdi + r15]
mov r15d, r11d
and r15d, 7
mov r13d, dword [rax + r15*4 + 0x40]
mov dword [rax + r15*4 + 0x40], ebx
mov rbx, r13
shr rbx, 3
and ebx, 0x1fffffe0
lea r15, [r10 + rbx*4]
movzx ebp, byte [rdi + rbx]
dec bpl
and bpl, 0x1f
mov r9d, 0
mov r14d, 0x1f
cmove r9d, r14d
lea r14, [rdi + rbx]
movzx ebp, bpl
add rbp, r9
mov byte [rdi + rbx], bpl
mov byte [r14 + rbp], r13b
mov r13, qword [rsp + 0x38]
mov dword [r15 + rbp*4], r11d
inc r11
cmp rdx, r11
jne 0x1400e81e0
mov r15, qword [rax + 0x38]
mov rbp, qword [rax + 0x70]
mov r10, r12
lea r11d, [rsi - 0x20]
mov rcx, qword [rsp + 0x68]
inc rcx
lea rdx, [r11 + r13]
mov r9d, ecx
sub r9d, edx
inc r9d
cmp r9d, 8
mov ebx, 8
cmovb ebx, r9d
xor r9d, r9d
cmp rdx, rcx
cmovbe r9d, ebx
add r9d, esi
add r9d, 0xffffffe0
cmp r9d, r11d
jbe 0x1400e83d7
mov rdx, qword [rax + 0x60]
mov ecx, 0x38
sub ecx, dword [rax + 0x34]
mov r12d, r9d
sub r9d, r11d
mov rbx, r11
not rbx
test r9b, 1
jne 0x1400e8305
mov r9, r11
jmp 0x1400e8343
mov rbp, qword [rsp + 0x40]
cmp r11d, esi
jb 0x1400e83e4
mov edx, esi
mov r14, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x60]
mov r15, qword [rsp + 0x40]
jmp 0x1400e84c0
mov r9, qword [r13 + r11]
imul r9, r10
xor r9, rdx
shr r9, cl
mov r14, r9
shr r14, 3
and r14d, 0x1fffffe0
prefetcht0 byte [rbp + r14*4]
prefetcht0 byte [rbp + r14*4 + 0x40]
prefetcht0 byte [r15 + r14]
mov r14d, r11d
and r14d, 7
mov dword [rax + r14*4 + 0x40], r9d
lea r9, [r11 + 1]
add rbx, r12
je 0x1400e83d7
nop dword [rax]
mov rbx, qword [r13 + r9]
imul rbx, r10
xor rbx, rdx
shr rbx, cl
mov r14, rbx
shr r14, 3
and r14d, 0x1fffffe0
prefetcht0 byte [rbp + r14*4]
prefetcht0 byte [rbp + r14*4 + 0x40]
prefetcht0 byte [r15 + r14]
mov r14d, r9d
and r14d, 7
mov dword [rax + r14*4 + 0x40], ebx
mov rbx, qword [r13 + r9 + 1]
imul rbx, r10
xor rbx, rdx
shr rbx, cl
lea r14d, [r9 + 1]
mov r13, rbx
shr r13, 3
and r13d, 0x1fffffe0
prefetcht0 byte [rbp + r13*4]
prefetcht0 byte [rbp + r13*4 + 0x40]
prefetcht0 byte [r15 + r13]
mov r13, qword [rsp + 0x38]
and r14d, 7
mov dword [rax + r14*4 + 0x40], ebx
add r9, 2
cmp r12, r9
jne 0x1400e8350
mov ebx, dword [rsp + 0x34]
cmp r11d, esi
jae 0x1400e82ef
mov qword [rsp + 0x90], rdi
mov ecx, 0x38
sub ecx, dword [rax + 0x34]
mov r9, qword [rax + 8]
mov r11d, r11d
mov edx, esi
nop dword [rax]
mov r14, qword [r9 + r11 + 8]
imul r14, r10
xor r14, qword [rax + 0x60]
shr r14, cl
mov r13, r14
shr r13, 3
and r13d, 0x1fffffe0
prefetcht0 byte [rbp + r13*4]
prefetcht0 byte [rbp + r13*4 + 0x40]
prefetcht0 byte [r15 + r13]
mov r13d, r11d
and r13d, 7
mov rsi, r10
mov r10d, dword [rax + r13*4 + 0x40]
mov dword [rax + r13*4 + 0x40], r14d
mov r14, r10
shr r14, 3
and r14d, 0x1fffffe0
lea r13, [r14*4]
add r13, rbp
movzx ebx, byte [r15 + r14]
dec bl
and bl, 0x1f
mov edi, 0
mov r12d, 0x1f
cmove edi, r12d
lea r12, [r15 + r14]
movzx ebx, bl
add rbx, rdi
mov byte [r15 + r14], bl
mov byte [r12 + rbx], r10b
mov r10, rsi
mov dword [r13 + rbx*4], r11d
inc r11
cmp rdx, r11
jne 0x1400e8400
mov r13, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x78]
mov r14, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x60]
mov r15, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x90]
mov ebx, dword [rsp + 0x34]
mov rcx, qword [rsp + 0x70]
mov dword [rax + 0x2c], esi
imul r10, qword [r13 + rdx + 8]
xor r10, rcx
mov cl, 0x38
sub cl, bl
shr r10, cl
mov rcx, r10
shr rcx, 3
and ecx, 0x1fffffe0
prefetcht0 byte [r15 + rcx*4]
prefetcht0 byte [r15 + rcx*4 + 0x40]
prefetcht0 byte [rdi + rcx]
mov ecx, esi
and ecx, 7
mov r9d, dword [rax + rcx*4 + 0x40]
mov dword [rax + rcx*4 + 0x40], r10d
add dword [rax + 0x68], r9d
mov r10d, r9d
shr r10d, 3
and r10d, 0xffffffe0
lea rdx, [rdi + r10]
movzx ecx, byte [rdi + r10]
movd xmm0, r9d
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
movdqu xmm1, xmmword [rdi + r10]
movdqu xmm2, xmmword [rdi + r10 + 0x10]
pcmpeqb xmm1, xmm0
pmovmskb ebx, xmm1
pcmpeqb xmm2, xmm0
pmovmskb r11d, xmm2
lea r10, [r15 + r10*4]
shl r11d, 0x10
xor edi, edi
or r11d, ebx
je 0x1400e85aa
ror r11d, cl
xor r15d, r15d
nop word cs:[rax + rax]
tzcnt rbx, r11
add ebx, ecx
and ebx, 0x1f
je 0x1400e859a
mov ebx, dword [r10 + rbx*4]
cmp ebx, dword [rsp + 0x50]
jb 0x1400e85ad
prefetcht0 byte [r13 + rbx]
mov dword [rsp + r15*4 + 0xb0], ebx
inc r15
dec r8d
lea rbx, [r11 - 1]
and r11, rbx
je 0x1400e85ad
test r8d, r8d
jne 0x1400e8570
jmp 0x1400e85ad
xor r15d, r15d
add r14, rbp
dec ecx
and ecx, 0x1f
mov r11d, 0x1f
cmove edi, r11d
add rdi, rcx
mov byte [rdx], dil
mov byte [rdx + rdi], r9b
mov ecx, dword [rax + 0x2c]
lea edx, [rcx + 1]
mov dword [rax + 0x2c], edx
mov dword [r10 + rdi*4], ecx
test r15, r15
mov qword [rsp + 0x48], r14
je 0x1400e873e
mov rdx, qword [rsp + 0x58]
lea rax, [rdx - 7]
lea rcx, [rdx - 3]
lea r9, [rdx - 1]
lea r10d, [rsi + 3]
mov rsi, qword [rsp + 0x68]
lea rdi, [rsi + 8]
lea rdx, [r13 + 8]
mov qword [rsp + 0x50], rdx
mov edx, 3
xor ebp, ebp
jmp 0x1400e862f
inc rbp
mov r14, rdx
cmp rbp, r15
je 0x1400e8749
mov r12d, dword [rsp + rbp*4 + 0xb0]
lea r11, [r12 + r13]
mov ebx, dword [rdx + r11 - 3]
cmp ebx, dword [rsi + rdx - 3]
jne 0x1400e8620
cmp rax, rsi
jbe 0x1400e8670
mov rbx, qword [rsi]
xor rbx, qword [r11]
je 0x1400e868a
tzcnt r14, rbx
shr r14, 3
jmp 0x1400e8710
mov r14, rsi
cmp r14, rcx
jae 0x1400e86e0
mov ebx, dword [r11]
cmp ebx, dword [r14]
jne 0x1400e86e0
add r14, 4
add r11, 4
jmp 0x1400e86e0
mov r11, qword [rsp + 0x50]
add r11, r12
xor ebx, ebx
nop word cs:[rax + rax]
lea r14, [rdi + rbx]
cmp r14, rax
jae 0x1400e86cc
mov r14, qword [r14]
lea r13, [rbx + 8]
xor r14, qword [r11 + rbx]
mov rbx, r13
je 0x1400e86a0
tzcnt r14, r14
shr r14, 3
add r14, r13
mov r13, qword [rsp + 0x38]
jmp 0x1400e8710
add r11, rbx
mov r13, qword [rsp + 0x38]
cmp r14, rcx
jb 0x1400e8678
nop dword [rax]
cmp r14, r9
jae 0x1400e86f7
movzx ebx, word [r11]
cmp bx, word [r14]
jne 0x1400e86f7
add r14, 2
add r11, 2
cmp r14, qword [rsp + 0x58]
jae 0x1400e870d
movzx r11d, byte [r11]
xor ebx, ebx
cmp r11b, byte [r14]
sete bl
add r14, rbx
sub r14, rsi
cmp r14, rdx
jbe 0x1400e8620
mov edx, r10d
sub edx, r12d
mov r11, qword [rsp + 0x88]
mov qword [r11], rdx
lea r11, [rsi + r14]
mov rdx, r14
cmp r11, qword [rsp + 0x58]
jne 0x1400e8620
jmp 0x1400e8749
mov r14d, 3
mov rsi, qword [rsp + 0x68]
movzx eax, byte [rsp + 0xa8]
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
mov r11, qword [rsp + 0x48]
movdqu xmm1, xmmword [r11]
movdqu xmm2, xmmword [r11 + 0x10]
pcmpeqb xmm1, xmm0
pmovmskb ecx, xmm1
pcmpeqb xmm2, xmm0
pmovmskb eax, xmm2
shl eax, 0x10
or eax, ecx
je 0x1400e88b3
test r8d, r8d
je 0x1400e88b3
add r13, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x98]
lea r9, [rdx + rcx*4]
mov rcx, qword [rsp + 0xa0]
mov r10d, dword [rcx + 0x18]
mov rdx, qword [rcx]
mov rdi, qword [rcx + 8]
mov qword [rsp + 0x50], rdx
sub edx, edi
movzx ecx, byte [r11]
and ecx, 0x1f
ror eax, cl
xor ebp, ebp
nop word cs:[rax + rax]
tzcnt r11, rax
add r11d, ecx
and r11d, 0x1f
je 0x1400e880a
mov r11d, dword [r9 + r11*4]
cmp r11d, r10d
jb 0x1400e8818
prefetcht0 byte [rdi + r11]
mov dword [rsp + rbp*4 + 0xb0], r11d
inc rbp
dec r8d
lea r11, [rax - 1]
and rax, r11
je 0x1400e8818
test r8d, r8d
jne 0x1400e87e0
test rbp, rbp
je 0x1400e88b3
mov qword [rsp + 0x38], r13
lea r12, [rsi + 4]
mov r15d, dword [rsi]
mov rax, qword [rsp + 0x78]
add eax, edx
add eax, 3
mov dword [rsp + 0x48], eax
xor ebx, ebx
jmp 0x1400e8848
inc rbx
cmp rbp, rbx
je 0x1400e88b3
mov r13d, dword [rsp + rbx*4 + 0xb0]
cmp dword [rdi + r13], r15d
jne 0x1400e8840
lea rdx, [rdi + r13]
add rdx, 4
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x20], rax
mov rcx, r12
mov r8, qword [rsp + 0x58]
mov r9, qword [rsp + 0x50]
call fcn.1400b81d0
add rax, 4
cmp rax, r14
jbe 0x1400e8840
add r13d, dword [rsp + 0x80]
mov ecx, dword [rsp + 0x48]
sub ecx, r13d
mov rdx, qword [rsp + 0x88]
mov qword [rdx], rcx
lea rcx, [rsi + rax]
cmp rcx, qword [rsp + 0x58]
je 0x1400e88b0
mov r15d, dword [rsi]
mov r14, rax
jmp 0x1400e8840
mov r14, rax
mov rcx, qword [rsp + 0x1b0]
xor rcx, rsp
call fcn.14011fde0
mov rax, r14
add rsp, 0x1b8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret