Function at 0x1400e6f60
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 r13, rdx
mov rax, rcx
mov rcx, qword [0x14018e218]
xor rcx, rsp
mov qword [rsp + 0x1a0], rcx
mov rbx, qword [rax + 8]
mov r14, rdx
sub r14, rbx
movzx ecx, byte [rax + 0x100]
mov edx, 1
shl edx, cl
mov ecx, dword [rax + 0x1c]
mov r10d, r14d
sub r10d, ecx
mov r11d, r14d
sub r11d, edx
cmp r10d, edx
cmovbe r11d, ecx
mov qword [rsp + 0x88], r9
mov qword [rsp + 0x48], r8
cmp dword [rax + 0x28], 0
mov r8d, 1
cmovne r11d, ecx
mov dword [rsp + 0x40], r11d
mov edx, dword [rax + 0x10c]
cmp edx, 6
mov ecx, 6
cmovb ecx, edx
shl r8d, cl
mov rsi, qword [rax + 0x70]
mov r9, qword [rax + 0xf8]
imul r12d, dword [r13], 0x9e3779b1
mov cl, 0x18
sub cl, byte [r9 + 0x34]
mov r11d, r12d
shr r11d, cl
mov r15, qword [rax + 0x38]
mov edi, dword [rax + 0x34]
mov edx, r11d
shr edx, 2
and edx, 0xffffffc0
mov ecx, dword [rax + 0x18]
mov qword [rsp + 0x80], rcx
mov rbp, qword [rax + 0x60]
mov rcx, qword [r9 + 0x38]
mov r10, qword [r9 + 0x70]
prefetcht0 byte [r10 + rdx*4]
prefetcht0 byte [r10 + rdx*4 + 0x40]
prefetcht0 byte [rcx + rdx]
mov qword [rsp + 0x78], rdx
prefetcht0 byte [rcx + rdx + 0x20]
mov rdx, rcx
cmp dword [rax + 0x12c], 0
mov cl, 0x18
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x70], r14
mov qword [rsp + 0x98], r9
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x90], r10
mov dword [rsp + 0x64], r11d
je 0x1400e7095
xor r12d, ebp
sub cl, dil
shr r12d, cl
mov dword [rax + 0x2c], r14d
jmp 0x1400e7342
mov qword [rsp + 0x68], rbp
mov edx, dword [rax + 0x2c]
mov ecx, r14d
sub ecx, edx
cmp ecx, 0x181
mov dword [rsp + 0x34], edi
mov r9, r15
mov rdi, rsi
jb 0x1400e7220
cmp edx, 0xffffff9f
ja 0x1400e7178
lea r9, [rdx + 0x60]
mov ecx, 0x18
sub ecx, dword [rsp + 0x34]
mov ebp, 0x3f
nop word cs:[rax + rax]
imul r11d, dword [rbx + rdx + 8], 0x9e3779b1
xor r11d, dword [rax + 0x60]
shr r11d, cl
mov edi, r11d
shr edi, 2
and edi, 0xffffffc0
prefetcht0 byte [rsi + rdi*4]
prefetcht0 byte [rsi + rdi*4 + 0x40]
prefetcht0 byte [r15 + rdi]
prefetcht0 byte [r15 + rdi + 0x20]
mov edi, edx
and edi, 7
mov ebx, dword [rax + rdi*4 + 0x40]
mov dword [rax + rdi*4 + 0x40], r11d
mov r11, rbx
shr r11, 2
and r11d, 0x3fffffc0
lea rdi, [rsi + r11*4]
movzx r12d, byte [r15 + r11]
dec r12b
and r12b, 0x3f
mov r13d, 0
cmove r13d, ebp
lea r10, [r15 + r11]
movzx r12d, r12b
add r12, r13
mov byte [r15 + r11], r12b
mov byte [r10 + r12], bl
mov rbx, qword [rsp + 0x28]
mov dword [rdi + r12*4], edx
inc rdx
cmp r9, rdx
jne 0x1400e70e0
mov r9, qword [rax + 0x38]
mov rdi, qword [rax + 0x70]
mov r13, qword [rsp + 0x38]
lea edx, [r14 - 0x20]
lea rcx, [r13 + 1]
lea r10, [rbx + rdx]
mov r11d, ecx
sub r11d, r10d
inc r11d
cmp r11d, 8
mov ebx, 8
cmovb ebx, r11d
xor r11d, r11d
cmp r10, rcx
cmovbe r11d, ebx
add r11d, r14d
add r11d, 0xffffffe0
cmp r11d, edx
jbe 0x1400e72e7
mov qword [rsp + 0x58], rsi
mov r10d, dword [rax + 0x60]
mov ecx, 0x18
sub ecx, dword [rax + 0x34]
mov r11d, r11d
mov rbx, rdx
mov rsi, qword [rsp + 0x28]
imul r12d, dword [rsi + rbx], 0x9e3779b1
xor r12d, r10d
shr r12d, cl
mov r13d, r12d
shr r13d, 2
and r13d, 0xffffffc0
prefetcht0 byte [rdi + r13*4]
prefetcht0 byte [rdi + r13*4 + 0x40]
prefetcht0 byte [r9 + r13]
prefetcht0 byte [r9 + r13 + 0x20]
mov r13d, ebx
and r13d, 7
mov dword [rax + r13*4 + 0x40], r12d
inc rbx
cmp r11, rbx
jne 0x1400e71d0
mov r13, qword [rsp + 0x38]
mov rbx, rsi
mov rsi, qword [rsp + 0x58]
cmp edx, r14d
jae 0x1400e72f5
mov qword [rsp + 0x58], rsi
mov ecx, 0x18
sub ecx, dword [rax + 0x34]
mov r10, qword [rax + 8]
mov r11d, edx
mov edx, r14d
imul r12d, dword [r10 + r11 + 8], 0x9e3779b1
xor r12d, dword [rax + 0x60]
shr r12d, cl
mov r13d, r12d
shr r13d, 2
and r13d, 0xffffffc0
prefetcht0 byte [rdi + r13*4]
prefetcht0 byte [rdi + r13*4 + 0x40]
prefetcht0 byte [r9 + r13]
prefetcht0 byte [r9 + r13 + 0x20]
mov r13d, r11d
and r13d, 7
mov r14d, dword [rax + r13*4 + 0x40]
mov dword [rax + r13*4 + 0x40], r12d
mov r12, r14
shr r12, 2
and r12d, 0x3fffffc0
lea r13, [rdi + r12*4]
movzx ebp, byte [r9 + r12]
dec bpl
and bpl, 0x3f
mov ebx, 0
mov esi, 0x3f
cmove ebx, esi
lea rsi, [r9 + r12]
movzx ebp, bpl
add rbp, rbx
mov byte [r9 + r12], bpl
mov byte [rsi + rbp], r14b
mov dword [r13 + rbp*4], r11d
inc r11
cmp rdx, r11
jne 0x1400e7240
mov r13, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x28]
mov r14, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x58]
jmp 0x1400e72f8
mov rbx, qword [rsp + 0x28]
cmp edx, r14d
jb 0x1400e7229
mov edx, r14d
mov r9d, dword [rsp + 0x34]
mov rcx, qword [rsp + 0x68]
mov dword [rax + 0x2c], r14d
imul edx, dword [rbx + rdx + 8], 0x9e3779b1
xor edx, ecx
mov cl, 0x18
sub cl, r9b
shr edx, cl
mov ecx, edx
shr ecx, 2
and ecx, 0xffffffc0
prefetcht0 byte [rsi + rcx*4]
prefetcht0 byte [rsi + rcx*4 + 0x40]
prefetcht0 byte [r15 + rcx]
prefetcht0 byte [r15 + rcx + 0x20]
mov ecx, r14d
and ecx, 7
mov r12d, dword [rax + rcx*4 + 0x40]
mov dword [rax + rcx*4 + 0x40], edx
mov rbp, rsi
add dword [rax + 0x68], r12d
mov r9d, r12d
shr r9d, 2
and r9d, 0xffffffc0
lea rdx, [r15 + r9]
movzx ecx, byte [r15 + r9]
movd xmm0, r12d
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
movdqu xmm1, xmmword [r15 + r9]
movdqu xmm2, xmmword [r15 + r9 + 0x10]
movdqu xmm3, xmmword [r15 + r9 + 0x20]
movdqu xmm4, xmmword [r15 + r9 + 0x30]
pcmpeqb xmm1, xmm0
pmovmskb r11d, xmm1
pcmpeqb xmm2, xmm0
pmovmskb esi, xmm2
pcmpeqb xmm3, xmm0
pmovmskb r10d, xmm3
pcmpeqb xmm4, xmm0
pmovmskb edi, xmm4
lea r9, [r9*4]
add r9, rbp
shl rdi, 0x30
shl r10, 0x20
or r10, rdi
shl rsi, 0x10
or rsi, r10
xor r10d, r10d
or r11, rsi
je 0x1400e7418
ror r11, cl
xor r15d, r15d
mov rbp, qword [rsp + 0x50]
nop dword [rax]
tzcnt rdi, r11
add edi, ecx
and edi, 0x3f
je 0x1400e7408
mov edi, dword [r9 + rdi*4]
cmp edi, dword [rsp + 0x40]
jb 0x1400e7420
prefetcht0 byte [rbx + rdi]
mov dword [rsp + r15*4 + 0xa0], edi
inc r15
dec r8d
lea rsi, [r11 - 1]
and r11, rsi
je 0x1400e7420
test r8d, r8d
jne 0x1400e73e0
jmp 0x1400e7420
xor r15d, r15d
mov rbp, qword [rsp + 0x50]
add rbp, qword [rsp + 0x78]
dec ecx
and ecx, 0x3f
mov r11d, 0x3f
cmove r10d, r11d
add r10, rcx
mov byte [rdx], r10b
mov byte [rdx + r10], r12b
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 + 0x50], rbp
je 0x1400e75bf
mov rdx, qword [rsp + 0x48]
lea rax, [rdx - 7]
lea rcx, [rdx - 3]
lea r12, [rdx - 1]
lea ebp, [r14 + 3]
lea r9, [r13 + 8]
lea rdx, [rbx + 8]
mov qword [rsp + 0x40], rdx
mov edi, 3
xor edx, edx
jmp 0x1400e749f
inc rdx
mov r14, rdi
cmp rdx, r15
je 0x1400e75c5
mov r10d, dword [rsp + rdx*4 + 0xa0]
lea r11, [rbx + r10]
mov esi, dword [rdi + r11 - 3]
cmp esi, dword [r13 + rdi - 3]
jne 0x1400e7490
cmp rax, r13
jbe 0x1400e74e0
mov rbx, qword [r13]
xor rbx, qword [r11]
je 0x1400e74fa
tzcnt r14, rbx
shr r14, 3
mov rbx, qword [rsp + 0x28]
jmp 0x1400e7591
mov r14, r13
cmp r14, rcx
jae 0x1400e7560
mov esi, dword [r11]
cmp esi, dword [r14]
jne 0x1400e7560
add r14, 4
add r11, 4
jmp 0x1400e7560
mov r11, qword [rsp + 0x40]
add r11, r10
xor ebx, ebx
nop word cs:[rax + rax]
lea r14, [r9 + rbx]
cmp r14, rax
jae 0x1400e7541
mov r14, qword [r14]
lea r13, [rbx + 8]
xor r14, qword [r11 + rbx]
mov rbx, r13
je 0x1400e7510
tzcnt r14, r14
shr r14, 3
add r14, r13
mov r13, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x28]
jmp 0x1400e7591
add r11, rbx
mov r13, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x28]
cmp r14, rcx
jb 0x1400e74e8
nop word cs:[rax + rax]
cmp r14, r12
jae 0x1400e7577
movzx esi, word [r11]
cmp si, word [r14]
jne 0x1400e7577
add r14, 2
add r11, 2
cmp r14, qword [rsp + 0x48]
jae 0x1400e758e
movzx r11d, byte [r11]
xor esi, esi
cmp r11b, byte [r14]
sete sil
add r14, rsi
sub r14, r13
cmp r14, rdi
jbe 0x1400e7490
mov r11d, ebp
sub r11d, r10d
mov r10, qword [rsp + 0x88]
mov qword [r10], r11
lea r10, [r14 + r13]
mov rdi, r14
cmp r10, qword [rsp + 0x48]
jne 0x1400e7490
jmp 0x1400e75c5
mov r14d, 3
movzx eax, byte [rsp + 0x64]
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
mov r11, qword [rsp + 0x50]
movdqu xmm1, xmmword [r11]
movdqu xmm2, xmmword [r11 + 0x10]
movdqu xmm3, xmmword [r11 + 0x20]
movdqu xmm4, xmmword [r11 + 0x30]
pcmpeqb xmm1, xmm0
pmovmskb eax, xmm1
pcmpeqb xmm2, xmm0
pmovmskb ecx, xmm2
pcmpeqb xmm3, xmm0
pmovmskb edx, xmm3
pcmpeqb xmm4, xmm0
pmovmskb r9d, xmm4
shl r9, 0x30
shl rdx, 0x20
or rdx, r9
shl rcx, 0x10
or rcx, rdx
or rax, rcx
je 0x1400e7753
test r8d, r8d
je 0x1400e7753
add rbx, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x90]
lea r9, [rdx + rcx*4]
mov rcx, qword [rsp + 0x98]
mov r10d, dword [rcx + 0x18]
mov rdx, qword [rcx]
mov rdi, qword [rcx + 8]
mov qword [rsp + 0x40], rdx
sub edx, edi
movzx ecx, byte [r11]
ror rax, cl
xor ebp, ebp
nop dword [rax]
tzcnt r11, rax
add r11d, ecx
and r11d, 0x3f
je 0x1400e76aa
mov r11d, dword [r9 + r11*4]
cmp r11d, r10d
jb 0x1400e76b8
prefetcht0 byte [rdi + r11]
mov dword [rsp + rbp*4 + 0xa0], r11d
inc rbp
dec r8d
lea r11, [rax - 1]
and rax, r11
je 0x1400e76b8
test r8d, r8d
jne 0x1400e7680
test rbp, rbp
je 0x1400e7753
mov rsi, rbx
lea r12, [r13 + 4]
mov r15d, dword [r13]
mov rax, qword [rsp + 0x70]
add eax, edx
add eax, 3
mov dword [rsp + 0x28], eax
xor ebx, ebx
jmp 0x1400e76e8
inc rbx
cmp rbp, rbx
je 0x1400e7753
mov r13d, dword [rsp + rbx*4 + 0xa0]
cmp dword [rdi + r13], r15d
jne 0x1400e76e0
lea rdx, [rdi + r13]
add rdx, 4
mov qword [rsp + 0x20], rsi
mov rcx, r12
mov r8, qword [rsp + 0x48]
mov r9, qword [rsp + 0x40]
call fcn.1400b81d0
add rax, 4
cmp rax, r14
jbe 0x1400e76e0
add r13d, dword [rsp + 0x80]
mov ecx, dword [rsp + 0x28]
sub ecx, r13d
mov rdx, qword [rsp + 0x88]
mov qword [rdx], rcx
mov rdx, qword [rsp + 0x38]
lea rcx, [rdx + rax]
cmp rcx, qword [rsp + 0x48]
je 0x1400e7750
mov r15d, dword [rdx]
mov r14, rax
jmp 0x1400e76e0
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