Function at 0x1400e5e80
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 qword [rsp + 0x90], r9
mov r13, rdx
mov rax, rcx
mov rcx, qword [0x14018e218]
xor rcx, rsp
mov qword [rsp + 0x1b0], rcx
mov r14, qword [rax + 8]
mov r10, rdx
sub r10, r14
movzx ecx, byte [rax + 0x100]
mov edx, 1
shl edx, cl
mov ecx, dword [rax + 0x1c]
mov r9d, r10d
sub r9d, ecx
mov r11d, r10d
sub r11d, edx
cmp r9d, edx
cmovbe r11d, ecx
mov rdx, qword [rax + 0x70]
mov qword [rsp + 0x50], rdx
mov rdi, qword [rax + 0x38]
cmp dword [rax + 0x28], 0
mov ebx, 1
cmovne r11d, ecx
mov dword [rsp + 0x58], r11d
mov edx, dword [rax + 0x10c]
cmp edx, 4
mov ecx, 4
cmovb ecx, edx
shl ebx, cl
mov esi, dword [rax + 0x34]
mov r9, qword [rax + 0xf8]
imul edx, dword [r13], 0x9e3779b1
mov cl, 0x18
sub cl, byte [r9 + 0x34]
mov r11d, edx
shr r11d, cl
mov dword [rsp + 0x7c], r11d
mov r12d, r11d
shr r12d, 4
and r12d, 0xfffffff0
mov ecx, dword [rax + 0x18]
mov qword [rsp + 0x88], rcx
mov r11, qword [rax + 0x60]
mov rbp, qword [r9 + 0x38]
mov qword [rsp + 0xa8], r9
mov r9, qword [r9 + 0x70]
prefetcht0 byte [r9 + r12*4]
prefetcht0 byte [rbp + r12]
cmp dword [rax + 0x12c], 0
mov cl, 0x18
mov qword [rsp + 0x38], r8
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x60], r14
mov qword [rsp + 0x70], r10
mov qword [rsp + 0x68], r12
mov qword [rsp + 0xa0], r9
je 0x1400e5fb0
xor edx, r11d
sub cl, sil
shr edx, cl
mov dword [rax + 0x2c], r10d
mov r11, rdi
mov rdi, qword [rsp + 0x50]
jmp 0x1400e6300
mov r12d, dword [rax + 0x2c]
mov ecx, r10d
sub ecx, r12d
cmp ecx, 0x181
mov qword [rsp + 0x48], rbp
mov qword [rsp + 0x98], rdi
mov dword [rsp + 0x34], esi
mov qword [rsp + 0x80], r11
jb 0x1400e60fb
mov rbp, rdi
mov r15, qword [rsp + 0x50]
cmp r12d, 0xffffff9f
ja 0x1400e609d
lea rdx, [r12 + 0x60]
mov ecx, 0x18
sub ecx, dword [rsp + 0x34]
mov r8, qword [rsp + 0x50]
mov r9, rdi
nop word [rax + rax]
imul esi, dword [r14 + r12 + 8], 0x9e3779b1
xor esi, dword [rax + 0x60]
shr esi, cl
mov edi, esi
shr edi, 4
and edi, 0xfffffff0
prefetcht0 byte [r8 + rdi*4]
prefetcht0 byte [r9 + rdi]
mov edi, r12d
and edi, 7
mov r15d, dword [rax + rdi*4 + 0x40]
mov dword [rax + rdi*4 + 0x40], esi
mov rsi, r15
shr rsi, 4
and esi, 0xffffff0
lea rdi, [r8 + rsi*4]
movzx ebp, byte [r9 + rsi]
dec bpl
and bpl, 0xf
mov r13d, 0
mov r11d, 0xf
cmove r13d, r11d
lea r11, [r9 + rsi]
movzx ebp, bpl
add rbp, r13
mov byte [r9 + rsi], bpl
mov byte [r11 + rbp], r15b
mov dword [rdi + rbp*4], r12d
inc r12
cmp rdx, r12
jne 0x1400e6010
mov rbp, qword [rax + 0x38]
mov r15, qword [rax + 0x70]
mov r8, qword [rsp + 0x38]
mov r13, qword [rsp + 0x40]
lea r12d, [r10 - 0x20]
lea rcx, [r13 + 1]
lea rdx, [r14 + r12]
mov r11d, ecx
sub r11d, edx
inc r11d
cmp r11d, 8
mov esi, 8
cmovb esi, r11d
xor r11d, r11d
cmp rdx, rcx
cmovbe r11d, esi
lea esi, [r11 + r10]
add esi, 0xffffffe0
cmp esi, r12d
jbe 0x1400e61e1
mov edx, dword [rax + 0x60]
mov ecx, 0x18
sub ecx, dword [rax + 0x34]
mov r11d, esi
sub esi, r12d
mov rdi, r12
not rdi
test sil, 1
jne 0x1400e611e
mov rsi, r12
jmp 0x1400e615b
mov rbp, rdi
mov r15, qword [rsp + 0x50]
cmp r12d, r10d
jb 0x1400e61ee
mov edx, r10d
mov rbp, qword [rsp + 0x48]
mov r12, qword [rsp + 0x68]
jmp 0x1400e62b2
imul esi, dword [r14 + r12], 0x9e3779b1
xor esi, edx
shr esi, cl
mov r13d, esi
shr r13d, 4
and r13d, 0xfffffff0
prefetcht0 byte [r15 + r13*4]
prefetcht0 byte [rbp + r13]
mov r13d, r12d
and r13d, 7
mov dword [rax + r13*4 + 0x40], esi
mov r13, qword [rsp + 0x40]
mov r8, qword [rsp + 0x38]
lea rsi, [r12 + 1]
add rdi, r11
je 0x1400e61e1
mov r8, r11
nop word [rax + rax]
imul edi, dword [r14 + rsi], 0x9e3779b1
xor edi, edx
shr edi, cl
mov r13d, edi
shr r13d, 4
and r13d, 0xfffffff0
prefetcht0 byte [r15 + r13*4]
prefetcht0 byte [rbp + r13]
mov r13d, esi
and r13d, 7
mov dword [rax + r13*4 + 0x40], edi
lea edi, [rsi + 1]
imul r13d, dword [r14 + rsi + 1], 0x9e3779b1
xor r13d, edx
shr r13d, cl
mov r11d, r13d
shr r11d, 4
and r11d, 0xfffffff0
prefetcht0 byte [r15 + r11*4]
prefetcht0 byte [rbp + r11]
and edi, 7
mov dword [rax + rdi*4 + 0x40], r13d
add rsi, 2
cmp r8, rsi
jne 0x1400e6170
mov r8, qword [rsp + 0x38]
mov r13, qword [rsp + 0x40]
mov esi, dword [rsp + 0x34]
cmp r12d, r10d
jae 0x1400e610c
mov ecx, 0x18
sub ecx, dword [rax + 0x34]
mov r11, qword [rax + 8]
mov esi, r12d
mov edx, r10d
mov r8d, 0xf
nop word cs:[rax + rax]
imul r12d, dword [r11 + rsi + 8], 0x9e3779b1
xor r12d, dword [rax + 0x60]
shr r12d, cl
mov r13d, r12d
shr r13d, 4
and r13d, 0xfffffff0
prefetcht0 byte [r15 + r13*4]
prefetcht0 byte [rbp + r13]
mov r13d, esi
and r13d, 7
mov r10d, dword [rax + r13*4 + 0x40]
mov dword [rax + r13*4 + 0x40], r12d
mov r12, r10
shr r12, 4
and r12d, 0xffffff0
lea r13, [r15 + r12*4]
movzx r14d, byte [rbp + r12]
dec r14b
and r14b, 0xf
mov edi, 0
cmove edi, r8d
lea r9, [r12 + rbp]
movzx r14d, r14b
add r14, rdi
mov byte [rbp + r12], r14b
mov byte [r9 + r14], r10b
mov dword [r13 + r14*4], esi
inc rsi
cmp rdx, rsi
jne 0x1400e6210
mov r8, qword [rsp + 0x38]
mov r13, qword [rsp + 0x40]
mov r14, qword [rsp + 0x60]
mov r10, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x48]
mov r12, qword [rsp + 0x68]
mov esi, dword [rsp + 0x34]
mov rcx, qword [rsp + 0x80]
mov dword [rax + 0x2c], r10d
imul r9d, dword [r14 + rdx + 8], 0x9e3779b1
xor r9d, ecx
mov cl, 0x18
sub cl, sil
shr r9d, cl
mov ecx, r9d
shr ecx, 4
and ecx, 0xfffffff0
mov rdi, qword [rsp + 0x50]
prefetcht0 byte [rdi + rcx*4]
mov r11, qword [rsp + 0x98]
prefetcht0 byte [r11 + rcx]
mov ecx, r10d
and ecx, 7
mov edx, dword [rax + rcx*4 + 0x40]
mov dword [rax + rcx*4 + 0x40], r9d
add dword [rax + 0x68], edx
mov r9d, edx
shr r9d, 4
and r9d, 0xfffffff0
lea rsi, [r11 + r9]
movzx ecx, byte [r11 + r9]
movd xmm0, edx
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
movdqu xmm1, xmmword [r11 + r9]
pcmpeqb xmm1, xmm0
pmovmskb r11d, xmm1
lea r9, [rdi + r9*4]
xor r10d, r10d
test r11d, r11d
je 0x1400e6387
ror r11w, cl
movzx r11d, r11w
xor r15d, r15d
nop
tzcnt rdi, r11
add edi, ecx
and edi, 0xf
je 0x1400e6378
mov edi, dword [r9 + rdi*4]
cmp edi, dword [rsp + 0x58]
jb 0x1400e638a
prefetcht0 byte [r14 + rdi]
mov dword [rsp + r15*4 + 0xb0], edi
inc r15
dec ebx
lea rdi, [r11 - 1]
and r11, rdi
je 0x1400e638a
test ebx, ebx
jne 0x1400e6350
jmp 0x1400e638a
xor r15d, r15d
add rbp, r12
dec ecx
and ecx, 0xf
mov r11d, 0xf
cmove r10d, r11d
add r10, rcx
mov byte [rsi], r10b
mov byte [rsi + r10], dl
mov ecx, dword [rax + 0x2c]
lea edx, [rcx + 1]
mov dword [rax + 0x2c], edx
mov dword [r9 + r10*4], ecx
test r15, r15
mov qword [rsp + 0x48], rbp
je 0x1400e651a
lea rax, [r8 - 7]
lea rcx, [r8 - 3]
lea r9, [r8 - 1]
mov rdx, qword [rsp + 0x70]
lea r10d, [rdx + 3]
lea r12, [r13 + 8]
lea rdx, [r14 + 8]
mov qword [rsp + 0x58], rdx
mov edx, 3
xor esi, esi
jmp 0x1400e63ff
inc rsi
mov r14, rdx
cmp rsi, r15
je 0x1400e6520
mov ebp, dword [rsp + rsi*4 + 0xb0]
mov r11, qword [rsp + 0x60]
add r11, rbp
mov edi, dword [rdx + r11 - 3]
cmp edi, dword [r13 + rdx - 3]
jne 0x1400e63f0
cmp rax, r13
jbe 0x1400e6440
mov rdi, qword [r13]
xor rdi, qword [r11]
je 0x1400e645a
tzcnt r14, rdi
shr r14, 3
jmp 0x1400e64ef
mov r14, r13
cmp r14, rcx
jae 0x1400e64c0
mov edi, dword [r11]
cmp edi, dword [r14]
jne 0x1400e64c0
add r14, 4
add r11, 4
jmp 0x1400e64c0
mov r8, qword [rsp + 0x58]
lea r11, [r8 + rbp]
xor edi, edi
nop word cs:[rax + rax]
lea r14, [r12 + rdi]
cmp r14, rax
jae 0x1400e64a1
mov r14, qword [r14]
lea r13, [rdi + 8]
xor r14, qword [r11 + rdi]
mov rdi, r13
je 0x1400e6470
tzcnt r14, r14
shr r14, 3
add r14, r13
mov r8, qword [rsp + 0x38]
mov r13, qword [rsp + 0x40]
jmp 0x1400e64ef
add r11, rdi
mov r8, qword [rsp + 0x38]
mov r13, qword [rsp + 0x40]
cmp r14, rcx
jb 0x1400e6448
nop word cs:[rax + rax]
cmp r14, r9
jae 0x1400e64d7
movzx edi, word [r11]
cmp di, word [r14]
jne 0x1400e64d7
add r14, 2
add r11, 2
cmp r14, r8
jae 0x1400e64ec
movzx r11d, byte [r11]
xor edi, edi
cmp r11b, byte [r14]
sete dil
add r14, rdi
sub r14, r13
cmp r14, rdx
jbe 0x1400e63f0
mov edx, r10d
sub edx, ebp
mov r11, qword [rsp + 0x90]
mov qword [r11], rdx
lea r11, [r14 + r13]
mov rdx, r14
cmp r11, r8
jne 0x1400e63f0
jmp 0x1400e6520
mov r14d, 3
movzx eax, byte [rsp + 0x7c]
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
mov rcx, qword [rsp + 0x48]
movdqu xmm1, xmmword [rcx]
pcmpeqb xmm1, xmm0
pmovmskb r10d, xmm1
test r10d, r10d
je 0x1400e6693
test ebx, ebx
je 0x1400e6693
mov rax, qword [rsp + 0x88]
add qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x68]
mov rdx, qword [rsp + 0xa0]
lea rdx, [rdx + rax*4]
mov rax, qword [rsp + 0xa8]
mov r9d, dword [rax + 0x18]
mov r8, qword [rax]
mov rsi, qword [rax + 8]
movzx ecx, byte [rcx]
ror r10w, cl
mov qword [rsp + 0x58], r8
mov eax, r8d
sub eax, esi
movzx r10d, r10w
xor ebp, ebp
nop word cs:[rax + rax]
tzcnt r11, r10
add r11d, ecx
and r11d, 0xf
je 0x1400e65d9
mov r11d, dword [rdx + r11*4]
cmp r11d, r9d
jb 0x1400e65e6
prefetcht0 byte [rsi + r11]
mov dword [rsp + rbp*4 + 0xb0], r11d
inc rbp
dec ebx
lea r11, [r10 - 1]
and r10, r11
je 0x1400e65e6
test ebx, ebx
jne 0x1400e65b0
test rbp, rbp
je 0x1400e6693
lea r12, [r13 + 4]
mov r15d, dword [r13]
mov rcx, qword [rsp + 0x70]
add eax, ecx
add eax, 3
mov dword [rsp + 0x48], eax
xor edi, edi
mov rbx, qword [rsp + 0x88]
jmp 0x1400e6628
inc rdi
cmp rbp, rdi
je 0x1400e6693
mov r13d, dword [rsp + rdi*4 + 0xb0]
cmp dword [rsi + r13], r15d
jne 0x1400e6620
lea rdx, [rsi + r13]
add rdx, 4
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x20], rax
mov rcx, r12
mov r8, qword [rsp + 0x38]
mov r9, qword [rsp + 0x58]
call fcn.1400b81d0
add rax, 4
cmp rax, r14
jbe 0x1400e6620
add r13d, ebx
mov ecx, dword [rsp + 0x48]
sub ecx, r13d
mov rdx, qword [rsp + 0x90]
mov qword [rdx], rcx
mov rdx, qword [rsp + 0x40]
lea rcx, [rdx + rax]
cmp rcx, qword [rsp + 0x38]
je 0x1400e6690
mov r15d, dword [rdx]
mov r14, rax
jmp 0x1400e6620
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