Function at 0x1400e29e0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x198
mov qword [rsp + 0x88], r9
mov qword [rsp + 0x78], r8
mov rax, rcx
mov rcx, qword [0x14018e218]
xor rcx, rsp
mov qword [rsp + 0x190], rcx
mov r10, qword [rax + 0x70]
mov r11, qword [rax + 0x38]
mov r8, qword [rax + 8]
mov rdi, rdx
sub rdi, r8
movzx ecx, byte [rax + 0x100]
mov r9d, 1
shl r9d, cl
mov ecx, dword [rax + 0x1c]
mov esi, edi
sub esi, ecx
mov ebp, edi
sub ebp, r9d
cmp esi, r9d
cmovbe ebp, ecx
mov r15d, dword [rax + 0x34]
mov r9, qword [rax + 0x10]
mov qword [rsp + 0x68], r9
cmp dword [rax + 0x28], 0
mov r9d, 1
cmovne ebp, ecx
mov esi, dword [rax + 0x10c]
cmp esi, 6
mov ecx, 6
cmovb ecx, esi
shl r9d, cl
mov ecx, dword [rax + 0x18]
mov qword [rsp + 0x70], rcx
mov rsi, qword [rax + 0x60]
cmp dword [rax + 0x12c], 0
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0x50], r8
je 0x1400e2aba
movabs r14, 0xcf1bbcdcbf9b0000
imul r14, qword [rdx]
xor r14, rsi
mov cl, 0x38
sub cl, r15b
shr r14, cl
mov r13, rdi
mov dword [rax + 0x2c], edi
jmp 0x1400e2dbd
mov r12d, dword [rax + 0x2c]
mov ecx, edi
sub ecx, r12d
cmp ecx, 0x181
mov dword [rsp + 0x34], ebp
mov qword [rsp + 0x40], r10
mov dword [rsp + 0x38], r15d
mov qword [rsp + 0x48], rsi
mov r13, r11
mov rbp, r10
jb 0x1400e2c62
cmp r12d, 0xffffff9f
ja 0x1400e2bb2
lea rsi, [r12 + 0x60]
mov ecx, 0x38
sub ecx, r15d
nop
mov r14, qword [r8 + r12 + 8]
movabs rdx, 0xcf1bbcdcbf9b0000
imul r14, rdx
xor r14, qword [rax + 0x60]
shr r14, cl
mov r15, r14
shr r15, 2
and r15d, 0x3fffffc0
prefetcht0 byte [r10 + r15*4]
prefetcht0 byte [r10 + r15*4 + 0x40]
prefetcht0 byte [r11 + r15]
prefetcht0 byte [r11 + r15 + 0x20]
mov r15d, r12d
and r15d, 7
mov r13d, dword [rax + r15*4 + 0x40]
mov dword [rax + r15*4 + 0x40], r14d
mov r14, r13
shr r14, 2
and r14d, 0x3fffffc0
lea r15, [r10 + r14*4]
movzx edx, byte [r11 + r14]
dec dl
and dl, 0x3f
mov ebp, 0
mov ebx, 0x3f
cmove ebp, ebx
mov rbx, r10
lea r10, [r11 + r14]
movzx edx, dl
add rdx, rbp
mov byte [r11 + r14], dl
mov byte [r10 + rdx], r13b
mov r10, rbx
mov dword [r15 + rdx*4], r12d
inc r12
cmp rsi, r12
jne 0x1400e2b00
mov r13, qword [rax + 0x38]
mov rbp, qword [rax + 0x70]
mov rdx, qword [rsp + 0x60]
mov r15d, dword [rsp + 0x38]
lea r12d, [rdi - 0x20]
lea rcx, [rdx + 1]
lea rdx, [r8 + r12]
mov r10d, ecx
sub r10d, edx
inc r10d
cmp r10d, 8
mov esi, 8
cmovb esi, r10d
xor r10d, r10d
cmp rdx, rcx
cmovbe r10d, esi
lea r14d, [r10 + rdi]
add r14d, 0xffffffe0
cmp r14d, r12d
jbe 0x1400e2d51
mov rsi, qword [rax + 0x60]
mov ecx, 0x38
sub ecx, dword [rax + 0x34]
mov r14d, r14d
mov r15, r12
movabs rbx, 0xcf1bbcdcbf9b0000
nop dword [rax + rax]
mov rdx, qword [r8 + r15]
imul rdx, rbx
xor rdx, rsi
shr rdx, cl
mov r10, rdx
shr r10, 2
and r10d, 0x3fffffc0
prefetcht0 byte [rbp + r10*4]
prefetcht0 byte [rbp + r10*4 + 0x40]
prefetcht0 byte [r13 + r10]
prefetcht0 byte [r13 + r10 + 0x20]
mov r10d, r15d
and r10d, 7
mov dword [rax + r10*4 + 0x40], edx
inc r15
cmp r14, r15
jne 0x1400e2c10
mov r10, qword [rsp + 0x40]
mov r15d, dword [rsp + 0x38]
cmp r12d, edi
jae 0x1400e2d5f
mov ecx, 0x38
sub ecx, dword [rax + 0x34]
mov rsi, qword [rax + 8]
mov r12d, r12d
mov qword [rsp + 0x58], rdi
mov r14d, edi
nop word cs:[rax + rax]
mov rdx, qword [rsi + r12 + 8]
movabs r8, 0xcf1bbcdcbf9b0000
imul rdx, r8
xor rdx, qword [rax + 0x60]
shr rdx, cl
mov r10, rdx
shr r10, 2
and r10d, 0x3fffffc0
prefetcht0 byte [rbp + r10*4]
prefetcht0 byte [rbp + r10*4 + 0x40]
prefetcht0 byte [r13 + r10]
prefetcht0 byte [r13 + r10 + 0x20]
mov r10d, r12d
and r10d, 7
mov r8d, dword [rax + r10*4 + 0x40]
mov dword [rax + r10*4 + 0x40], edx
mov rdx, r8
shr rdx, 2
and edx, 0x3fffffc0
lea r10, [rdx*4]
add r10, rbp
movzx r15d, byte [r13 + rdx]
dec r15b
and r15b, 0x3f
mov ebx, 0
mov edi, 0x3f
cmove ebx, edi
lea rdi, [rdx + r13]
movzx r15d, r15b
add r15, rbx
mov byte [r13 + rdx], r15b
mov byte [rdi + r15], r8b
mov dword [r10 + r15*4], r12d
inc r12
cmp r14, r12
jne 0x1400e2c90
mov r8, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
mov ebp, dword [rsp + 0x34]
mov r10, qword [rsp + 0x40]
mov r15d, dword [rsp + 0x38]
jmp 0x1400e2d66
mov r10, qword [rsp + 0x40]
cmp r12d, edi
jb 0x1400e2c6b
mov r14d, edi
mov ebp, dword [rsp + 0x34]
movabs rdx, 0xcf1bbcdcbf9b0000
mov rcx, qword [rsp + 0x48]
mov dword [rax + 0x2c], edi
imul rdx, qword [r8 + r14 + 8]
xor rdx, rcx
mov cl, 0x38
sub cl, r15b
shr rdx, cl
mov rcx, rdx
shr rcx, 2
and ecx, 0x3fffffc0
prefetcht0 byte [r10 + rcx*4]
prefetcht0 byte [r10 + rcx*4 + 0x40]
prefetcht0 byte [r11 + rcx]
prefetcht0 byte [r11 + rcx + 0x20]
mov r13, rdi
mov ecx, edi
and ecx, 7
mov r14d, dword [rax + rcx*4 + 0x40]
mov dword [rax + rcx*4 + 0x40], edx
add dword [rax + 0x68], r14d
mov edi, r14d
shr edi, 2
and edi, 0xffffffc0
lea rsi, [r11 + rdi]
movzx ecx, byte [r11 + rdi]
movd xmm0, r14d
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
movdqu xmm1, xmmword [r11 + rdi]
movdqu xmm2, xmmword [r11 + rdi + 0x10]
movdqu xmm3, xmmword [r11 + rdi + 0x20]
movdqu xmm4, xmmword [r11 + rdi + 0x30]
pcmpeqb xmm1, xmm0
pmovmskb r15d, xmm1
pcmpeqb xmm2, xmm0
pmovmskb edx, xmm2
pcmpeqb xmm3, xmm0
pmovmskb r8d, xmm3
pcmpeqb xmm4, xmm0
pmovmskb r11d, xmm4
lea r10, [r10 + rdi*4]
shl r11, 0x30
shl r8, 0x20
or r8, r11
shl rdx, 0x10
or rdx, r8
xor r11d, r11d
or r15, rdx
je 0x1400e2e98
ror r15, cl
xor edi, edi
mov r8, qword [rsp + 0x50]
nop dword [rax]
tzcnt r12, r15
add r12d, ecx
and r12d, 0x3f
je 0x1400e2e88
mov r12d, dword [r10 + r12*4]
cmp r12d, ebp
jb 0x1400e2e9f
cmp r12d, dword [rsp + 0x70]
mov rdx, r8
cmovb rdx, qword [rsp + 0x68]
prefetcht0 byte [rdx + r12]
mov dword [rsp + rdi*4 + 0x90], r12d
inc rdi
dec r9d
lea rdx, [r15 - 1]
and r15, rdx
je 0x1400e2e9f
test r9d, r9d
jne 0x1400e2e50
jmp 0x1400e2e9f
xor edi, edi
mov r8, qword [rsp + 0x50]
dec ecx
and ecx, 0x3f
mov edx, 0x3f
cmove r11d, edx
add r11, rcx
mov byte [rsi], r11b
mov byte [rsi + r11], r14b
mov ecx, dword [rax + 0x2c]
lea edx, [rcx + 1]
mov dword [rax + 0x2c], edx
mov dword [r10 + r11*4], ecx
test rdi, rdi
je 0x1400e309f
mov rbx, qword [rsp + 0x70]
lea rcx, [r8 + rbx]
mov qword [rsp + 0x40], rcx
mov r11, qword [rsp + 0x68]
add rbx, r11
mov rax, r8
mov r8, qword [rsp + 0x78]
lea r15, [r8 - 7]
lea rcx, [r8 - 3]
mov qword [rsp + 0x48], rcx
lea rcx, [r8 - 1]
mov qword [rsp + 0x58], rcx
mov r10, qword [rsp + 0x60]
lea rcx, [r10 + 4]
mov qword [rsp + 0x38], rcx
lea ecx, [r13 + 3]
mov dword [rsp + 0x34], ecx
lea rsi, [r10 + 8]
add rax, 8
mov qword [rsp + 0x80], rax
mov r13d, 3
xor ebp, ebp
jmp 0x1400e2f4f
inc rbp
mov r12, r13
cmp rbp, rdi
je 0x1400e30a5
mov r14d, dword [rsp + rbp*4 + 0x90]
cmp r14d, dword [rsp + 0x70]
jae 0x1400e2fb0
mov eax, dword [r11 + r14]
cmp eax, dword [r10]
jne 0x1400e2f40
lea rdx, [r11 + r14]
add rdx, 4
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x20], rax
mov rcx, qword [rsp + 0x38]
mov r9, rbx
call fcn.1400b81d0
mov r11, qword [rsp + 0x68]
mov r10, qword [rsp + 0x60]
mov r8, qword [rsp + 0x78]
mov r12, rax
add r12, 4
jmp 0x1400e3072
mov rax, qword [rsp + 0x50]
add rax, r14
mov ecx, dword [r13 + rax - 3]
cmp ecx, dword [r10 + r13 - 3]
jne 0x1400e2f40
cmp r15, r10
jbe 0x1400e2fe3
mov rcx, qword [r10]
xor rcx, qword [rax]
je 0x1400e2fff
tzcnt r12, rcx
shr r12, 3
jmp 0x1400e3072
mov r12, r10
cmp r12, qword [rsp + 0x48]
jae 0x1400e3042
mov ecx, dword [rax]
cmp ecx, dword [r12]
jne 0x1400e3042
add r12, 4
add rax, 4
jmp 0x1400e3042
mov rax, qword [rsp + 0x80]
add rax, r14
xor ecx, ecx
nop dword [rax]
lea r12, [rsi + rcx]
cmp r12, r15
jae 0x1400e3038
mov r9, qword [r12]
lea rdx, [rcx + 8]
xor r9, qword [rax + rcx]
mov rcx, rdx
je 0x1400e3010
tzcnt r12, r9
shr r12, 3
add r12, rdx
jmp 0x1400e3072
add rax, rcx
cmp r12, qword [rsp + 0x48]
jb 0x1400e2fed
cmp r12, qword [rsp + 0x58]
jae 0x1400e305b
movzx ecx, word [rax]
cmp cx, word [r12]
jne 0x1400e305b
add r12, 2
add rax, 2
cmp r12, r8
jae 0x1400e306f
movzx eax, byte [rax]
xor ecx, ecx
cmp al, byte [r12]
sete cl
add r12, rcx
sub r12, r10
cmp r12, r13
jbe 0x1400e2f40
mov eax, dword [rsp + 0x34]
sub eax, r14d
mov rcx, qword [rsp + 0x88]
mov qword [rcx], rax
lea rax, [r10 + r12]
mov r13, r12
cmp rax, r8
jne 0x1400e2f40
jmp 0x1400e30a5
mov r12d, 3
mov rcx, qword [rsp + 0x190]
xor rcx, rsp
call fcn.14011fde0
mov rax, r12
add rsp, 0x198
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret