Function at 0x14003bab0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r14
push r15
sub rsp, 0x40
mov rax, rdx
movzx ebx, r9b
sub rax, rcx
mov rsi, r8
sar rax, 2
mov rbp, rdx
mov rdi, rcx
cmp rax, 0x20
jle 0x14003bb76
nop dword [rax]
test rsi, rsi
jle 0x14003bbdb
movzx r9d, bl
lea rcx, [rsp + 0x20]
mov r8, rbp
mov rdx, rdi
call fcn.1400547a0
mov r15, qword [rsp + 0x20]
mov rcx, rsi
mov r14, qword [rsp + 0x28]
mov rax, r15
sar rcx, 2
sub rax, rdi
sar rsi, 1
and rax, 0xfffffffffffffffc
add rsi, rcx
movzx r9d, bl
mov rcx, rbp
mov r8, rsi
sub rcx, r14
and rcx, 0xfffffffffffffffc
cmp rax, rcx
jge 0x14003bb54
mov rdx, r15
mov rcx, rdi
call fcn.14003bab0
mov rdi, r14
jmp 0x14003bb62
mov rdx, rbp
mov rcx, r14
call fcn.14003bab0
mov rbp, r15
mov rax, rbp
sub rax, rdi
sar rax, 2
cmp rax, 0x20
jg 0x14003baf0
cmp rax, 2
jl 0x14003bdbf
cmp rdi, rbp
je 0x14003bdbf
lea r14, [rdi + 4]
mov rbx, r14
cmp r14, rbp
je 0x14003bdbf
movaps xmmword [rsp + 0x30], xmm6
mov esi, 4
nop dword [rax]
nop word [rax + rax]
movss xmm6, dword [rbx]
mov rcx, rbx
movss xmm0, dword [rdi]
comiss xmm0, xmm6
jbe 0x14003bd7e
mov r8, rsi
mov rdx, rdi
mov rcx, r14
call sub.VCRUNTIME140.dll_memmove
movss dword [rdi], xmm6
jmp 0x14003bda9
cmp rax, 0x20
jle 0x14003bb76
mov r9, rbp
sub r9, rdi
sar r9, 2
mov r8, r9
sar r8, 1
test r8, r8
jle 0x14003bcac
lea r10, [r9 - 1]
sar r10, 1
nop dword [rax]
nop word [rax + rax]
movss xmm1, dword [rdi + r8*4 - 4]
dec r8
mov rdx, r8
mov rcx, r8
cmp r8, r10
jge 0x14003bc5b
nop word [rax + rax]
add rcx, rcx
xor eax, eax
movss xmm0, dword [rdi + rcx*4 + 4]
comiss xmm0, dword [rdi + rcx*4 + 8]
seta al
inc rcx
xor rax, 1
add rcx, rax
mov eax, dword [rdi + rcx*4]
mov dword [rdi + rdx*4], eax
mov rdx, rcx
cmp rcx, r10
jl 0x14003bc30
cmp rcx, r10
jne 0x14003bc72
test r9b, 1
jne 0x14003bc72
mov eax, dword [rdi + r9*4 - 4]
mov dword [rdi + rdx*4], eax
lea rdx, [r9 - 1]
cmp r8, rdx
jge 0x14003bc9e
nop word [rax + rax]
lea rax, [rdx - 1]
sar rax, 1
movss xmm0, dword [rdi + rax*4]
comiss xmm1, xmm0
jbe 0x14003bc9e
movss dword [rdi + rdx*4], xmm0
mov rdx, rax
cmp r8, rax
jl 0x14003bc80
movss dword [rdi + rdx*4], xmm1
test r8, r8
jg 0x14003bc10
cmp r9, 2
jl 0x14003bdbf
mov esi, 4
lea r10, [rbp - 4]
sub rsi, rdi
cmp r9, 2
jl 0x14003bd63
movss xmm1, dword [r10]
mov r8, r10
mov eax, dword [rdi]
sub r8, rdi
sar r8, 2
xor edx, edx
xor ecx, ecx
mov dword [r10], eax
lea r9, [r8 - 1]
sar r9, 1
test r9, r9
jle 0x14003bd1b
add rcx, rcx
xor eax, eax
movss xmm0, dword [rdi + rcx*4 + 4]
comiss xmm0, dword [rdi + rcx*4 + 8]
seta al
inc rcx
xor rax, 1
add rcx, rax
mov eax, dword [rdi + rcx*4]
mov dword [rdi + rdx*4], eax
mov rdx, rcx
cmp rcx, r9
jl 0x14003bcf0
cmp rcx, r9
jne 0x14003bd32
test r8b, 1
jne 0x14003bd32
mov eax, dword [rdi + r8*4 - 4]
mov dword [rdi + rdx*4], eax
lea rdx, [r8 - 1]
test rdx, rdx
jle 0x14003bd5e
nop word [rax + rax]
lea rax, [rdx - 1]
sar rax, 1
movss xmm0, dword [rdi + rax*4]
comiss xmm1, xmm0
jbe 0x14003bd5e
movss dword [rdi + rdx*4], xmm0
mov rdx, rax
test rax, rax
jg 0x14003bd40
movss dword [rdi + rdx*4], xmm1
sub r10, 4
lea rax, [r10 + rsi]
sar rax, 2
mov r9, rax
cmp rax, 2
jge 0x14003bcc2
jmp 0x14003bdbf
lea rax, [rsi - 4]
add rax, rdi
movss xmm0, dword [rax]
comiss xmm0, xmm6
jbe 0x14003bda5
nop
movss dword [rcx], xmm0
mov rcx, rax
movss xmm0, dword [rax - 4]
sub rax, 4
comiss xmm0, xmm6
ja 0x14003bd90
movss dword [rcx], xmm6
add rbx, 4
add rsi, 4
cmp rbx, rbp
jne 0x14003bbb0
movaps xmm6, xmmword [rsp + 0x30]
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
add rsp, 0x40
pop r15
pop r14
pop rdi
ret