Function at 0x14009f9f0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xd8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x50], 0xfffffffffffffffe
mov r12, r9
mov r15, r8
mov rsi, rdx
mov rbx, rcx
cmp rdx, 0x21
mov qword [rbp + 0x38], r8
jae 0x14009fc5c
cmp rsi, 2
jb 0x1400a03e0
lea rax, [rsi + 0x10]
cmp rax, r12
ja 0x1400a043f
mov r13, rsi
shr r13, 1
cmp rsi, 7
mov qword [rbp + 0x40], rbx
jbe 0x1400a013a
movsd xmm0, qword [rbx]
movsd xmm1, qword [rbx + 0x40]
xor r10d, r10d
xor r9d, r9d
ucomisd xmm0, qword [rbx + 0x20]
setbe r10b
seta r9b
xor r8d, r8d
ucomisd xmm1, qword [rbx + 0x60]
seta r8b
shl r9d, 5
shl r10d, 5
lea rcx, [rbx + r10]
mov eax, r8d
shl eax, 5
lea rdx, [rbx + rax]
add rdx, 0x40
xor r8d, 3
shl r8d, 5
movsd xmm0, qword [rbx + r10]
movsd xmm1, qword [rbx + r8]
ucomisd xmm0, xmm1
mov r10, rcx
cmova r10, rdx
movsd xmm2, qword [rbx + r9]
ucomisd xmm2, qword [rbx + rax + 0x40]
lea rax, [rbx + r9]
cmova r10, rax
cmova rax, rdx
cmova rdx, rcx
ucomisd xmm0, xmm1
lea r8, [rbx + r8]
cmovbe rcx, r8
cmova rdx, r8
movsd xmm0, qword [r10]
ucomisd xmm0, qword [rdx]
mov r8, r10
cmova r8, rdx
cmova rdx, r10
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmmword [r15 + 0x10], xmm1
movups xmmword [r15], xmm0
movups xmm0, xmmword [r8]
movups xmm1, xmmword [r8 + 0x10]
movups xmmword [r15 + 0x30], xmm1
movups xmmword [r15 + 0x20], xmm0
movups xmm0, xmmword [rdx + 0x10]
movups xmmword [r15 + 0x50], xmm0
mov r8, r13
shl r8, 5
movsd xmm0, qword [rbx + r8]
movsd xmm1, qword [rbx + r8 + 0x40]
xor r14d, r14d
xor ebx, ebx
mov rax, qword [rbp + 0x40]
ucomisd xmm0, qword [rax + r8 + 0x20]
setbe r14b
seta bl
xor r10d, r10d
mov rax, qword [rbp + 0x40]
ucomisd xmm1, qword [rax + r8 + 0x60]
mov rax, qword [rbp + 0x40]
lea rdi, [rax + r8]
seta r10b
shl ebx, 5
shl r14d, 5
lea r9, [rdi + r14]
mov eax, r10d
shl eax, 5
lea r11, [rax + rdi]
add r11, 0x40
xor r10d, 3
shl r10d, 5
movsd xmm0, qword [rbx + rdi]
movsd xmm1, qword [r14 + rdi]
movsd xmm2, qword [r10 + rdi]
ucomisd xmm1, xmm2
mov r14, r9
cmova r14, r11
ucomisd xmm0, qword [rdi + rax + 0x40]
movups xmm0, xmmword [rdx]
lea rax, [rdi + rbx]
mov rbx, qword [rbp + 0x40]
cmova r14, rax
movups xmmword [r15 + 0x40], xmm0
cmova rax, r11
movups xmm0, xmmword [rcx + 0x10]
cmova r11, r9
movups xmmword [r15 + 0x70], xmm0
movups xmm0, xmmword [rcx]
ucomisd xmm1, xmm2
lea rcx, [rdi + r10]
cmovbe r9, rcx
movups xmmword [r15 + 0x60], xmm0
cmova r11, rcx
movsd xmm0, qword [r14]
ucomisd xmm0, qword [r11]
mov rcx, r14
cmova rcx, r11
cmova r11, r14
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmmword [r15 + r8 + 0x10], xmm1
movups xmmword [r15 + r8], xmm0
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [r15 + r8 + 0x20], xmm0
movups xmmword [r15 + r8 + 0x30], xmm1
movups xmm0, xmmword [r11]
movups xmm1, xmmword [r11 + 0x10]
movups xmmword [r15 + r8 + 0x40], xmm0
movups xmmword [r15 + r8 + 0x50], xmm1
movupd xmm0, xmmword [r9]
movupd xmm1, xmmword [r9 + 0x10]
movupd xmmword [r15 + r8 + 0x60], xmm0
movupd xmmword [r15 + r8 + 0x70], xmm1
mov ecx, 4
jmp 0x1400a016e
mov rax, qword [rbp + 0xc8]
mov qword [rbp + 0x30], rax
mov r13d, dword [rbp + 0xc0]
lea rax, [r15 - 0x20]
mov qword [rbp + 0x18], rax
mov qword [rbp + 0x40], r12
lea rax, [rbx + 0x20]
mov qword [rbp + 0x20], rax
mov rdi, rsi
nop word cs:[rax + rax]
sub r13d, 1
jb 0x1400a0113
mov r9, rdi
shr r9, 3
mov r14, r9
shl r14, 7
add r14, rbx
imul r8, r9, 0xe0
add r8, rbx
cmp rdi, 0x40
mov dword [rbp + 0x4c], r13d
jae 0x14009fd00
movsd xmm0, qword [rbx]
movsd xmm1, qword [r14]
ucomisd xmm1, xmm0
seta al
movsd xmm2, qword [r8]
ucomisd xmm2, xmm0
seta cl
xor cl, al
ucomisd xmm2, xmm1
seta dl
xor dl, al
cmovne r14, r8
test cl, cl
cmovne r14, rbx
jmp 0x14009fd0e
mov rcx, rbx
mov rdx, r14
call fcn.14009df20
mov r14, rax
mov rax, r14
sub rax, rbx
shr rax, 5
mov qword [rbp + 0x28], rax
movupd xmm0, xmmword [r14]
movupd xmm1, xmmword [r14 + 0x10]
movapd xmmword [rbp - 0x30], xmm1
movapd xmmword [rbp - 0x40], xmm0
cmp qword [rbp + 0x30], 0
je 0x14009fd4b
movsd xmm0, qword [r14]
mov rax, qword [rbp + 0x30]
ucomisd xmm0, qword [rax]
jbe 0x14009ff40
cmp rdi, r12
ja 0x1400a043f
mov r13, rbx
mov rbx, rdi
shl rbx, 5
mov r15, qword [rbp + 0x38]
lea r12, [r15 + rbx]
xor esi, esi
mov rax, r13
mov rcx, r12
mov rdx, qword [rbp + 0x28]
nop word cs:[rax + rax]
mov r8, rdx
shl r8, 5
add r8, r13
cmp rax, r8
jae 0x14009fdd4
nop
movsd xmm0, qword [r14]
add rcx, 0xffffffffffffffe0
xor r9d, r9d
ucomisd xmm0, qword [rax]
seta r9b
mov r10, rcx
cmova r10, r15
mov r11, rsi
shl r11, 5
movupd xmm0, xmmword [rax]
movupd xmm1, xmmword [rax + 0x10]
movupd xmmword [r10 + r11 + 0x10], xmm1
movupd xmmword [r10 + r11], xmm0
add rsi, r9
add rax, 0x20
cmp rax, r8
jb 0x14009fd90
cmp rdx, rdi
je 0x14009fe10
mov rdx, rsi
shl rdx, 5
movupd xmm0, xmmword [rax]
movupd xmm1, xmmword [rax + 0x10]
movupd xmmword [rcx + rdx - 0x10], xmm1
movupd xmmword [rcx + rdx - 0x20], xmm0
add rcx, 0xffffffffffffffe0
add rax, 0x20
mov rdx, rdi
jmp 0x14009fd80
mov rdx, r15
mov r15, rsi
shl r15, 5
mov rcx, r13
mov r8, r15
call sub.VCRUNTIME140.dll_memcpy
mov rdx, rdi
sub rdx, rsi
movabs r10, 0x7fffffffffffffe
je 0x14009fee3
lea rax, [rsi + 1]
cmp rdi, rax
jne 0x14009fe50
xor eax, eax
jmp 0x14009feb4
mov rcx, rdx
and rcx, 0xfffffffffffffffe
mov rax, qword [rbp + 0x20]
lea r8, [rax + r15]
add rbx, qword [rbp + 0x18]
xor r9d, r9d
nop word cs:[rax + rax]
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [r8 - 0x10], xmm1
movups xmmword [r8 - 0x20], xmm0
lea rax, [r9 + 2]
xor r9, r10
shl r9, 5
movupd xmm0, xmmword [r12 + r9]
movupd xmm1, xmmword [r12 + r9 + 0x10]
movupd xmmword [r8], xmm0
movupd xmmword [r8 + 0x10], xmm1
add r8, 0x40
add rbx, 0xffffffffffffffc0
mov r9, rax
cmp rcx, rax
jne 0x14009fe70
test dl, 1
je 0x14009fee3
lea rcx, [r15 + r13]
mov r8, rax
not r8
shl r8, 5
shl rax, 5
movupd xmm0, xmmword [r12 + r8]
movupd xmm1, xmmword [r12 + r8 + 0x10]
movupd xmmword [rcx + rax + 0x10], xmm1
movupd xmmword [rcx + rax], xmm0
test rsi, rsi
mov rbx, r13
mov r12, qword [rbp + 0x40]
je 0x14009ff40
cmp rdi, rsi
jb 0x1400a03f4
add r15, rbx
mov rax, qword [rbp + 0xd0]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x40]
mov qword [rsp + 0x28], rax
mov r13d, dword [rbp + 0x4c]
mov dword [rsp + 0x20], r13d
mov rcx, r15
mov r15, qword [rbp + 0x38]
mov r8, r15
mov r9, r12
call fcn.14009f9f0
mov rdi, rsi
cmp rsi, 0x21
jae 0x14009fc90
jmp 0x14009fa2d
cmp rdi, r12
ja 0x1400a043f
mov r13, r12
mov r12, rdi
shl r12, 5
mov rax, qword [rbp + 0x38]
lea rcx, [rax + r12]
xor r15d, r15d
mov rax, rbx
mov qword [rbp + 0x30], rcx
mov rsi, qword [rbp + 0x28]
nop dword [rax]
mov rdx, rsi
shl rdx, 5
add rdx, rbx
cmp rax, rdx
mov r11, qword [rbp + 0x38]
jae 0x14009ffd4
nop word cs:[rax + rax]
movsd xmm0, qword [rax]
add rcx, 0xffffffffffffffe0
xor r8d, r8d
ucomisd xmm0, qword [r14]
setbe r8b
mov r9, rcx
cmovbe r9, r11
mov r10, r15
shl r10, 5
movupd xmm0, xmmword [rax]
movupd xmm1, xmmword [rax + 0x10]
movupd xmmword [r9 + r10 + 0x10], xmm1
movupd xmmword [r9 + r10], xmm0
add r15, r8
add rax, 0x20
cmp rax, rdx
jb 0x14009ff90
cmp rsi, rdi
je 0x1400a0010
add rcx, 0xffffffffffffffe0
mov rdx, r15
shl rdx, 5
movupd xmm0, xmmword [rax]
movupd xmm1, xmmword [rax + 0x10]
mov r8, qword [rbp + 0x38]
movupd xmmword [r8 + rdx + 0x10], xmm1
movupd xmmword [r8 + rdx], xmm0
inc r15
add rax, 0x20
mov rsi, rdi
jmp 0x14009ff70
mov r14, r15
shl r14, 5
mov rcx, rbx
mov rdx, qword [rbp + 0x38]
mov r8, r14
call sub.VCRUNTIME140.dll_memcpy
mov rsi, rdi
sub rsi, r15
movabs r9, 0x7fffffffffffffe
mov r10, qword [rbp + 0x30]
je 0x1400a00e4
lea rax, [r15 + 1]
cmp rdi, rax
jne 0x1400a004d
xor eax, eax
jmp 0x1400a00b4
mov rcx, rsi
and rcx, 0xfffffffffffffffe
lea rdx, [rbx + r14]
add rdx, 0x20
add r12, qword [rbp + 0x18]
xor r8d, r8d
nop word cs:[rax + rax]
movups xmm0, xmmword [r12]
movups xmm1, xmmword [r12 + 0x10]
movups xmmword [rdx - 0x10], xmm1
movups xmmword [rdx - 0x20], xmm0
lea rax, [r8 + 2]
xor r8, r9
shl r8, 5
movupd xmm0, xmmword [r10 + r8]
movupd xmm1, xmmword [r10 + r8 + 0x10]
movupd xmmword [rdx], xmm0
movupd xmmword [rdx + 0x10], xmm1
add rdx, 0x40
add r12, 0xffffffffffffffc0
mov r8, rax
cmp rcx, rax
jne 0x1400a0070
test sil, 1
je 0x1400a00e4
lea rcx, [rbx + r14]
mov rdx, rax
not rdx
shl rdx, 5
shl rax, 5
movupd xmm0, xmmword [r10 + rdx]
movupd xmm1, xmmword [r10 + rdx + 0x10]
movupd xmmword [rcx + rax + 0x10], xmm1
movupd xmmword [rcx + rax], xmm0
cmp rdi, r15
jb 0x1400a0428
add rbx, r14
mov eax, 0
mov qword [rbp + 0x30], rax
cmp rsi, 0x21
mov r15, qword [rbp + 0x38]
mov r12, r13
mov r13d, dword [rbp + 0x4c]
jae 0x14009fc7a
jmp 0x14009fa2d
mov rax, qword [rbp + 0xd0]
mov qword [rsp + 0x28], rax
mov byte [rsp + 0x20], 1
mov rcx, rbx
mov rdx, rdi
mov r8, r15
mov r9, r12
call fcn.14009dfe0
jmp 0x1400a03e0
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [r15 + 0x10], xmm1
movups xmmword [r15], xmm0
mov rax, r13
shl rax, 5
movupd xmm0, xmmword [rbx + rax]
movupd xmm1, xmmword [rbx + rax + 0x10]
movupd xmmword [r15 + rax + 0x10], xmm1
movupd xmmword [r15 + rax], xmm0
mov ecx, 1
mov qword [rbp - 0x18], 0
mov qword [rbp - 0x10], r13
mov qword [rbp], 2
mov rdx, rsi
sub rdx, r13
mov r8d, ecx
shl r8d, 5
mov r11d, 2
xor eax, eax
jmp 0x1400a01b5
mov rax, qword [rbp - 8]
mov r11, qword [rbp]
mov rbx, qword [rbp + 0x40]
cmp r11, rax
je 0x1400a029e
lea rdi, [rax + 1]
mov qword [rbp - 8], rdi
mov r9, qword [rbp + rax*8 - 0x18]
test r9, r9
mov r10, rdx
cmove r10, r13
mov rax, rdi
cmp rcx, r10
jae 0x1400a01ac
shl r9, 5
lea r11, [rbx + r9]
add r9, r15
mov rdi, r8
mov rbx, rcx
jmp 0x1400a0217
mov r14, r9
movsd qword [r14], xmm0
movapd xmm0, xmmword [rbp - 0x40]
movupd xmmword [r14 + 8], xmm0
mov rax, qword [rbp - 0x30]
mov qword [r14 + 0x18], rax
inc rbx
add rdi, 0x20
cmp rbx, r10
je 0x1400a01a0
mov rax, rbx
shl rax, 5
movups xmm0, xmmword [r11 + rax]
movups xmm1, xmmword [r11 + rax + 0x10]
movups xmmword [r9 + rax], xmm0
movups xmmword [r9 + rax + 0x10], xmm1
movsd xmm0, qword [r9 + rax]
movsd xmm1, qword [r9 + rax - 0x20]
ucomisd xmm1, xmm0
jbe 0x1400a020b
add rax, r9
mov r14, qword [rax + 0x18]
mov qword [rbp - 0x30], r14
movups xmm1, xmmword [rax + 8]
movaps xmmword [rbp - 0x40], xmm1
mov r14, rdi
nop dword [rax]
movupd xmm1, xmmword [r9 + r14 - 0x20]
movupd xmm2, xmmword [r9 + r14 - 0x10]
movupd xmmword [r9 + r14 + 0x10], xmm2
movupd xmmword [r9 + r14], xmm1
cmp r14, 0x20
je 0x1400a01f0
movsd xmm1, qword [r9 + r14 - 0x40]
add r14, 0xffffffffffffffe0
ucomisd xmm1, xmm0
ja 0x1400a0260
add r14, r9
jmp 0x1400a01f3
mov rax, r13
shl rax, 5
lea rcx, [r15 + rax]
lea r12, [r15 + rax]
add r12, 0xffffffffffffffe0
mov rax, rsi
shl rax, 5
lea rdx, [r15 + rax]
add rdx, 0xffffffffffffffe0
mov qword [rbp + 0x20], rax
lea r11, [rbx + rax]
add r11, 0xffffffffffffffe0
mov r9, r15
mov r10, rbx
jmp 0x1400a0336
mov r13b, r15b
shl r13d, 5
add rcx, r13
movzx r15d, byte [rbp + 0x30]
mov bl, r15b
shl ebx, 5
add r9, rbx
movupd xmm0, xmmword [r8]
movupd xmm1, xmmword [r8 + 0x10]
mov r14b, al
shl r14d, 5
sub rdx, r14
movzx eax, byte [rbp + 0x4c]
mov dil, al
shl edi, 5
sub r12, rdi
add r10, 0x20
movupd xmmword [r11 + 0x10], xmm1
movupd xmmword [r11], xmm0
add r11, 0xffffffffffffffe0
mov r13, qword [rbp + 0x28]
dec r13
je 0x1400a038f
mov qword [rbp + 0x28], r13
movsd xmm0, qword [r9]
xor ebx, ebx
xor r13d, r13d
ucomisd xmm0, qword [rcx]
setbe byte [rbp + 0x30]
seta r15b
mov rax, rcx
ja 0x1400a0358
mov rax, r9
movups xmm0, xmmword [rax]
movsd xmm1, qword [r12]
xor edi, edi
xor r14d, r14d
ucomisd xmm1, qword [rdx]
movups xmm1, xmmword [rax + 0x10]
movups xmmword [r10 + 0x10], xmm1
seta byte [rbp + 0x4c]
movups xmmword [r10], xmm0
setbe al
mov r8, r12
ja 0x1400a02e0
mov r8, rdx
jmp 0x1400a02e0
add r12, 0x20
test sil, 1
je 0x1400a03d2
xor eax, eax
xor r8d, r8d
cmp r9, r12
setae al
setb r8b
mov r11, rcx
cmovb r11, r9
movupd xmm0, xmmword [r11]
movupd xmm1, xmmword [r11 + 0x10]
movupd xmmword [r10 + 0x10], xmm1
movupd xmmword [r10], xmm0
shl r8d, 5
add r9, r8
shl eax, 5
add rcx, rax
cmp r9, r12
jne 0x1400a043a
add rdx, 0x20
cmp rcx, rdx
jne 0x1400a043a
add rsp, 0xd8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
lea rax, [0x14024c060]
mov qword [rbp - 0x18], rax
mov qword [rbp - 0x10], 1
mov qword [rbp - 8], 8
xorpd xmm0, xmm0
movupd xmmword [rbp], xmm0
lea rdx, [0x14024c070]
lea rcx, [rbp - 0x18]
call fcn.14023de30
lea r8, [0x14024c088]
mov rcx, r15
mov rdx, rdi
call fcn.14023e2f0
call fcn.140223d00
ud2