Function at 0x18007def0
Capabilities:
Encode data using xor

Disassembly:
push r12
push r14
push r15
sub rsp, 0x30
mov qword [rsp + 0x28], 0xfffffffffffffffe
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], rbp
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x68], rdi
movsxd rsi, r9d
mov rdi, r8
mov rbx, rdx
movsxd rbp, dword [rsp + 0x70]
test rbp, rbp
js 0x18007e0f2
mov rax, qword [rsp + 0x78]
lea r14, [rax + rbp*4]
mov r12, qword [rsp + 0x80]
sub r12, rax
movsxd rax, dword [r12 + r14]
test eax, eax
je 0x18007e001
cmp esi, 0x20
jle 0x18007e001
movups xmm0, xmmword [rbx]
movups xmmword [rdi], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rdi + 0x10], xmm1
movups xmm0, xmmword [rbx + 0x20]
movups xmmword [rdi + 0x20], xmm0
movups xmm1, xmmword [rbx + 0x30]
movups xmmword [rdi + 0x30], xmm1
movups xmm0, xmmword [rbx + 0x40]
movups xmmword [rdi + 0x40], xmm0
movups xmm1, xmmword [rbx + 0x50]
movups xmmword [rdi + 0x50], xmm1
movups xmm0, xmmword [rbx + 0x60]
movups xmmword [rdi + 0x60], xmm0
movups xmm1, xmmword [rbx + 0x70]
movups xmmword [rdi + 0x70], xmm1
mov r8d, 0x200
cmp rsi, 0x20
jle 0x18007e016
mov rcx, rax
mov eax, 0x20
sub rax, rcx
lea rdx, [rdi + rax*4]
lea r10, [rcx*4]
mov r11, r10
sub r11, rdi
add r11, rbx
lea r9, [rsi - 0x20]
nop word [rax + rax]
mov ecx, r8d
imul ecx, dword [rdx]
sar ecx, 0xc
mov eax, dword [r11 + rdx]
sub eax, ecx
mov dword [r10 + rdx], eax
mov eax, dword [r11 + rdx]
xor eax, dword [rdx]
lea ecx, [r8 + 8]
lea r8d, [r8 - 8]
cmovle r8d, ecx
lea rdx, [rdx + 4]
sub r9, 1
jne 0x18007dfd0
jmp 0x18007e016
lea eax, [rsi*4]
movsxd r8, eax
mov rdx, rbx
mov rcx, rdi
call fcn.18008b7d0
movsxd rax, dword [r14]
test eax, eax
je 0x18007e0cf
cmp esi, 0x20
jle 0x18007e0cf
movups xmm0, xmmword [rdi]
movups xmmword [rbx], xmm0
movups xmm1, xmmword [rdi + 0x10]
movups xmmword [rbx + 0x10], xmm1
movups xmm0, xmmword [rdi + 0x20]
movups xmmword [rbx + 0x20], xmm0
movups xmm1, xmmword [rdi + 0x30]
movups xmmword [rbx + 0x30], xmm1
movups xmm0, xmmword [rdi + 0x40]
movups xmmword [rbx + 0x40], xmm0
movups xmm1, xmmword [rdi + 0x50]
movups xmmword [rbx + 0x50], xmm1
movups xmm0, xmmword [rdi + 0x60]
movups xmmword [rbx + 0x60], xmm0
movups xmm1, xmmword [rdi + 0x70]
movups xmmword [rbx + 0x70], xmm1
mov r8d, 0x200
cmp rsi, 0x20
jle 0x18007e0e4
mov rcx, rax
mov eax, 0x20
sub rax, rcx
lea rdx, [rbx + rax*4]
lea r10, [rcx*4]
mov r11, r10
sub r11, rbx
add r11, rdi
lea r9, [rsi - 0x20]
nop dword [rax + rax]
mov eax, dword [rdx]
imul eax, r8d
sar eax, 0xc
add eax, dword [r11 + rdx]
mov dword [r10 + rdx], eax
mov eax, dword [rdx]
xor eax, dword [r11 + rdx]
lea ecx, [r8 - 8]
lea r8d, [r8 + 8]
cmovle r8d, ecx
lea rdx, [rdx + 4]
sub r9, 1
jne 0x18007e0a0
jmp 0x18007e0e4
lea eax, [rsi*4]
movsxd r8, eax
mov rdx, rdi
mov rcx, rbx
call fcn.18008b7d0
sub r14, 4
sub rbp, 1
jns 0x18007df42
lea rcx, [rsp + 0x20]
call fcn.18007cf40
lea rax, [0x1800b1ec8]
mov qword [rsp + 0x20], rax
mov r9d, esi
mov r8, rdi
mov rdx, rbx
lea rcx, [rsp + 0x20]
call fcn.18007f830
nop
lea rcx, [rsp + 0x20]
call fcn.18007cf50
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x68]
add rsp, 0x30
pop r15
pop r14
pop r12
ret