Function at 0x1400e4178
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xb8
mov edi, r9d
mov rbx, r8
mov qword [rsp + 0x28], rcx
mov rax, qword [0x140188028]
xor rax, rsp
mov qword [rsp + 0xb0], rax
vpbroadcastb ymm0, byte [0x1401601ea]
lea r14, [rsp + 0x30]
vmovdqu ymmword [r14 + 0x20], ymm0
vmovdqu ymmword [r14], ymm0
vmovups ymm0, ymmword [rdx]
vmovups ymm1, ymmword [rdx + 0x20]
vmovups ymmword [rsp + 0x70], ymm0
vmovups ymmword [rsp + 0x90], ymm1
xor esi, esi
lea r8, [rsp + rsi]
add r8, 0x70
lea rdx, [r14 + 0x20]
mov rcx, r14
vzeroupper
call fcn.1400e3bf0
add rsi, 0x10
add r14, 8
cmp rsi, 0x40
jne 0x1400e41db
lea r14, [rsp + 0x30]
mov rcx, r14
call fcn.1400e3c9e
mov rax, qword [rbx]
xor qword [r14], rax
mov rax, qword [rbx + 8]
xor qword [r14 + 8], rax
mov rax, qword [rbx + 0x10]
xor qword [r14 + 0x10], rax
mov rax, qword [rbx + 0x18]
xor qword [r14 + 0x18], rax
mov rax, qword [rbx + 0x20]
xor qword [r14 + 0x20], rax
mov rax, qword [rbx + 0x28]
xor qword [r14 + 0x28], rax
mov rax, qword [rbx + 0x30]
xor qword [r14 + 0x30], rax
mov rax, qword [rbx + 0x38]
xor qword [r14 + 0x38], rax
mov qword [rsp + 0x20], rdi
cmp edi, 2
jb 0x1400e43c5
mov r15d, dword [rsp + 0x20]
shl r15, 3
mov r12d, 8
lea r14, [rsp + 0x30]
mov rcx, r14
call fcn.1400e3ea1
mov rcx, r14
call fcn.1400e4522
mov r13, qword [rsp + 0x30]
mov r11, qword [rsp + 0x38]
mov r10, qword [rsp + 0x40]
mov r8, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x68]
mov rdi, r13
rol rdi, 0x30
mov r9, rcx
rol r9, 0x30
xor rcx, r9
xor r13, rdi
mov rsi, r13
mov ebp, r12d
rol rsi, 0x20
and ebp, 0xfffffff8
xor rsi, qword [rbx + rbp*8]
xor rdi, rcx
xor rdi, rsi
mov rsi, qword [rsp + 0x60]
mov qword [rsp + 0x30], rdi
mov rdi, r11
rol rdi, 0x30
xor r11, rdi
xor r13, rcx
xor r13, rdi
mov rdi, r11
rol rdi, 0x20
xor rdi, qword [rbx + rbp*8 + 8]
xor r13, rdi
mov qword [rsp + 0x38], r13
mov rdi, r10
rol rdi, 0x30
xor r10, rdi
xor r11, rdi
mov rdi, r10
rol rdi, 0x20
xor rdi, qword [rbx + rbp*8 + 0x10]
xor r11, rdi
mov rdi, r8
rol rdi, 0x30
xor r8, rdi
mov qword [rsp + 0x40], r11
mov r11, r8
xor r10, rcx
rol r11, 0x20
xor r10, rdi
xor r11, qword [rbx + rbp*8 + 0x18]
xor r10, r11
mov qword [rsp + 0x48], r10
mov r10, rdx
rol r10, 0x30
xor rdx, r10
xor r8, rcx
xor r8, r10
mov r10, rdx
rol r10, 0x20
xor r10, qword [rbx + rbp*8 + 0x20]
xor r8, r10
mov r10, rax
rol r10, 0x30
mov qword [rsp + 0x50], r8
xor rax, r10
xor rdx, r10
mov r8, rax
rol r8, 0x20
xor r8, qword [rbx + rbp*8 + 0x28]
xor rdx, r8
mov r8, rsi
rol r8, 0x30
mov qword [rsp + 0x58], rdx
xor rsi, r8
xor rax, r8
mov rdx, rsi
rol rdx, 0x20
xor rdx, qword [rbx + rbp*8 + 0x30]
xor rax, rdx
rol rcx, 0x20
mov qword [rsp + 0x60], rax
xor rcx, qword [rbx + rbp*8 + 0x38]
xor rsi, r9
xor rsi, rcx
mov qword [rsp + 0x68], rsi
add r12, 8
cmp r15, r12
jne 0x1400e426d
movabs r15, 0xff00ff00ff00ff
movabs r12, 0xffff0000ffff
lea r14, [rsp + 0x30]
mov rcx, r14
call fcn.1400e3ea1
mov rcx, r14
call fcn.1400e4522
mov rcx, qword [rsp + 0x20]
shl ecx, 3
mov rax, qword [rbx + rcx*8]
xor qword [r14], rax
mov rax, qword [rbx + rcx*8 + 8]
xor qword [r14 + 8], rax
mov rax, qword [rbx + rcx*8 + 0x10]
xor qword [r14 + 0x10], rax
mov rax, qword [rbx + rcx*8 + 0x18]
xor qword [r14 + 0x18], rax
mov rax, qword [rbx + rcx*8 + 0x20]
xor qword [r14 + 0x20], rax
mov rax, qword [rbx + rcx*8 + 0x28]
xor qword [r14 + 0x28], rax
mov rax, qword [rbx + rcx*8 + 0x30]
xor qword [r14 + 0x30], rax
mov rax, qword [rbx + rcx*8 + 0x38]
xor qword [r14 + 0x38], rax
mov rcx, r14
call fcn.1400e3c9e
xor eax, eax
mov rcx, qword [rsp + rax + 0x30]
mov r9, qword [rsp + rax + 0x50]
mov rdx, rcx
and rdx, r15
mov r10, r9
and r10, r15
shr rcx, 8
and rcx, r15
shr r9, 8
and r9, r15
mov r11, rdx
shr r11, 8
or r11, rdx
mov r8, r10
shr r8, 8
or r8, r10
mov rdx, rcx
shr rdx, 8
or rdx, rcx
mov rcx, r9
shr rcx, 8
or rcx, r9
and r11, r12
and r8, r12
and rdx, r12
and rcx, r12
mov r9, r11
shr r9, 0x10
or r9d, r11d
mov dword [rsp + rax*2 + 0x70], r9d
mov r9, r8
shr r9, 0x10
or r9d, r8d
mov dword [rsp + rax*2 + 0x74], r9d
mov r8, rdx
shr r8, 0x10
or r8d, edx
mov dword [rsp + rax*2 + 0x78], r8d
mov rdx, rcx
shr rdx, 0x10
or edx, ecx
mov dword [rsp + rax*2 + 0x7c], edx
add rax, 8
cmp rax, 0x20
jne 0x1400e4446
xor eax, eax
mov rdx, qword [rsp + 0x28]
mov ecx, dword [rsp + rax*4 + 0x70]
mov dword [rdx + rax*4], ecx
inc rax
cmp rax, 0x10
jne 0x1400e44ed
mov rcx, qword [rsp + 0xb0]
xor rcx, rsp
call fcn.1400a3c70
nop
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret