Function at 0x1400ec5d0
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 rsi, rdx
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 edx, 1
shl edx, cl
mov ecx, dword [rax + 0x1c]
mov r11d, r12d
sub r11d, ecx
mov r10d, r12d
sub r10d, edx
cmp r11d, edx
cmovbe r10d, ecx
mov qword [rsp + 0x90], r9
mov qword [rsp + 0x50], r8
cmp dword [rax + 0x28], 0
cmovne r10d, ecx
mov dword [rsp + 0x58], r10d
mov r8d, dword [rax + 0x10c]
cmp r8d, 5
mov ecx, 5
cmovb ecx, r8d
mov ebp, 1
shl ebp, cl
mov r10, qword [rax + 0x70]
mov rdx, qword [rax + 0xf8]
mov qword [rsp + 0x78], rdx
imul edi, dword [rsi], 0x9e3779b1
mov cl, 0x22
sub cl, byte [rdx + 0x108]
mov ebx, edi
shr ebx, cl
mov r9d, 1
mov qword [rsp + 0x70], rbx
shl rbx, 4
lea ecx, [r8 - 5]
shl r9d, cl
mov rcx, qword [rax + 0x38]
mov qword [rsp + 0x30], rcx
mov r15d, dword [rax + 0x34]
mov r11d, dword [rax + 0x18]
mov r14, qword [rax + 0x60]
mov rcx, qword [rdx + 0x70]
prefetcht0 byte [rcx + rbx]
xor edx, edx
cmp r8d, 6
cmovae edx, r9d
cmp dword [rax + 0x12c], 0
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x60], r12
mov qword [rsp + 0x88], r11
mov dword [rsp + 0x80], edx
je 0x1400ec6f7
xor edi, r14d
mov cl, 0x18
sub cl, r15b
shr edi, cl
mov dword [rax + 0x2c], r12d
mov r9, qword [rsp + 0x30]
jmp 0x1400eca69
mov edi, dword [rax + 0x2c]
mov ecx, r12d
sub ecx, edi
cmp ecx, 0x181
mov qword [rsp + 0x48], r10
mov qword [rsp + 0x68], r14
jb 0x1400ec840
mov r12, qword [rsp + 0x30]
mov r9, r10
cmp edi, 0xffffff9f
mov r11d, r15d
ja 0x1400ec7de
lea r8, [rdi + 0x60]
mov ecx, 0x18
mov dword [rsp + 0x44], r11d
sub ecx, r11d
mov r11, qword [rsp + 0x30]
nop
imul r14d, dword [r13 + rdi + 8], 0x9e3779b1
xor r14d, dword [rax + 0x60]
shr r14d, cl
mov r15d, r14d
shr r15d, 3
and r15d, 0xffffffe0
prefetcht0 byte [r10 + r15*4]
prefetcht0 byte [r10 + r15*4 + 0x40]
prefetcht0 byte [r11 + r15]
mov r15d, edi
and r15d, 7
mov r12d, dword [rax + r15*4 + 0x40]
mov dword [rax + r15*4 + 0x40], r14d
mov r14, r12
shr r14, 3
and r14d, 0x1fffffe0
lea r15, [r10 + r14*4]
movzx r13d, byte [r11 + r14]
dec r13b
and r13b, 0x1f
mov r9d, 0
mov edx, 0x1f
cmove r9d, edx
lea rdx, [r11 + r14]
movzx r13d, r13b
add r13, r9
mov byte [r11 + r14], r13b
mov byte [rdx + r13], r12b
mov dword [r15 + r13*4], edi
mov r13, qword [rsp + 0x38]
inc rdi
cmp r8, rdi
jne 0x1400ec740
mov r12, qword [rax + 0x38]
mov r9, qword [rax + 0x70]
mov r11d, dword [rsp + 0x44]
mov r10, qword [rsp + 0x60]
lea edi, [r10 - 0x20]
lea rcx, [rsi + 1]
lea rdx, [rdi + r13]
mov r8d, ecx
sub r8d, edx
inc r8d
cmp r8d, 8
mov r14d, 8
cmovb r14d, r8d
xor r8d, r8d
cmp rdx, rcx
cmovbe r8d, r14d
lea r13d, [r8 + r10]
add r13d, 0xffffffe0
cmp r13d, edi
jbe 0x1400ec850
mov r8d, dword [rax + 0x60]
mov ecx, 0x18
sub ecx, dword [rax + 0x34]
mov r15d, r13d
sub r13d, edi
mov r14, rdi
not r14
test r13b, 1
jne 0x1400ec85f
mov r13, rdi
jmp 0x1400ec89b
mov r12, qword [rsp + 0x30]
mov r9, r10
mov r11d, r15d
jmp 0x1400ec945
mov r13, qword [rsp + 0x38]
mov r10, qword [rsp + 0x48]
jmp 0x1400ec940
mov rdx, qword [rsp + 0x38]
imul edx, dword [rdx + rdi], 0x9e3779b1
xor edx, r8d
shr edx, cl
mov r13d, edx
shr r13d, 3
and r13d, 0xffffffe0
prefetcht0 byte [r9 + r13*4]
prefetcht0 byte [r9 + r13*4 + 0x40]
prefetcht0 byte [r12 + r13]
mov r13d, edi
and r13d, 7
mov dword [rax + r13*4 + 0x40], edx
lea r13, [rdi + 1]
mov r10, qword [rsp + 0x48]
add r14, r15
jne 0x1400ec8af
mov r13, qword [rsp + 0x38]
jmp 0x1400ec940
mov dword [rsp + 0x44], r11d
mov r10, qword [rsp + 0x38]
mov r11, r15
nop dword [rax]
imul edx, dword [r10 + r13], 0x9e3779b1
xor edx, r8d
shr edx, cl
mov r14d, edx
shr r14d, 3
and r14d, 0xffffffe0
prefetcht0 byte [r9 + r14*4]
prefetcht0 byte [r9 + r14*4 + 0x40]
prefetcht0 byte [r12 + r14]
mov r14d, r13d
and r14d, 7
mov dword [rax + r14*4 + 0x40], edx
imul edx, dword [r10 + r13 + 1], 0x9e3779b1
xor edx, r8d
shr edx, cl
lea r14d, [r13 + 1]
mov r15d, edx
shr r15d, 3
and r15d, 0xffffffe0
prefetcht0 byte [r9 + r15*4]
prefetcht0 byte [r9 + r15*4 + 0x40]
prefetcht0 byte [r12 + r15]
and r14d, 7
mov dword [rax + r14*4 + 0x40], edx
add r13, 2
cmp r11, r13
jne 0x1400ec8c0
mov r13, r10
mov r10, qword [rsp + 0x48]
mov r11d, dword [rsp + 0x44]
mov r14, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x60]
cmp edi, edx
jae 0x1400eca21
mov dword [rsp + 0x44], r11d
mov qword [rsp + 0x98], rsi
mov ecx, 0x18
sub ecx, dword [rax + 0x34]
mov r15, qword [rax + 8]
mov edi, edi
mov r8d, edx
imul edx, dword [r15 + rdi + 8], 0x9e3779b1
xor edx, dword [rax + 0x60]
shr edx, cl
mov r14d, edx
shr r14d, 3
and r14d, 0xffffffe0
prefetcht0 byte [r9 + r14*4]
prefetcht0 byte [r9 + r14*4 + 0x40]
prefetcht0 byte [r12 + r14]
mov r14d, edi
and r14d, 7
mov r10d, dword [rax + r14*4 + 0x40]
mov dword [rax + r14*4 + 0x40], edx
mov rdx, r10
shr rdx, 3
and edx, 0x1fffffe0
lea r14, [r9 + rdx*4]
movzx r13d, byte [r12 + rdx]
dec r13b
and r13b, 0x1f
mov r11d, 0
mov esi, 0x1f
cmove r11d, esi
lea rsi, [r12 + rdx]
movzx r13d, r13b
add r13, r11
mov byte [r12 + rdx], r13b
mov byte [rsi + r13], r10b
mov dword [r14 + r13*4], edi
inc rdi
cmp r8, rdi
jne 0x1400ec970
mov rsi, qword [rsp + 0x98]
mov r13, qword [rsp + 0x38]
mov r12, qword [rsp + 0x60]
mov r10, qword [rsp + 0x48]
mov r9, qword [rsp + 0x30]
mov r11d, dword [rsp + 0x44]
mov r14, qword [rsp + 0x68]
jmp 0x1400eca2c
mov r8d, edx
mov r12, rdx
mov r9, qword [rsp + 0x30]
mov dword [rax + 0x2c], r12d
imul edx, dword [r13 + r8 + 8], 0x9e3779b1
xor edx, r14d
mov cl, 0x18
sub cl, r11b
shr edx, cl
mov ecx, edx
shr ecx, 3
and ecx, 0xffffffe0
prefetcht0 byte [r10 + rcx*4]
prefetcht0 byte [r10 + rcx*4 + 0x40]
prefetcht0 byte [r9 + rcx]
mov ecx, r12d
and ecx, 7
mov edi, dword [rax + rcx*4 + 0x40]
mov dword [rax + rcx*4 + 0x40], edx
add dword [rax + 0x68], edi
mov edx, edi
shr edx, 3
and edx, 0xffffffe0
lea r8, [r9 + rdx]
movzx ecx, byte [r9 + rdx]
movd xmm0, edi
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
movdqu xmm1, xmmword [r9 + rdx]
movdqu xmm2, xmmword [r9 + rdx + 0x10]
pcmpeqb xmm1, xmm0
pmovmskb r9d, xmm1
pcmpeqb xmm2, xmm0
pmovmskb r14d, xmm2
lea rdx, [r10 + rdx*4]
shl r14d, 0x10
xor r11d, r11d
or r14d, r9d
je 0x1400ecb0b
ror r14d, cl
xor r9d, r9d
nop word cs:[rax + rax]
tzcnt r15, r14
add r15d, ecx
and r15d, 0x1f
je 0x1400ecafc
mov r15d, dword [rdx + r15*4]
cmp r15d, dword [rsp + 0x58]
jb 0x1400ecb0e
prefetcht0 byte [r13 + r15]
mov dword [rsp + r9*4 + 0xa0], r15d
inc r9
dec ebp
lea r10, [r14 - 1]
and r14, r10
je 0x1400ecb0e
test ebp, ebp
jne 0x1400ecad0
jmp 0x1400ecb0e
xor r9d, r9d
shl qword [rsp + 0x70], 2
dec ecx
and ecx, 0x1f
mov r10d, 0x1f
cmove r11d, r10d
add r11, rcx
mov byte [r8], r11b
mov byte [r8 + r11], dil
mov ecx, dword [rax + 0x2c]
lea r8d, [rcx + 1]
mov dword [rax + 0x2c], r8d
mov dword [rdx + r11*4], ecx
test r9, r9
je 0x1400ecca7
mov rdx, qword [rsp + 0x50]
lea rax, [rdx - 7]
lea rcx, [rdx - 3]
dec rdx
lea r8d, [r12 + 3]
mov dword [rsp + 0x58], r8d
lea r11, [rsi + 8]
lea r8, [r13 + 8]
mov qword [rsp + 0x30], r8
mov r12d, 3
xor r15d, r15d
jmp 0x1400ecb8f
inc r15
mov r14, r12
cmp r15, r9
je 0x1400eccad
mov r8d, dword [rsp + r15*4 + 0xa0]
lea rdi, [r8 + r13]
mov r10d, dword [r12 + rdi - 3]
cmp r10d, dword [rsi + r12 - 3]
jne 0x1400ecb80
cmp rax, rsi
jbe 0x1400ecbd0
mov r10, qword [rsi]
xor r10, qword [rdi]
je 0x1400ecbea
tzcnt r14, r10
shr r14, 3
jmp 0x1400ecc77
mov r14, rsi
cmp r14, rcx
jae 0x1400ecc40
mov r10d, dword [rdi]
cmp r10d, dword [r14]
jne 0x1400ecc40
add r14, 4
add rdi, 4
jmp 0x1400ecc40
mov r10, qword [rsp + 0x30]
lea rdi, [r10 + r8]
xor r13d, r13d
nop word cs:[rax + rax]
lea r14, [r11 + r13]
cmp r14, rax
jae 0x1400ecc2c
mov r14, qword [r14]
lea r10, [r13 + 8]
xor r14, qword [rdi + r13]
mov r13, r10
je 0x1400ecc00
tzcnt r14, r14
shr r14, 3
add r14, r10
mov r13, qword [rsp + 0x38]
jmp 0x1400ecc77
add rdi, r13
mov r13, qword [rsp + 0x38]
cmp r14, rcx
jb 0x1400ecbd8
nop dword [rax]
cmp r14, rdx
jae 0x1400ecc57
movzx r10d, word [rdi]
cmp r10w, word [r14]
jne 0x1400ecc57
add r14, 2
add rdi, 2
cmp r14, qword [rsp + 0x50]
jae 0x1400ecc74
movzx r10d, byte [rdi]
mov rdi, rsi
xor esi, esi
cmp r10b, byte [r14]
sete sil
add r14, rsi
mov rsi, rdi
sub r14, rsi
cmp r14, r12
jbe 0x1400ecb80
mov r10d, dword [rsp + 0x58]
sub r10d, r8d
mov r8, qword [rsp + 0x90]
mov qword [r8], r10
lea r8, [rsi + r14]
mov r12, r14
cmp r8, qword [rsp + 0x50]
jne 0x1400ecb80
jmp 0x1400eccad
mov r14d, 3
mov rax, qword [rsp + 0x88]
add r13, rax
add ebp, dword [rsp + 0x80]
mov r8, qword [rsp + 0x78]
mov rcx, qword [r8]
mov rdi, qword [r8 + 8]
mov qword [rsp + 0x58], rcx
mov r12d, ecx
sub r12d, edi
sub r12d, eax
mov rax, qword [r8 + 0x70]
mov r9, qword [rsp + 0x70]
lea rcx, [r9*4]
mov edx, dword [rax + r9*4]
prefetcht0 byte [rdi + rdx]
mov rdx, rcx
or rdx, 4
mov edx, dword [rax + rdx]
prefetcht0 byte [rdi + rdx]
or rcx, 8
mov ecx, dword [rax + rcx]
cmp ebp, 3
mov edx, 3
cmovb edx, ebp
prefetcht0 byte [rdi + rcx]
or r9, 3
mov r15d, dword [rax + r9*4]
mov rax, r15
shr rax, 8
mov rcx, qword [r8 + 0x80]
prefetcht0 byte [rcx + rax*4]
test edx, edx
mov qword [rsp + 0x38], r13
je 0x1400ece15
mov qword [rsp + 0x70], r9
lea rax, [rsi + 4]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x80], r12
lea eax, [rax + r12 + 3]
mov dword [rsp + 0x88], eax
mov dword [rsp + 0x48], edx
mov r15d, edx
mov r13, r14
jmp 0x1400ecd79
add rbx, 4
dec r15
je 0x1400ecdf3
mov rax, qword [r8 + 0x70]
mov r12d, dword [rax + rbx]
test r12, r12
je 0x1400ecdeb
lea rdx, [rdi + r12]
mov eax, dword [rdx]
cmp eax, dword [rsi]
jne 0x1400ecd70
add rdx, 4
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x20], rax
mov rcx, qword [rsp + 0x30]
mov r8, qword [rsp + 0x50]
mov r9, qword [rsp + 0x58]
call fcn.1400b81d0
mov r8, qword [rsp + 0x78]
mov r14, rax
add r14, 4
cmp r14, r13
jbe 0x1400ecd70
mov eax, dword [rsp + 0x88]
sub eax, r12d
mov rcx, qword [rsp + 0x90]
mov qword [rcx], rax
lea rax, [rsi + r14]
mov r13, r14
cmp rax, qword [rsp + 0x50]
jne 0x1400ecd70
jmp 0x1400ecf5f
mov r14, r13
jmp 0x1400ecf5f
mov rax, qword [r8 + 0x70]
mov rcx, qword [rsp + 0x70]
mov r15d, dword [rax + rcx*4]
mov eax, r15d
shr eax, 8
mov r14, r13
mov r12, qword [rsp + 0x80]
mov edx, dword [rsp + 0x48]
movzx ecx, r15b
sub ebp, edx
cmp ebp, ecx
cmovae ebp, ecx
test ebp, ebp
je 0x1400ecf5f
mov rcx, qword [r8 + 0x80]
mov edx, eax
mov r8d, ebp
mov eax, r8d
and eax, 3
cmp ebp, 4
jae 0x1400ece44
xor r9d, r9d
jmp 0x1400ece90
and r8d, 0xfc
lea r10, [rcx + rdx*4]
add r10, 0xc
xor r9d, r9d
nop word cs:[rax + rax]
mov r11d, dword [r10 + r9*4 - 0xc]
prefetcht0 byte [rdi + r11]
mov r11d, dword [r10 + r9*4 - 8]
prefetcht0 byte [rdi + r11]
mov r11d, dword [r10 + r9*4 - 4]
prefetcht0 byte [rdi + r11]
mov r11d, dword [r10 + r9*4]
prefetcht0 byte [rdi + r11]
add r9, 4
cmp r8, r9
jne 0x1400ece60
mov r10, r12
test rax, rax
je 0x1400ecec2
add r9, rdx
lea rcx, [rcx + r9*4]
shl rax, 2
xor edx, edx
nop word cs:[rax + rax]
mov r8d, dword [rcx + rdx]
prefetcht0 byte [rdi + r8]
add rdx, 4
cmp rax, rdx
jne 0x1400eceb0
lea r12, [rsi + 4]
mov rax, qword [rsp + 0x60]
add eax, r10d
add eax, 3
mov dword [rsp + 0x30], eax
shr r15d, 8
mov r13d, dword [rsi]
mov r8, qword [rsp + 0x78]
jmp 0x1400ecefd
mov r13d, dword [rsi]
mov r14, rax
inc r15
dec ebp
je 0x1400ecf5f
mov rax, qword [r8 + 0x80]
mov ebx, dword [rax + r15*4]
cmp dword [rdi + rbx], r13d
jne 0x1400ecef6
lea rdx, [rdi + rbx]
add rdx, 4
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x20], rax
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 0x1400ecef6
mov ecx, dword [rsp + 0x30]
sub ecx, ebx
mov rdx, qword [rsp + 0x90]
mov qword [rdx], rcx
lea rcx, [rsi + rax]
cmp rcx, qword [rsp + 0x50]
jne 0x1400ecef0
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