Function at 0x18001d040
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x60
movsxd r12, dword [rsp + 0xb0]
mov rax, rdx
sub rax, rcx
movzx ebx, r9b
and rax, 0xffffffffffffffe0
mov rdi, r8
mov rbp, rdx
mov rsi, rcx
cmp rax, 0x400
jle 0x18001d113
test rdi, rdi
jle 0x18001d1a0
movzx r9d, bl
mov dword [rsp + 0x20], r12d
mov r8, rbp
lea rcx, [rsp + 0x40]
mov rdx, rsi
call fcn.18001bfc0
mov r15, qword [rsp + 0x40]
mov rcx, rdi
mov r14, qword [rsp + 0x48]
mov rax, r15
sar rcx, 2
sub rax, rsi
sar rdi, 1
and rax, 0xffffffffffffffe0
add rdi, rcx
mov dword [rsp + 0x20], r12d
mov rcx, rbp
movzx r9d, bl
sub rcx, r14
mov r8, rdi
and rcx, 0xffffffffffffffe0
cmp rax, rcx
jge 0x18001d0ef
mov rdx, r15
mov rcx, rsi
call fcn.18001d040
mov rsi, r14
jmp 0x18001d0fd
mov rdx, rbp
mov rcx, r14
call fcn.18001d040
mov rbp, r15
mov rax, rbp
sub rax, rsi
and rax, 0xffffffffffffffe0
cmp rax, 0x400
jg 0x18001d081
cmp rsi, rbp
je 0x18001d187
lea rdx, [rsi + 0x20]
cmp rdx, rbp
je 0x18001d187
movups xmm3, xmmword [rdx]
mov rax, rdx
lea rcx, [rdx - 0x20]
movups xmm4, xmmword [rdx + 0x10]
movss xmm0, dword [r12 + rdx - 0x20]
movups xmmword [rsp + 0x40], xmm3
movups xmmword [rsp + 0x50], xmm4
movss xmm2, dword [rsp + r12 + 0x40]
comiss xmm0, xmm2
jbe 0x18001d177
nop dword [rax]
movups xmm0, xmmword [rcx]
movups xmmword [rax], xmm0
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rax + 0x10], xmm1
sub rax, 0x20
cmp rax, rsi
je 0x18001d177
movss xmm0, dword [r12 + rcx - 0x20]
sub rcx, 0x20
comiss xmm0, xmm2
ja 0x18001d150
add rdx, 0x20
movups xmmword [rax], xmm3
movups xmmword [rax + 0x10], xmm4
cmp rdx, rbp
jne 0x18001d121
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret
mov r14, rbp
sub r14, rsi
sar r14, 5
mov r10, r14
sar r10, 1
test r10, r10
jle 0x18001d2f8
lea r15, [r14 - 1]
mov qword [rsp + 0x90], r13
mov rdi, r10
sar r15, 1
shl rdi, 5
add rdi, rsi
movups xmm3, xmmword [rdi - 0x20]
dec r10
lea rdi, [rdi - 0x20]
mov r9, r10
mov rdx, r10
movups xmm4, xmmword [rdi + 0x10]
movups xmmword [rsp + 0x40], xmm3
movups xmmword [rsp + 0x50], xmm4
cmp r10, r15
jge 0x18001d25a
nop word [rax + rax]
add rdx, rdx
mov r8, rdx
shl r8, 5
add r8, rsi
movss xmm0, dword [r12 + r8 + 0x20]
comiss xmm0, dword [r12 + r8 + 0x40]
seta cl
shl r9, 5
movzx eax, cl
xor rax, 1
inc rax
add rdx, rax
movzx eax, cl
xor rax, 1
inc rax
shl rax, 5
movups xmm0, xmmword [rax + r8]
movups xmmword [r9 + rsi], xmm0
movups xmm1, xmmword [rax + r8 + 0x10]
movups xmmword [r9 + rsi + 0x10], xmm1
mov r9, rdx
cmp rdx, r15
jl 0x18001d200
cmp r9, r15
jne 0x18001d289
test r14b, 1
jne 0x18001d289
mov rax, r14
shl rax, 5
shl r9, 5
movups xmm0, xmmword [rax + rsi - 0x20]
movups xmmword [r9 + rsi], xmm0
movups xmm1, xmmword [rax + rsi - 0x10]
movups xmmword [r9 + rsi + 0x10], xmm1
lea r9, [r14 - 1]
cmp r10, r9
jge 0x18001d2d8
movss xmm2, dword [rsp + r12 + 0x40]
nop word [rax + rax]
lea rcx, [r9 - 1]
sar rcx, 1
mov rdx, rcx
shl rdx, 5
lea rax, [rdx + r12]
comiss xmm2, dword [rax + rsi]
jbe 0x18001d2d8
movups xmm0, xmmword [rdx + rsi]
shl r9, 5
movups xmmword [r9 + rsi], xmm0
movups xmm1, xmmword [rdx + rsi + 0x10]
movups xmmword [r9 + rsi + 0x10], xmm1
mov r9, rcx
cmp r10, rcx
jl 0x18001d2a0
shl r9, 5
movups xmmword [r9 + rsi], xmm3
movups xmmword [r9 + rsi + 0x10], xmm4
test r10, r10
jg 0x18001d1d2
mov r13, qword [rsp + 0x90]
cmp r14, 2
jl 0x18001d187
add rbp, 0xffffffffffffffe0
nop word [rax + rax]
movups xmm0, xmmword [rbp]
mov dword [rsp + 0x30], r12d
mov r8, rbp
movups xmm1, xmmword [rbp + 0x10]
sub r8, rsi
mov dword [rsp + 0x28], r12d
movups xmmword [rsp + 0x40], xmm0
sar r8, 5
lea r9, [rsp + 0x40]
movups xmm0, xmmword [rsi]
xor edx, edx
mov rcx, rsi
movups xmmword [rsp + 0x50], xmm1
mov rdi, rbp
mov byte [rsp + 0x20], bl
movups xmmword [rbp], xmm0
movups xmm1, xmmword [rsi + 0x10]
movups xmmword [rbp + 0x10], xmm1
call fcn.18001ca10
sub rdi, rsi
sub rbp, 0x20
and rdi, 0xffffffffffffffe0
cmp rdi, 0x40
jge 0x18001d310
jmp 0x18001d187