Function at 0x1400e66c0
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 + 0x98], r9
mov r13, rdx
mov rax, rcx
mov rcx, qword [0x14018e218]
xor rcx, rsp
mov qword [rsp + 0x1b0], rcx
mov rcx, qword [rax + 0x70]
mov qword [rsp + 0x50], rcx
mov r14, qword [rax + 8]
mov rsi, rdx
sub rsi, r14
movzx ecx, byte [rax + 0x100]
mov edx, 1
shl edx, cl
mov ecx, dword [rax + 0x1c]
mov r9d, esi
sub r9d, ecx
mov r10d, esi
sub r10d, edx
cmp r9d, edx
cmovbe r10d, ecx
mov rdi, qword [rax + 0x38]
mov r9d, dword [rax + 0x34]
cmp dword [rax + 0x28], 0
mov ebx, 1
cmovne r10d, ecx
mov dword [rsp + 0x58], r10d
mov edx, dword [rax + 0x10c]
cmp edx, 5
mov ecx, 5
cmovb ecx, edx
shl ebx, cl
mov r15, qword [rax + 0xf8]
imul r10d, dword [r13], 0x9e3779b1
mov cl, 0x18
sub cl, byte [r15 + 0x34]
mov edx, r10d
shr edx, cl
mov dword [rsp + 0x8c], edx
mov r12d, edx
shr r12d, 3
and r12d, 0xffffffe0
mov ecx, dword [rax + 0x18]
mov qword [rsp + 0x90], rcx
mov r11, qword [rax + 0x60]
mov rbp, qword [r15 + 0x38]
mov rcx, qword [r15 + 0x70]
prefetcht0 byte [rcx + r12*4]
mov qword [rsp + 0xa0], rcx
prefetcht0 byte [rcx + r12*4 + 0x40]
prefetcht0 byte [rbp + r12]
cmp dword [rax + 0x12c], 0
mov cl, 0x18
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x70], r14
mov qword [rsp + 0x80], rsi
mov qword [rsp + 0xa8], r15
mov qword [rsp + 0x78], r12
je 0x1400e67f8
xor r10d, r11d
sub cl, r9b
shr r10d, cl
mov dword [rax + 0x2c], esi
mov r15, qword [rsp + 0x50]
jmp 0x1400e6b8f
mov r12d, dword [rax + 0x2c]
mov ecx, esi
sub ecx, r12d
cmp ecx, 0x181
mov qword [rsp + 0x48], rbp
mov qword [rsp + 0x68], r11
mov r15, rdi
jb 0x1400e6959
mov rbp, qword [rsp + 0x50]
cmp r12d, 0xffffff9f
ja 0x1400e68f4
lea rdx, [r12 + 0x60]
mov ecx, 0x18
mov dword [rsp + 0x44], r9d
sub ecx, r9d
mov r8, qword [rsp + 0x50]
mov r9, rdi
nop word cs:[rax + rax]
imul r11d, dword [r14 + r12 + 8], 0x9e3779b1
xor r11d, dword [rax + 0x60]
shr r11d, cl
mov edi, r11d
shr edi, 3
and edi, 0xffffffe0
prefetcht0 byte [r8 + rdi*4]
prefetcht0 byte [r8 + rdi*4 + 0x40]
prefetcht0 byte [r9 + rdi]
mov edi, r12d
and edi, 7
mov r15d, dword [rax + rdi*4 + 0x40]
mov dword [rax + rdi*4 + 0x40], r11d
mov r11, r15
shr r11, 3
and r11d, 0x1fffffe0
lea rdi, [r8 + r11*4]
movzx ebp, byte [r9 + r11]
dec bpl
and bpl, 0x1f
mov r13d, 0
mov r10d, 0x1f
cmove r13d, r10d
lea r10, [r9 + r11]
movzx ebp, bpl
add rbp, r13
mov byte [r9 + r11], bpl
mov byte [r10 + rbp], r15b
mov dword [rdi + rbp*4], r12d
inc r12
cmp rdx, r12
jne 0x1400e6850
mov r15, qword [rax + 0x38]
mov rbp, qword [rax + 0x70]
mov r8, qword [rsp + 0x30]
mov r13, qword [rsp + 0x38]
mov rdi, r9
mov r9d, dword [rsp + 0x44]
lea r12d, [rsi - 0x20]
lea rcx, [r13 + 1]
lea rdx, [r14 + r12]
mov r10d, ecx
sub r10d, edx
inc r10d
cmp r10d, 8
mov r11d, 8
cmovb r11d, r10d
xor r10d, r10d
cmp rdx, rcx
cmovbe r10d, r11d
lea r11d, [r10 + rsi]
add r11d, 0xffffffe0
cmp r11d, r12d
jbe 0x1400e6a52
mov qword [rsp + 0x60], rdi
mov edx, dword [rax + 0x60]
mov ecx, 0x18
sub ecx, dword [rax + 0x34]
mov r10d, r11d
sub r11d, r12d
mov rdi, r12
not rdi
test r11b, 1
jne 0x1400e6978
mov r11, r12
jmp 0x1400e69bd
mov rbp, qword [rsp + 0x50]
cmp r12d, esi
jb 0x1400e6a60
mov edx, esi
mov rbp, qword [rsp + 0x48]
mov r12, qword [rsp + 0x78]
jmp 0x1400e6b4f
imul r11d, dword [r14 + r12], 0x9e3779b1
xor r11d, edx
shr r11d, cl
mov r13d, r11d
shr r13d, 3
and r13d, 0xffffffe0
prefetcht0 byte [rbp + r13*4]
prefetcht0 byte [rbp + r13*4 + 0x40]
prefetcht0 byte [r15 + r13]
mov r13d, r12d
and r13d, 7
mov dword [rax + r13*4 + 0x40], r11d
mov r13, qword [rsp + 0x38]
mov r8, qword [rsp + 0x30]
lea r11, [r12 + 1]
add rdi, r10
je 0x1400e6a4d
mov r8, r10
nop dword [rax]
imul edi, dword [r14 + r11], 0x9e3779b1
xor edi, edx
shr edi, cl
mov r13d, edi
shr r13d, 3
and r13d, 0xffffffe0
prefetcht0 byte [rbp + r13*4]
prefetcht0 byte [rbp + r13*4 + 0x40]
prefetcht0 byte [r15 + r13]
mov r13d, r11d
and r13d, 7
mov dword [rax + r13*4 + 0x40], edi
imul edi, dword [r14 + r11 + 1], 0x9e3779b1
xor edi, edx
shr edi, cl
lea r13d, [r11 + 1]
mov r10d, edi
shr r10d, 3
and r10d, 0xffffffe0
prefetcht0 byte [rbp + r10*4]
prefetcht0 byte [rbp + r10*4 + 0x40]
prefetcht0 byte [r15 + r10]
and r13d, 7
mov dword [rax + r13*4 + 0x40], edi
add r11, 2
cmp r8, r11
jne 0x1400e69d0
mov r8, qword [rsp + 0x30]
mov r13, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x60]
mov r11, qword [rsp + 0x68]
cmp r12d, esi
jae 0x1400e6967
mov dword [rsp + 0x44], r9d
mov qword [rsp + 0x60], rdi
mov ecx, 0x18
sub ecx, dword [rax + 0x34]
mov r10, qword [rax + 8]
mov r11d, r12d
mov edx, esi
mov r8d, 0x1f
nop word cs:[rax + rax]
imul r12d, dword [r10 + r11 + 8], 0x9e3779b1
xor r12d, dword [rax + 0x60]
shr r12d, cl
mov r13d, r12d
shr r13d, 3
and r13d, 0xffffffe0
prefetcht0 byte [rbp + r13*4]
prefetcht0 byte [rbp + r13*4 + 0x40]
prefetcht0 byte [r15 + r13]
mov r13d, r11d
and r13d, 7
mov esi, dword [rax + r13*4 + 0x40]
mov dword [rax + r13*4 + 0x40], r12d
mov r12, rsi
shr r12, 3
and r12d, 0x1fffffe0
lea r13, [r12*4]
add r13, rbp
movzx r14d, byte [r15 + r12]
dec r14b
and r14b, 0x1f
mov edi, 0
cmove edi, r8d
lea r9, [r15 + r12]
movzx r14d, r14b
add r14, rdi
mov byte [r15 + r12], r14b
mov byte [r9 + r14], sil
mov dword [r13 + r14*4], r11d
inc r11
cmp rdx, r11
jne 0x1400e6a90
mov r8, qword [rsp + 0x30]
mov r13, qword [rsp + 0x38]
mov r14, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x80]
mov rbp, qword [rsp + 0x48]
mov r12, qword [rsp + 0x78]
mov rdi, qword [rsp + 0x60]
mov r9d, dword [rsp + 0x44]
mov r11, qword [rsp + 0x68]
mov dword [rax + 0x2c], esi
imul edx, dword [r14 + rdx + 8], 0x9e3779b1
xor edx, r11d
mov cl, 0x18
sub cl, r9b
shr edx, cl
mov ecx, edx
shr ecx, 3
and ecx, 0xffffffe0
mov r15, qword [rsp + 0x50]
prefetcht0 byte [r15 + rcx*4]
prefetcht0 byte [r15 + rcx*4 + 0x40]
prefetcht0 byte [rdi + rcx]
mov ecx, esi
and ecx, 7
mov r10d, dword [rax + rcx*4 + 0x40]
mov dword [rax + rcx*4 + 0x40], edx
add dword [rax + 0x68], r10d
mov r9d, r10d
shr r9d, 3
and r9d, 0xffffffe0
lea rdx, [rdi + r9]
movzx ecx, byte [rdi + r9]
movd xmm0, r10d
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
movdqu xmm1, xmmword [rdi + r9]
movdqu xmm2, xmmword [rdi + r9 + 0x10]
pcmpeqb xmm1, xmm0
pmovmskb edi, xmm1
pcmpeqb xmm2, xmm0
pmovmskb r11d, xmm2
lea r9, [r15 + r9*4]
shl r11d, 0x10
xor esi, esi
or r11d, edi
je 0x1400e6c27
ror r11d, cl
xor r15d, r15d
nop dword [rax]
tzcnt rdi, r11
add edi, ecx
and edi, 0x1f
je 0x1400e6c18
mov edi, dword [r9 + rdi*4]
cmp edi, dword [rsp + 0x58]
jb 0x1400e6c2a
prefetcht0 byte [r14 + rdi]
mov dword [rsp + r15*4 + 0xb0], edi
inc r15
dec ebx
lea rdi, [r11 - 1]
and r11, rdi
je 0x1400e6c2a
test ebx, ebx
jne 0x1400e6bf0
jmp 0x1400e6c2a
xor r15d, r15d
add rbp, r12
dec ecx
and ecx, 0x1f
mov r11d, 0x1f
cmove esi, r11d
add rsi, rcx
mov byte [rdx], sil
mov byte [rdx + rsi], r10b
mov ecx, dword [rax + 0x2c]
lea edx, [rcx + 1]
mov dword [rax + 0x2c], edx
mov dword [r9 + rsi*4], ecx
test r15, r15
mov qword [rsp + 0x48], rbp
je 0x1400e6db9
lea rax, [r8 - 7]
lea rcx, [r8 - 3]
lea r9, [r8 - 1]
mov rdx, qword [rsp + 0x80]
lea esi, [rdx + 3]
lea r12, [r13 + 8]
lea rdx, [r14 + 8]
mov qword [rsp + 0x58], rdx
mov edx, 3
xor r10d, r10d
jmp 0x1400e6c9f
inc r10
mov r14, rdx
cmp r10, r15
je 0x1400e6dbf
mov ebp, dword [rsp + r10*4 + 0xb0]
mov r11, qword [rsp + 0x70]
add r11, rbp
mov edi, dword [rdx + r11 - 3]
cmp edi, dword [r13 + rdx - 3]
jne 0x1400e6c90
cmp rax, r13
jbe 0x1400e6ce0
mov rdi, qword [r13]
xor rdi, qword [r11]
je 0x1400e6cfa
tzcnt r14, rdi
shr r14, 3
jmp 0x1400e6d8f
mov r14, r13
cmp r14, rcx
jae 0x1400e6d60
mov edi, dword [r11]
cmp edi, dword [r14]
jne 0x1400e6d60
add r14, 4
add r11, 4
jmp 0x1400e6d60
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 0x1400e6d41
mov r14, qword [r14]
lea r13, [rdi + 8]
xor r14, qword [r11 + rdi]
mov rdi, r13
je 0x1400e6d10
tzcnt r14, r14
shr r14, 3
add r14, r13
mov r8, qword [rsp + 0x30]
mov r13, qword [rsp + 0x38]
jmp 0x1400e6d8f
add r11, rdi
mov r8, qword [rsp + 0x30]
mov r13, qword [rsp + 0x38]
cmp r14, rcx
jb 0x1400e6ce8
nop word cs:[rax + rax]
cmp r14, r9
jae 0x1400e6d77
movzx edi, word [r11]
cmp di, word [r14]
jne 0x1400e6d77
add r14, 2
add r11, 2
cmp r14, r8
jae 0x1400e6d8c
movzx r11d, byte [r11]
xor edi, edi
cmp r11b, byte [r14]
sete dil
add r14, rdi
sub r14, r13
cmp r14, rdx
jbe 0x1400e6c90
mov edx, esi
sub edx, ebp
mov r11, qword [rsp + 0x98]
mov qword [r11], rdx
lea r11, [r14 + r13]
mov rdx, r14
cmp r11, r8
jne 0x1400e6c90
jmp 0x1400e6dbf
mov r14d, 3
movzx eax, byte [rsp + 0x8c]
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
mov r8, qword [rsp + 0x48]
movdqu xmm1, xmmword [r8]
movdqu xmm2, xmmword [r8 + 0x10]
pcmpeqb xmm1, xmm0
pmovmskb ecx, xmm1
pcmpeqb xmm2, xmm0
pmovmskb eax, xmm2
shl eax, 0x10
or eax, ecx
je 0x1400e6f33
test ebx, ebx
je 0x1400e6f33
mov rcx, qword [rsp + 0x90]
add qword [rsp + 0x70], rcx
mov rcx, qword [rsp + 0x78]
mov rdx, qword [rsp + 0xa0]
lea r9, [rdx + rcx*4]
mov rcx, qword [rsp + 0xa8]
mov r10d, dword [rcx + 0x18]
mov rdx, qword [rcx]
mov rsi, qword [rcx + 8]
mov qword [rsp + 0x58], rdx
sub edx, esi
movzx ecx, byte [r8]
and ecx, 0x1f
ror eax, cl
xor ebp, ebp
nop
tzcnt r11, rax
add r11d, ecx
and r11d, 0x1f
je 0x1400e6e79
mov r11d, dword [r9 + r11*4]
cmp r11d, r10d
jb 0x1400e6e86
prefetcht0 byte [rsi + r11]
mov dword [rsp + rbp*4 + 0xb0], r11d
inc rbp
dec ebx
lea r11, [rax - 1]
and rax, r11
je 0x1400e6e86
test ebx, ebx
jne 0x1400e6e50
test rbp, rbp
je 0x1400e6f33
lea r12, [r13 + 4]
mov r15d, dword [r13]
mov rax, qword [rsp + 0x80]
add eax, edx
add eax, 3
mov dword [rsp + 0x48], eax
xor edi, edi
mov rbx, qword [rsp + 0x90]
jmp 0x1400e6ec8
inc rdi
cmp rbp, rdi
je 0x1400e6f33
mov r13d, dword [rsp + rdi*4 + 0xb0]
cmp dword [rsi + r13], r15d
jne 0x1400e6ec0
lea rdx, [rsi + r13]
add rdx, 4
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x20], rax
mov rcx, r12
mov r8, qword [rsp + 0x30]
mov r9, qword [rsp + 0x58]
call fcn.1400b81d0
add rax, 4
cmp rax, r14
jbe 0x1400e6ec0
add r13d, ebx
mov ecx, dword [rsp + 0x48]
sub ecx, r13d
mov rdx, qword [rsp + 0x98]
mov qword [rdx], rcx
mov rdx, qword [rsp + 0x38]
lea rcx, [rdx + rax]
cmp rcx, qword [rsp + 0x30]
je 0x1400e6f30
mov r15d, dword [rdx]
mov r14, rax
jmp 0x1400e6ec0
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