Function at 0x140090be0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x20
mov rsi, r9
mov rdi, rcx
mov rax, qword [r9]
mov rcx, qword [r9 + 8]
sub rcx, rax
shr rcx, 3
test ecx, ecx
jle 0x140090c71
mov rbx, r8
mov r14, rdx
lea r15, [rdi + 0x18]
xor r12d, r12d
nop word cs:[rax + rax]
mov rax, qword [rax + r12*8]
xor ecx, ecx
tzcnt rcx, rax
lzcnt rax, rax
xor eax, 0x3f
lea edx, [rax - 1]
imul edx, eax
shr edx, 1
add edx, ecx
movsxd r13, edx
lea rdx, [r14 + r13*8]
mov rcx, rdi
call fcn.14009cf40
lea rdx, [rbx + r13*8]
mov rcx, r15
call fcn.14009cf40
inc r12
mov rax, qword [rsi]
mov rcx, qword [rsi + 8]
sub rcx, rax
shr rcx, 3
movsxd rcx, ecx
cmp r12, rcx
jl 0x140090c20
mov rcx, rdi
xor edx, edx
mov r8, rsi
call 0x14009d0d0
mov rcx, rdi
mov edx, 1
mov r8, rsi
add rsp, 0x20
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp 0x14009d0d0
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x60
vmovupd xmmword [rsp + 0x50], xmm9
vmovupd xmmword [rsp + 0x40], xmm8
vmovupd xmmword [rsp + 0x30], xmm7
vmovupd xmmword [rsp + 0x20], xmm6
mov r14, r8
mov ebx, edx
mov rdi, rcx
movsxd rax, edx
lea r15, [rax + rax*2]
lea rsi, [rcx + r15*8]
add rsi, 0x30
mov rdx, qword [rcx + r15*8 + 8]
sub rdx, qword [rcx + r15*8]
sar rdx, 2
mov rcx, rsi
call fcn.14009d360
mov r8, qword [r14]
mov rax, qword [r14 + 8]
sub rax, r8
je 0x14009d32f
lea rdx, [rdi + r15*8]
sar rax, 3
xor ebx, 1
movsxd rcx, ebx
lea rcx, [rcx + rcx*2]
cmp rax, 1
adc rax, 0
lea r9, [rdi + rcx*8]
lea r10, [rax - 1]
mov rcx, rax
and rcx, 0xfffffffffffffff8
lea r11, [rcx - 1]
mov rdx, qword [rdx]
vxorps xmm0, xmm0, xmm0
xor edi, edi
vbroadcastsd ymm1, qword [0x140224070]
jmp 0x14009d18e
vmovss xmm3, dword [rdx + rdi*4]
vcvtss2sd xmm3, xmm3, xmm3
vfmadd231sd xmm0, xmm2, xmm3
lea rbx, [rdi + 1]
cmp rdi, r10
mov rdi, rbx
je 0x14009d2a5
mov rbx, qword [r8 + rdi*8]
test rcx, rcx
je 0x14009d270
vmovq xmm2, rbx
vpbroadcastq ymm2, xmm2
vpxor xmm3, xmm3, xmm3
vxorpd xmm4, xmm4, xmm4
vxorpd xmm5, xmm5, xmm5
xor r14d, r14d
jmp 0x14009d213
vpackssdw ymm8, ymm7, ymm6
vextracti128 xmm9, ymm8, 1
vpackssdw xmm8, xmm8, xmm9
vpshufd xmm8, xmm8, 0xd8
vpmovzxwd ymm8, xmm8
vpslld ymm8, ymm8, 0x1f
vmaskmovps ymm8, ymm8, ymmword [r15 + r14*4]
vextractf128 xmm9, ymm8, 1
vcvtps2pd ymm9, xmm9
vcvtps2pd ymm8, xmm8
vblendvpd ymm7, ymm1, ymm8, ymm7
vblendvpd ymm6, ymm1, ymm9, ymm6
vaddpd ymm4, ymm4, ymm7
vaddpd ymm5, ymm5, ymm6
add r14, 8
cmp r14, r11
ja 0x14009d240
vpand ymm6, ymm2, ymmword [r8 + r14*8 + 0x20]
vpand ymm7, ymm2, ymmword [r8 + r14*8]
vpcmpeqq ymm7, ymm7, ymm3
vpcmpeqq ymm6, ymm6, ymm3
vpor ymm8, ymm7, ymm6
vtestpd ymm8, ymm8
je 0x14009d1c0
mov r15, qword [r9]
jmp 0x14009d1c0
vaddpd ymm2, ymm4, ymm5
vextractf128 xmm3, ymm2, 1
vaddpd xmm2, xmm2, xmm3
vshufpd xmm3, xmm2, xmm2, 1
vaddsd xmm2, xmm2, xmm3
mov r14, rcx
cmp rax, rcx
jne 0x14009d28c
jmp 0x14009d170
xor r14d, r14d
vxorpd xmm2, xmm2, xmm2
jmp 0x14009d28c
inc r14
cmp rax, r14
je 0x14009d170
test qword [r8 + r14*8], rbx
jne 0x14009d280
mov r15, qword [r9]
vmovss xmm3, dword [r15 + r14*4]
vcvtss2sd xmm3, xmm3, xmm3
vaddsd xmm2, xmm2, xmm3
jmp 0x14009d280
vmovsd xmm1, qword [0x14021ba00]
vdivsd xmm0, xmm1, xmm0
mov r8, qword [rsi]
cmp rax, 8
jb 0x14009d303
mov r9, rax
shr r9, 3
vbroadcastsd ymm1, xmm0
xor r10d, r10d
nop dword [rax]
vcvtps2pd ymm2, xmmword [rdx + r10]
vcvtps2pd ymm3, xmmword [rdx + r10 + 0x10]
vmulpd ymm3, ymm1, ymm3
vmulpd ymm2, ymm1, ymm2
vcvtpd2ps xmm2, ymm2
vcvtpd2ps xmm3, ymm3
vmovupd xmmword [r8 + r10 + 0x10], xmm3
vmovupd xmmword [r8 + r10], xmm2
add r10, 0x20
dec r9
jne 0x14009d2d0
cmp rcx, rax
jae 0x14009d32f
nop dword [rax + rax]
vmovss xmm1, dword [rdx + rcx*4]
vcvtss2sd xmm1, xmm1, xmm1
vmulsd xmm1, xmm0, xmm1
vcvtsd2ss xmm1, xmm1, xmm1
vmovss dword [r8 + rcx*4], xmm1
inc rcx
cmp rax, rcx
jne 0x14009d310
vmovups xmm6, xmmword [rsp + 0x20]
vmovups xmm7, xmmword [rsp + 0x30]
vmovups xmm8, xmmword [rsp + 0x40]
vmovups xmm9, xmmword [rsp + 0x50]
add rsp, 0x60
pop rbx
pop rdi
pop rsi
pop r14
pop r15
vzeroupper
ret